Hello,
I am using an SQLFORM.grid to interact with a database. When I use the LEFT
JOIN with this form the search fields in the SQLFORM.grid repeats the
search fields (see screen capture).
Did you any of you have any clue why this could be happening and how to
solve it?
Thank you
Iago
*#MODEL*
db = DAL('sqlite://storage.myositis_db')
db.define_table('d_dx',
Field('dx_code', 'string', label='Diagnosis code'),
Field('dx_descr', 'string', label='Diagnosis'))
db.define_table('d_subdx',
Field('subdx_code', 'integer', label='Subdiagnosis code'),
Field('subdx_descr', 'string', label='Subdiagnosis'))
db.define_table('d_atb',
Field('atb_code', 'integer', label='Antibody code', notnull=True,
unique=True),
Field('atb_descr', 'string', label='Antibody', notnull=True,
unique=True))
db.define_table('general',
Field('general_id', 'id', label='ID', notnull=True, unique=True),
Field('mrn', 'string', label='MRN', notnull=True, unique=True),
Field('first_name', 'string'),
Field('last_name', 'string'),
Field('serum_number', 'integer'),
Field('clinical_dx', 'reference d_dx', 'string', label='Clinical
diagnosis', default='Unknown'),
Field('clinical_subdx', 'string', label='Clinical subdiagnosis',
default='Unknown'),
Field('atb_dx', 'string', label='Antibody', default='Unknown'))
#Enforce rules
db.general.mrn.requires = [IS_NOT_EMPTY(error_message='The medical record
field cannot be empty'),
IS_MATCH('^BV\d{8}$', error_message='Medical
record number is in the wrong format'),
IS_NOT_IN_DB(db, db.general.mrn,
error_message='The medical record is already in the database')]
db.general.clinical_dx.requires = IS_IN_DB(db, db.d_dx.dx_code,
'%(dx_descr)s', zero=None)
db.general.clinical_subdx.requires = IS_IN_DB(db, db.d_subdx.subdx_code,
'%(subdx_descr)s', zero=None)
db.general.atb_dx.requires = IS_IN_DB(db, db.d_atb.atb_code,
'%(atb_descr)s',zero=None)
auth = Auth(db)
auth.define_tables()
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = True
auth.settings.reset_password_requires_verification = False
*#CONTROLLER*
@auth.requires_login()
def patients_list():
fields=[db.general.general_id,
db.general.mrn,
db.general.first_name,
db.general.last_name,
db.general.serum_number,
db.d_dx.dx_descr,
db.d_subdx.subdx_descr,
db.d_atb.atb_descr]
links=[dict(header='Edit', body=lambda row:
A(T('Edit'),_href=URL('default', 'test',args=[row.get('general',
row).general_id])))]
left = [db.d_dx.on(db.general.clinical_dx==db.d_dx.dx_code),
db.d_subdx.on(db.general.clinical_subdx==db.d_subdx.subdx_code),
db.d_atb.on(db.general.clinical_dx==db.d_atb.atb_code)]
grid = SQLFORM.grid(db.general.id>0,
fields=fields,
left=left,
links=links,
orderby=[db.general.id],
exportclasses=dict(csv_with_hidden_cols=False,
xml=False, tsv_with_hidden_cols=False, tsv=False, json=False, html=False),
deletable=True,
editable=True,
details=True,
paginate=50)
return locals()
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.