def enroll(evt_id): user = helpers.current_user() event = Event.get(evt_id) if not event: return abort(404) if not user: return abort(403) form = EventEnrollmentForm() if form.validate_on_submit(): enrollment = EventEnrollment.filter_by( user_id=user.id, event_id=event.id ).first() if enrollment: flash('You are already enrolled to this event', category='danger') else: new_enrollment = EventEnrollment(user_id=user.id, event_id=event.id, reason=form.reason.data) new_enrollment.save(commit=True) flash('You successfully enrolled to the event "%s"' % event.title, category='success') return redirect(url_for('events.show', evt_id=event.id)) return render_template('events/enrollment.html.j2', event=event, form=form)
def show(evt_id): event = Event.get(evt_id) if not event: return abort(404) return render_template('events/show.html.j2', event=event, can_edit=helpers.current_user() == event.publisher)
def attendance(evt_id): user = helpers.current_user() event = Event.get(evt_id) if not event: return abort(404) if not user or user != event.publisher: return abort(403) form = EventAttendanceForm(data=dict( attendant_ids=[u.id for u in event.attendants] )) form.attendant_ids.choices = [(user.id, user.full_name) for user in User.all()] if form.validate_on_submit(): new_attendance_list = [User.get(user_id) for user_id in form.attendant_ids.data] event.attendants = new_attendance_list event.save(commit=True) flash('Event attendance registered successfully', category='success') return redirect(url_for('events.show', evt_id=evt_id)) return render_template('events/attendance.html.j2', form=form, evt_id=event.id)