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