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)
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))
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)
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))
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'))
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)