Hi there, this is my 3 attempts sending questions to this forum, i see 
people sending questions here, but I don't see mine after I posted and 
didn't get any reply. If someone can provide pointers, it's much 
appreciated. (I just checked everything in the "Membership and email 
setting", hope this post can be seen)

1st question: i want to use auth_user table to store my internal staffs and 
external customers info, so that I can leverage all the built-in 
authentication and authorisation functions provided by web2py out of the 
box (please let me know if I should not do that). I added some fields in 
auth_user as below, and got this error - 'Cannot resolve reference customer 
in auth_user definition'if I didn't use lazy_tables=True in DAL. Is 
lazy_tables=True the solution for this case?
auth.settings.extra_fields['auth_user']= [
  Field('customer', 'reference customer'),
  Field('mobile', requires=IS_NOT_EMPTY()),
  Field('title', requires=IS_NOT_EMPTY()),
  ]

2nd question: I am building an accounting application and ticketing 
application, eventually i want them to be 2 separate products used by my 
clients, however I will use them internally. Should i build these 2 
applications under separate web2py applications with 2 databases (then I 
would have to maintain 2 duplicate set of user information)? Or i should 
leverage CAS to store all the user/group/membership info in 'provider', and 
let accounting & ticketing 'consumer' applications to access them (my test 
didn't work with auth_user referencing customer table using CAS)? Or should 
I create an auth_db = DAL(..) having these 2 web2py applications using this 
auth_db connection for authentication/authorization, and create 
accounting_db=DAL(..) and ticketing_db=DAL(..) for application specific 
databases? Or I should put everything in a single web2py application 
folder, create 2 controllers for accounting and ticketing respectively 
(what if I want to sell the accounting application to a client but not the 
ticketing application)? Sorry for the long question, they seem to have pros 
and cons, want to hear opinions from experts.

3rd question: i have a customer table, an invoice table, an item table in 
my accounting application, below is the simplified version. When I created 
a view_customer() action with customer_grid = 
SQLFORM.smartgrid(db.customer,linked_tables=['auth_user','invoice'],user_signature=False),
 
it only showed 'Auth users' link but not 'Invoice', why? 
Now I tried to create invoice_grid=SQLFORM.smartgrid(db.invoice, 
linked_tables=['item'], 
constraints=dict(invoice=db.invoice.customer==request.args(0))), the 
'Items' link (when I clicked) on the grid raised error - Query Not 
Supported: invalid literal for long() with base 10: 'item' and 'no records 
found. when i didn't have constraints set, the 'Items' link worked 
correctly. Any ideas?
                                      
db.define_table('customer',
                Field('company_name', requires=IS_NOT_EMPTY()),
                auth.signature,
                format='%(company_name)s')
db.define_table('invoice',
                Field('customer', 'reference customer'),
                Field('project_name', requires=IS_NOT_EMPTY()),
                Field('invoice_total', 'double', default=0),
                auth.signature)
db.define_table('item',
                Field('invoice', 'reference invoice',  writable=False),
                Field('description'),
                Field('unit_price', 'double'),
                Field('quantity', 'integer'),
                auth.signature)

Thanks so much in advance.



-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to