示例#1
0
def team_show(team_id):
    form = LoginForm(request.form, csrf_enabled=False)

    team = Team.query.filter(Team.id == team_id).first_or_404()
    is_member = any(user.id == get_user_id() for user in team.members)

    return render_template('public/show_team.html', team=team, is_member=is_member, form=form)
示例#2
0
def join_activity(activity_id, day_id):
    activity = Activity.query.filter(Activity.id == activity_id).first_or_404()
    activities = Activity.query.filter(Activity.day_id == day_id).all()
    attending = any(user.id == get_user_id() for activity in activities for user in activity.participants)

    if len(activity.participants) >= activity.slots:
        msg = "%s kan kun ha %s deltakere." % (activity.name, activity.slots)
        flash(msg, 'warning')
        return redirect(url_for('public.day', day_id=day_id))

    elif attending:
        flash("Du kan ikke meld deg på flere aktiviteter.", 'warning')
        return redirect(url_for('public.day', day_id=day_id))

    else:

        join_ac = Attending.create(activity_id=activity_id,
                                   user_id=current_user.id)
        join_ac.save()

        title = ACT_JOINED_TITLE % activity.name
        body = ACT_JOINED_BODY % activity.name

        send_mail(current_user.email, title, body)

        msg = "Du er nå med i aktiviteten %s." % activity.name
        flash(msg, 'info')

        return redirect(url_for('public.day', day_id=day_id))
示例#3
0
def dmdri():
    form = LoginForm(request.form, csrf_enabled=False)
    day_id = 1

    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1

    per_page = 5
    offset = (page - 1) * per_page

    participating_count = db.session.query(Attending.activity_id, func.count(Attending.user_id).label('pcount'))\
        .group_by(Attending.activity_id)\
        .subquery('participating_count')

    attending_query = db.session.query(Attending.activity_id, func.IF(Attending.user_id == get_user_id(), True, False).label('is_attending'))\
        .group_by(Attending.activity_id)\
        .subquery('attending_check')

    activities = db.session.query(Activity, attending_query)\
        .select_from(Activity)\
        .outerjoin(attending_query, Activity.id == attending_query.c.activity_id)\
        .filter(Activity.day_id == day_id)\
        .limit(per_page)\
        .offset(offset)

        #.group_by(participating_count.desc())\
    all_activities = Activity.query.filter(Activity.day_id == day_id).all()

    attending = any(user.id == get_user_id() for activity in all_activities for user in activity.participants)

    pagination = Pagination(page=page,
                            total=len(all_activities),
                            per_page=per_page,
                            search=False,
                            css_framework='bootstrap3',
                            display_msg='viser aktivitet <b>{start}</b> til <b>{end}</b> av <b>{total}</b> aktiviteter')

    return render_template("public/dmdri.html",
                           activities=activities,
                           attending=attending,
                           per_page=per_page,
                           pagination=pagination,
                           day_id=day_id,
                           time_now=datetime.now(),
                           form=form)
示例#4
0
def team_join(team_id):
    team = Team.query.filter(Team.id == team_id).first()

    if len(team.members) >= 8:
        msg = "%s har %s av maksimalt 8 medlemmer." % (team.name, len(team.members))
        flash(msg, 'warning')
        return redirect(url_for('public.team_show', team_id=team_id))

    else:
        tm = Team_Member.create(user_id=get_user_id(), team_id=team_id)

        title = TEAM_JOINED_TITLE % team.name
        body = TEAM_JOINED_BODY % team.name

        send_mail(current_user.email, title, body)

        msg = "Du har blitt med laget %s." % team.name
        flash(msg, 'success')
        return redirect(url_for('public.team_show', team_id=team_id))
示例#5
0
def team_delete(team_id):
    team = Team.query.filter(Team.id == team_id).first_or_404()
    if team.contact_id == get_user_id() or current_user.is_admin:
        msg = "Laget %s er nå fjernet." % team.name

        Team_Member.query.filter(Team_Member.team_id == team_id).delete()
        Activity_Team.query.filter(Activity_Team.team_id == team_id).delete()

        team.delete()

        db.session.commit()

        title = TEAM_REMOVED_TITLE % team.name
        body = TEAM_REMOVED_BODY % team.name
        for member in team.members:
            send_mail(member.email, title, body)

        flash(msg, 'info')

    return redirect(url_for('public.aktivitetsdagen'))
示例#6
0
def aktivitetsdagen():
    form = LoginForm(request.form, csrf_enabled=False)
    day_id = 2


    attending_query = db.session.query(Attending.activity_id, func.IF(Attending.user_id == get_user_id(), True, False).label('is_attending'))\
        .group_by(Attending.activity_id)\
        .subquery('attending_check')

    activities = db.session.query(Activity, attending_query)\
        .select_from(Activity)\
        .outerjoin(attending_query, Activity.id == attending_query.c.activity_id)\
        .filter(Activity.day_id == day_id)

    attending = any(user.id == get_user_id() for activity in activities for user in activity.Activity.participants)

    return render_template("public/festningslekene.html",
                           activities=activities,
                           attending=attending,
                           day_id=day_id,
                           time_now=datetime.now(),
                           form=form)