def create(): """Create a new event. **Route:** ``/admin/events/create`` **Methods:** ``GET, POST`` """ form = CreateEventForm(request.form) if form.validate_on_submit(): try: EventsHelper.create_event(form, g.user) except EventumError.GCalAPI as e: flash(e.message, ERROR_FLASH) return redirect(url_for('.index')) if form.errors: for error in form.errors: for message in form.errors[error]: flash(message, ERROR_FLASH) upload_form = UploadImageForm() delete_form = DeleteEventForm() images = Image.objects() return render_template('eventum_events/create.html', form=form, delete_form=delete_form, upload_form=upload_form, images=images)
def delete(event_id): """Delete an existing event. **Route:** ``/admin/events/delete/<event_id>`` **Methods:** ``POST`` :param str event_id: The ID of the event to delete. """ object_id = ObjectId(event_id) form = DeleteEventForm(request.form) if Event.objects(id=object_id).count() == 1: event = Event.objects().with_id(object_id) try: EventsHelper.delete_event(event, form) except EventumError.GCalAPI as e: flash(e.message, ERROR_FLASH) else: flash('Invalid event id', ERROR_FLASH) return redirect(url_for('.index'))
def edit(event_id): """Edit an existing event. **Route:** ``/admin/events/edit/<event_id>`` **Methods:** ``GET, POST`` :param str event_id: The ID of the event to edit. """ try: event = Event.objects().get(id=event_id) except (DoesNotExist, ValidationError): flash('Cannot find event with id "{}"'.format(event_id), ERROR_FLASH) return redirect(url_for('.index')) if request.method == "POST": form = EditEventForm(event, request.form) else: form = EventsHelper.create_form(event, request) if form.validate_on_submit(): try: EventsHelper.update_event(event, form) except EventumError.GCalAPI as e: flash(e.message, ERROR_FLASH) return redirect(url_for('.index')) if form.errors: for error in form.errors: for message in form.errors[error]: flash(message, ERROR_FLASH) delete_form = DeleteEventForm() upload_form = UploadImageForm() images = Image.objects() return render_template('eventum_events/edit.html', form=form, event=event, delete_form=delete_form, upload_form=upload_form, images=images)