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.