Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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