예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)