def handle_new_event(self, request, form): """ Add a new event. The event is created and the user is redirected to a view where he can review his submission and submit it finally. """ self.title = _("Submit an event") terms = _( "Only events taking place inside the town or events related to " "town societies are published. Events which are purely commercial are " "not published. There's no right to be published and already " "published events may be removed from the page without notification " "or reason." ) if form.submitted(request): model = Event() form.update_model(model) meta = model.meta meta.update({'session_id': get_session_id(request)}) event = EventCollection(self.session).add( title=model.title, start=model.start, end=model.end, timezone=model.timezone, recurrence=model.recurrence, tags=model.tags, location=model.location, content=model.content, meta=meta ) return morepath.redirect(request.link(event)) layout = EventLayout(self, request) layout.editbar_links = [] return { 'layout': layout, 'title': self.title, 'form': form, 'form_width': 'large', 'lead': terms }
def handle_edit_event(self, request, form): """ Edit an event. An anonymous user might edit an initiated event, a logged in user can also edit all events. """ assert_anonymous_access_only_temporary(request, self) if form.submitted(request): form.update_model(self) request.success(_("Your changes were saved")) if 'return-to' in request.GET: return morepath.redirect(request.GET['return-to']) return morepath.redirect(request.link(self)) form.apply_model(self) if 'return-to' in request.GET: action = URL(form.action) action = action.query_param('return-to', request.GET['return-to']) form.action = action.as_string() layout = EventLayout(self, request) layout.breadcrumbs.append(Link(_("Edit"), '#')) layout.editbar_links = [] return { 'layout': layout, 'title': self.title, 'form': form, 'form_width': 'large' }