I would like to achieve what you describe!
>>> It is supposed o work so that records are disabled (is_active=False)
and never deleted to that the archived records can point to the current
record even if disabled. disabled records are filtered out from searches.
<<<
I am using SQLFORM out of the box, so it should behave as you described
right?
I have a declared common fields
signature = db.Table(db, 'signature',
Field('created_by', 'reference
auth_user',default=auth.user_id,writable=False,readable=False),
Field('created_on','datetime',default=request.now,writable=False,readable=False),
Field('modified_by', 'reference
auth_user',update=auth.user_id,writable=False,readable=False),
Field('modified_on','datetime',update=request.now,writable=False,readable=False),
Field('is_active', 'boolean',
default=True,writable=False,readable=False),
)
db._common_fields.append(signature)
which will add fields to the tables. It existed before I turned on record
versioning. I was just wondering on the side how record versioning can
disable current records when adding these fields are not automatic?
Thanks Massimo.
On Friday, July 4, 2014 4:51:03 PM UTC+8, Massimo Di Pierro wrote:
>
> I am not sure. Can you explain more of what you are doing? I can see a
> problem with record versioning. It is supposed o work so that records are
> disabled (is_active=False) and never deleted to that the archived records
> can point to the current record even if disabled. disabled records are
> filtered out from searches. Somehow you are actually deleting records and
> web2py tries to archive a reference to them. You cannot have both.
>
>
> On Friday, 4 July 2014 03:22:26 UTC-5, lyn2py wrote:
>>
>> I just saw this:
>>
>> Field(name, 'string', length=None, default=None,
>> required=False, requires='<default>',
>> ondelete='CASCADE', notnull=False, unique=False,
>> uploadfield=True, widget=None, label=None, comment=None,
>> writable=True, readable=True, update=None, authorize=None,
>> autodelete=False, represent=None, compute=None,
>> uploadfolder=None,
>> uploadseparate=None,uploadfs=None)
>>
>>
>>
>> ondelete translates into the "ON DELETE" SQL statement. By
>> default it is set to "CASCADE". This tells the database that when it
>> deletes a record, it should also delete all records that refer to it. To
>> disable this feature, set ondelete to "NO ACTION" or "SET NULL".
>>
>>
>> So I guess that means it cascades by default.
>>
>>
>> A separate question… if record versioning is turned on, and SQLFORM
>> deletable=True, the following error is produced, may I know what I am doing
>> incorrectly?
>>
>>
>>
>> Traceback (most recent call last):
>> File "/.../web2py/source/gluon/restricted.py", line 221, in restricted
>> exec ccode in environment
>> File "/.../web2py/source/applications/.../controllers/default.py", line
>> 247, in <module>
>> File "/.../web2py/source/gluon/globals.py", line 389, in <lambda>
>> self._caller = lambda f: f()
>> File "/.../web2py/source/gluon/tools.py", line 3465, in f
>> return action(*a, **b)
>> File "/.../web2py/source/applications/.../controllers/default.py", line
>> 217, in edit_this
>> if
>> form.process(onvalidation=sqlform_validate,onsuccess=auth.archive).accepted:
>>
>> File "/.../web2py/source/gluon/html.py", line 2289, in process
>> self.validate(**kwargs)
>> File "/.../web2py/source/gluon/html.py", line 2233, in validate
>> onsuccess(self)
>> File "/.../web2py/source/gluon/tools.py", line 3849, in archive
>> id = archive_table.insert(**new_record)
>> File "/.../web2py/source/gluon/dal.py", line 9252, in insert
>> ret = self._db._adapter.insert(self, self._listify(fields))
>> File "/.../web2py/source/gluon/dal.py", line 1362, in insert
>> raise e
>> IntegrityError: foreign key constraint failed
>>
>>
>> Is it trying to cascade delete but failed?
>>
>>
>>
>> On Friday, July 4, 2014 4:00:12 PM UTC+8, lyn2py wrote:
>>>
>>> Hi guys,
>>>
>>> Just a simple question, does the SQLFORM deletable=True trigger a
>>> cascade delete?
>>>
>>>
>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.