def get_group():
groups = auth.user_groups
if not groups:
return None
group_ids = [id for id in groups if not groups[id].startswith('user_')]
return group_ids[0] if group_ids else None
db.define_table('hotel_profile',
Field('hotel_name'),
Field('logo', 'upload'),
Field('tel1'),
Field('email_address'),
Field('directions', 'text', requires=IS_LENGTH(500)),
Field('google_directions'),
Field('posted_by', 'reference auth_user', default=auth.user_id, readable=False, writable=False),
Field('groups', 'reference auth_group', default=get_group(), readable=False, writable=False),
format='%(hotel_name)s'
)
db.define_table('meals',
Field('hotel', 'reference hotel_profile'),
Field('supper_price'),
Field('supper_details', 'text', requires=IS_LENGTH(200)),
Field('lunch_price'),
Field('lunch_details', 'text', requires=IS_LENGTH(200)),
Field('breakfast_price'),
Field('breakfast_details', 'text', requires=IS_LENGTH(200)),
Field('posted_by', 'reference auth_user', default=auth.user_id, readable=False, writable=False),
Field('groups', 'reference auth_group', default=get_group(), readable=False, writable=False)
)
I have 2 tables about a hotel, one table registers the hotel itself & the other is about meals that are offered at the hotel but the idea is that only group members of each hotel have to & can only register meals for their hotels. So to avoid mistakes & prevent malicious intentions I was wondering if its possible to have the referencing field in the meals table pre-selected appropriately for the logged in user with their correct hotel name as per the group they belong to. I hope I make sense:MODEL CODE
db.define_table('hotel_profile',
Field('hotel_name'),
Field('logo', 'upload'),
Field('tel1'),
Field('email_address'),
Field('directions', 'text', requires=IS_LENGTH(500)),
Field('google_directions'),
Field('posted_by', 'reference auth_user', default=auth.user_id, readable=False, writable=False),
Field('groups', 'reference auth_group', default=get_group(), readable=False, writable=False),
format='%(hotel_name)s'
)
db.define_table('meals',
Field('hotel', 'reference hotel_profile'),
Field('supper_price'),
Field('supper_details', 'text', requires=IS_LENGTH(200)),
Field('lunch_price'),
Field('lunch_details', 'text', requires=IS_LENGTH(200)),
Field('breakfast_price'),
Field('breakfast_details', 'text', requires=IS_LENGTH(200)),
Field('posted_by', 'reference auth_user', default=auth.user_id, readable=False, writable=False),
Field('groups', 'reference auth_group', default=get_group(), readable=False, writable=False)
)Regards;Mostwanted
--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/be138b98-8d67-4a8d-bb77-b4410434f882%40googlegroups.com.
hotel=db(db.hotel_profile(request.args(0, cast=int))
db.meals.hotel.default=hotel.id
--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/bd2e0505-00f8-4403-9e3d-f89372e2f027%40googlegroups.com.
Thanks for the extra info. In my scenario I have schools, teachers, subjects, classes and students. At the Classes level there will be hundreds eventually (new ones each term). Your school limits what subjects you can see. The teacher limits what classes she can see etc.If I understood you correctly you are suggesting to use the auth functionality built into web2py. Do you think that is still appropriate when there are potentially hundreds of groups?And second, I think I read that py4web uses a different approach with tags(?) Is that correct?Thanks
On Wed, 26 Feb 2020, 15:43 'Annet' via web2py-users, <web...@googlegroups.com> wrote:
--I don't understand the use of field 'groups' and function 'get_groups()I think you should use web2py's built in auth_ functionality: drop field'groups' in both tables, link users and groups (each hotel its own group)in the auth_membership table, and use this table to create a list of optionsfor the drop-down.I hope this points you in the right direction to solve your problemKind regards,Annet
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 web...@googlegroups.com.