(1) session.org will be set with the login. But I am an administrator:  I
think I should use the admin application without a login to the application
itself.

(2) Lets say session.org==1: now it is not possible to change a record with
my_table.org==2 using the admin app.

(3) Did you mean:

common_filter = lambda query:
  (db.my_table.org==session.org) if session.org else True


Interesting idea!

2012/8/20 Massimo Di Pierro <[email protected]>

> How do you set the common filter? Seems to me if session.org is not set,
> the common filter should not be set. web2py cannot ignore it because it
> does the wrong thing.
>
>
> On Monday, 20 August 2012 11:41:41 UTC-5, mweissen wrote:
>>
>> I have an application which should be used by some organizations.
>> Therefore I have added
>>
>> Field('org','reference org', default=lambda:session.org),
>>
>> and
>>
>> common_filter = lambda query: db.my_table.org==session.org
>>
>> to my_table. session.org contails the id of the respective organization.
>> Great feature,works fine! But using the database administration of the
>> admin-application the common filter is still active.
>> There is an "ignore_rw=True" in the admin application and I think I have
>> read somewhere that there is also an "ignore_common_filters=True".
>>
>> If session.org is not set, a "database db select" shows strange effects:
>>
>>    - I can see the first 100 rows.
>>    - But the message is "0 selected"
>>    - It is not possible to Update a record
>>
>>
>> A simple "ignore_common_filters=True" at the appropriate location should
>> solve the problem. I have taken a quick look at the code, but I think this
>> statement has to be "very inside", therefore I have no concrete proposal.
>>
>> Regards, Martin
>>
>>
>>
>>
>>  --
>

-- 



Reply via email to