Ejemplo n.º 1
0
def manage_association(association_id):
    if not g.user:
        abort(401)
    session = Client().session()
    try:
        association = session.query(Association).\
            join(UserAssociation,
                 UserAssociation.association_id == Association.association_id).\
            filter(Association.association_id == association_id).\
            filter(UserAssociation.user_id == g.user.user_id).\
            one()
    except NoResultFound:
        abort(404)
    radlibs = session.query(Lib.name,
                            Lib.lib_id,
                            Rad.rad_id,
                            Rad.rad).\
        select_from(Lib).\
        outerjoin(Rad, Lib.lib_id == Rad.lib_id).\
        filter(Lib.association_id == association.association_id).\
        all()

    member_emails = session.query(User.email).\
        join(UserAssociation, UserAssociation.user_id == User.user_id).\
        filter(UserAssociation.association_id == association_id).\
        all()

    libs = {}
    for (lib_name, lib_id, rad_id, rad) in radlibs:
        if lib_name not in libs:
            libs[lib_name] = {'rads': []}
        libs[lib_name]['lib_id'] = lib_id
        if rad:
            libs[lib_name]['rads'].append({'rad_id': rad_id, 'rad': rad})
    return render_template('manage_association.html.jinja',
                           association=association,
                           libs=libs,
                           member_emails=[e[0] for e in member_emails],
                           breadcrumbs=breadcrumbs(association.name))
Ejemplo n.º 2
0
 def test_just_a_string(self):
     with app.app_context():
         crumbs = breadcrumbs('Blammo')
     eq_(crumbs, [
         ('Associations', 'http://localhost/associations'),
         ('Blammo', None)])
Ejemplo n.º 3
0
def new_association():
    if not g.user:
        abort(401)
    return render_template('new_thing.html.jinja',
                           thing_name="Association",
                           breadcrumbs=breadcrumbs('New'))