def attendance_data(event_id): data = db((db.person.grade==9) | (db.person.leader==True)).select(db.person.id, db.person.student_id, db.person.last_name, db.person.first_name, db.attendance.present, db.attendance.event_id, db.events.title, db.person.grade, db.person.leader, left=[db.attendance.on((db.person.id==db.attendance.person_id) & (db.attendance.event_id==event_id)), db.events.on(db.events.id==db.attendance.event_id)], orderby=db.person.last_name|db.person.first_name).as_list() data = [dict(('_'.join(k),v) if k != ('person','id') else ('id',v) for k,v in flattenDict(d).items()) for d in data] return data
def data(str_filter=None): """Loads the data for people with an optional filter :param str_filter: an optional string filter :returns: a list of people """ if str_filter: people = db().select(db.person.ALL, (db.person.last_name.contains(str_filter)) | (db.person.first_name.contains(str_filter)) | (db.person.id.contains(str_filter))).as_list() else: people = db().select(db.person.ALL, db.crew.room, left=db.crew.on(db.person.crew==db.crew.id), orderby=db.person.last_name|db.person.first_name).as_list() people = [dict((k[-1],v) for k,v in flattenDict(d).items()) for d in people] return people
def crews(id=None): if id: try: id = int(id) count = db.person.id.count() crews = db(db.crew.id==id).select( db.crew.ALL, count.with_alias('count'), left=db.person.on(db.person.crew==db.crew.id), groupby=db.crew.id, orderby=db.crew.id).as_list() except: crews = [] else: count = db.person.id.count() crews = db().select( db.crew.ALL, count.with_alias('count'), left=db.person.on(db.person.crew==db.crew.id), groupby=db.crew.id, orderby=db.crew.id).as_list() crews = [dict((k[-1],v) for k,v in flattenDict(d).items()) for d in crews] return crews
def data(str_filter=None): """Loads the data for people with an optional filter :param str_filter: an optional string filter :returns: a list of people """ if str_filter: people = db().select(db.person.ALL, (db.person.last_name.contains(str_filter)) | (db.person.first_name.contains(str_filter)) | (db.person.id.contains(str_filter))).as_list() else: people = db().select(db.person.ALL, db.crew.room, left=db.crew.on(db.person.crew == db.crew.id), orderby=db.person.last_name | db.person.first_name).as_list() people = [ dict((k[-1], v) for k, v in flattenDict(d).items()) for d in people ] return people
def data(): """Loads the data for groups :returns: a list of groups """ count = db.person.id.count() groups = db().select( db.groups.ALL, count.with_alias('count'), left=[ db.group_rec.on(db.groups.id == db.group_rec.group_id), db.person.on(db.person.id == db.group_rec.person_id) ], groupby=db.groups.id, orderby=db.groups.name).as_list() groups = [dict([('actions', '<button class="btn btn-xs btn-primary" id="edit-row-' + str(d['groups']['id']) + '">' +\ '<i class="icon-edit"></i>Edit' + '</button>' +\ '<button class="btn btn-xs btn-danger" id="delete-row-' + str(d['groups']['id']) + '" style="margin-left: 10px">' +\ '<i class="icon-trash"></i>Delete' + \ '</button>')] + [(k[-1],v) for k,v in flattenDict(d).items()]) for d in groups] return groups
def attendance_data(event_id): data = db((db.person.grade == 9) | (db.person.leader == True)).select( db.person.id, db.person.student_id, db.person.last_name, db.person.first_name, db.attendance.present, db.attendance.event_id, db.events.title, db.person.grade, db.person.leader, left=[ db.attendance.on((db.person.id == db.attendance.person_id) & (db.attendance.event_id == event_id)), db.events.on(db.events.id == db.attendance.event_id) ], orderby=db.person.last_name | db.person.first_name).as_list() data = [ dict(('_'.join(k), v) if k != ('person', 'id') else ('id', v) for k, v in flattenDict(d).items()) for d in data ] return data