Actually, the code in my model was and is correct.

Still not working. 

Version 2.0.9

On Monday, October 8, 2012 10:03:43 PM UTC-4, Cliff Kachinske wrote:
>
> OOPS.  No, that does not stand for object oriented programming superstar!
>
> On Monday, October 8, 2012 6:53:42 PM UTC-4, Massimo Di Pierro wrote:
>>
>> It is 
>>
>> auth.enable_record_versioning(db)
>>
>> not 
>>
>> auth.enable_record_versioning=True # Doh!
>>
>> On Monday, 8 October 2012 15:21:48 UTC-5, Massimo Di Pierro wrote:
>>>
>>> There are two ways to do record versioning in web2py:
>>>
>>> - the old way using auth.archive (the one you are using). When a record 
>>> is modified the old record is copied into the archive table. When a record 
>>> is deleted, it is actually deleted and a copy of the old one is saved.
>>>
>>> - the new way auth.enable_record_versioning(db) or 
>>> db.table._enable_record_versioning(). This uses the before_* and after_* 
>>> callbacks. When the record is modified it acts as in the case above. When 
>>> the record is deleted it is not actually deleted but is_active is set to 
>>> false and all queries are filtered by is_active = True.
>>>
>>>
>>> On Monday, 8 October 2012 14:04:09 UTC-5, Cliff Kachinske wrote:
>>>>
>>>> I have the following, but checking the delete box actually deletes the 
>>>> record rather than setting is_active to False.
>>>>
>>>> It creates records in the archive table, but I also want them to stay 
>>>> in the main table with is_active set to False.
>>>>
>>>> What am I doing wrong?
>>>>
>>>> Thank you,
>>>> Cliff Kachinske
>>>>
>>>> Model
>>>> db.define_table('documentation',
>>>>     Field('name', length=36, label='Name'),
>>>>     # I put this in just before Massimo announced request_tenant
>>>>     # Timing is everything!
>>>>     Field('tenant_link', db.tenants, 
>>>>          default=session.auth.user.tenant_link),
>>>>     auth.signature,
>>>>     format='%(name)s')
>>>> db.documentation.tenant_link.requires = IS_IN_DB(
>>>>     db, db.tenants.id, '%(name)s', zero='Choose')
>>>> db.documentation.tenant_link.readable = False
>>>> db.documentation.tenant_link.writable = False
>>>>
>>>> #More tables ...
>>>>
>>>> auth.enable_record_versioning(db)
>>>> db.auth_permission.table_name.requires = IS_IN_SET(db.tables)
>>>>
>>>> Controller:
>>>> def edit():
>>>>     form = crud.update(
>>>>            db.documentation, request.args(0), next=next,
>>>>            # Commented out to avoid multiple records in the archive 
>>>> table while testing
>>>>            # Does not affect the problem either way
>>>>            # onaccept=auth.archive,
>>>>            )
>>>>     return dict(form=form, h2='Edit')
>>>>
>>>>
>>>>

-- 



Reply via email to