should this be?

db.mentors.auth_user_id.requires = IS_IN_DB(db, 'auth_user.id', 
'%(first_name)s', orderby = db.auth_user.first_name)

On Wednesday, 16 December 2015 17:29:21 UTC-6, Evan Caldwell wrote:
>
> I tried:
> db.mentors.auth_user_id.requires = IS_IN_DB(db, 'auth_user.id', '%(name)s'
> , orderby = db.auth_user.first_name)
> but it had no effect. I read on another question about building and 
> ordering a set and then using IS_IN_SET on that but I'm not sure how to go 
> about doing that; can I do a query right below my mentor table definition 
> in the model? Sorry for being such a noob.
>
>
> On Wednesday, December 16, 2015 at 12:48:10 PM UTC-7, Niphlod wrote:
>>
>> a proper IS_IN_DB with the correct orderby in models should be the 
>> easiest way to go.
>>
>> On Wednesday, December 16, 2015 at 8:33:06 PM UTC+1, Evan Caldwell wrote:
>>>
>>>
>>> I am having a hard time ordering a dropdown in a SQLFORM alphabetically.
>>>
>>> In my model:
>>> db.define_table('departments',
>>>     Field('name', notnull=True, unique=True),
>>>     Field('college_id','reference college', label='College'),
>>>     Field('department_rep_user_id','reference auth_user', 
>>> label='Department Representative'),
>>>     auth.signature,
>>>     format='%(name)s')
>>>
>>> db.define_table('mentors',
>>>     Field('auth_user_id', 'reference auth_user', unique=True),
>>>     Field('department_id', 'reference departments', label='Department'),
>>>     auth.signature,
>>>     format=repr_mentor_table)
>>>
>>> db.define_table('abstracts',
>>>     Field('title', notnull=True, unique=True),
>>>     Field('college_id', 'reference college', label='College'),
>>>     Field('department_id', 'reference departments', label='Abstract 
>>> Department'),
>>>     Field('mentor_id', 'reference mentors', label='Mentor'),
>>>     Field('classes_id', 'reference classes', label='Class', comment="If 
>>> your abstract is connected to a specific class (perhaps as a class 
>>> project), select your class. Otherwise, select 'Does not apply'"),
>>>     Field('session_id', 'reference sessions', label='Session'),
>>>     Field('presentation_format_id', 'reference presentation_formats', 
>>> label='Presentation Format'),
>>>     Field('body','text'),
>>>     Field('attatchment', 'upload'),
>>>     Field('location_id', 'reference locations', label='Location'),
>>>     Field('conference_id', 'reference conferences', label='Conference'),
>>>     Field('presentation_time', 'time', notnull=False, 
>>> requires=IS_TIME(), label='Presentation Time'),
>>>     Field('booth_space', label='Booth Space'),
>>>     Field('initial_approval', 'boolean', label='Initial Approval', 
>>> default=None),
>>>     Field('final_approval', 'boolean', label='Final Approval', 
>>> default=None),
>>>     Field('competing_status', 'boolean', label='Competing Status', 
>>> default=None),
>>>     auth.signature,
>>>     format='%(title)s',
>>>     singular="Abstract",
>>>     plural="Abstracts",
>>>     )
>>>
>>> In the controller
>>> def abstracts():
>>>     response.title = "Abstracts"
>>>
>>>     def get_primary_author(abstract_row):
>>>         author_row = db(
>>>             (db.abstract_author.primary_author==True) &
>>>             (db.abstract_author.abstract_id==abstract_row.id) &
>>>             (db.abstract_author.auth_user_id==db.auth_user.id)
>>>             ).select(
>>>                 db.auth_user.first_name,
>>>                 db.auth_user.last_name).first()
>>>         return author_row.first_name + ' ' + author_row.last_name
>>>
>>>     def abstracts_body_represent(body, row):
>>>         sanitized = str(rcwc_sanitizer(body))
>>>
>>>         # This is really fragile. For some reason the grid isn't 
>>> enforcing
>>>         # maxtextlength if the represent is called.
>>>         if len(request.args) == 1: # not on the grid page
>>>             sanitized = "{0}...".format(sanitized[:100])
>>>         return XML(sanitized) # If this returns a string it isn't used
>>>
>>>     db.abstracts.body.represent = abstracts_body_represent
>>>
>>>     grid = SQLFORM.smartgrid(
>>>             db.abstracts,
>>>             user_signature=False,
>>>             searchable=True,
>>>             linked_tables=['abstract_author'],
>>>             links=[
>>>                 {"header": "Primary Author", "body":get_primary_author},
>>>                 ],
>>>             links_placement="left",
>>>             paginate=75,
>>>             )
>>>
>>>     return locals()
>>>
>>> When I go to create a new abstract in the abstracts table the dropdown 
>>> for Mentors (mentor_id field) is not alphabetically ordered. Can this be 
>>> accomplished in the model or would I need to work it out in the controller?
>>>
>>>

-- 
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