def handle_request(self, eid, *args, **kwargs): action_text = 'Edit' action_url = url_for('event_edit', eid=eid) event = Event.query.filter_by(id=eid).first_or_404() if not event.league.editable_by_user(current_user): abort(403) form = EventForm(obj=event) if form.validate_on_submit(): event.name = form.name.data db.session.commit() return redirect(url_for('event', eid=event.id)) else: return render_template('event-edit.html', form=form, action_text=action_text, action_url=action_url, **self.context)
def handle_request(self, lid, *args, **kwargs): action_text = 'Create' action_url = url_for('event_create', lid=lid) league = League.query.filter_by(id=lid).first_or_404() if not league.editable_by_user(current_user): abort(403) if request.method == 'POST': form = EventForm(request.form) if form.validate_on_submit(): event = Event(form.name.data, league) db.session.add(event) for stage_data in form.stages.data: stage = Stage(event, stage_data['start_date'], stage_data['end_date']) db.session.add(stage) db.session.commit() return redirect(url_for('event', eid=event.id)) else: return render_template('event-edit.html', form=form, action_text=action_text, action_url=action_url, **self.context) if request.method == 'GET': form = EventForm() return render_template('event-edit.html', form=form, action_text=action_text, action_url=action_url, **self.context)