Forum OpenACS Development: Creating CrClass revisions without setting as live revision

I need to create new revisions without setting them live. This seems like a common thing to do where revisions need to be approved before going live.

Any advice on where to implement this?

I could add a parameter to CrClass save and save_new methods such as "live_p" to pass in a parameter, or create a method on CrClass to set the revision or not, and customize that method on my subtype of CrClass.

Any advantages or disadvantages to either approach?

both make sense. added in CVS head.
Calling save -live_p from a subtype of ::Generic::Form doesn't work because the object is a CrCache::Item.

Class CrCache::Item
CrCache::Item instproc save {} {
set r [next]
#my log "--CACHE saving [self] in cache"
ns_cache set xotcl_object_cache [self] \
[::Serializer deepSerialize [self]]
return $r
}

and the save method does not take any args.

I am not sure what is going on there, or how to fix it. I see that save_new takes args and passes them to "next".

I changed
Class CrCache::Item
CrCache::Item instproc save {} {
set r [next]

to

Class CrCache::Item
CrCache::Item instproc save {args} {
set r [next]

And not it works as expected?

Shall I check this in? I don't know enough about the cache and serializer code to understand if I changed anything else.

you are correct, this needed an update. Changed in cvs head, see as well other posting...