def rss_settings(self): schema = createSchema("RssSettingsMeetingSchema") add_csrf_token(self.context, self.request, schema) schema = schema.bind(context=self.context, request=self.request, api = self.api) form = Form(schema, buttons=(button_save, button_cancel)) self.api.register_form_resources(form) fanstaticlib.jquery_form.need() post = self.request.POST if 'save' in post: controls = post.items() try: appstruct = form.validate(controls) except ValidationFailure, e: self.response['form'] = e.render() return self.response self.context.set_field_appstruct(appstruct) url = self.request.resource_url(self.context) return HTTPFound(location=url)
def edit_speaker_log(self): """ Edit log entries for a specific speaker. """ speaker_list_name = self.request.GET['speaker_list'] speaker_list = self.slists.speaker_lists[speaker_list_name] speaker = int(self.request.GET['speaker']) schema = createSchema("EditSpeakerLogSchema") add_csrf_token(self.context, self.request, schema) schema = schema.bind(context = self.context, request = self.request, api = self.api) form = deform.Form(schema, buttons = (deform.Button("save", _(u"Save")), deform.Button("cancel", _(u"Cancel")))) post = self.request.POST if self.request.method == 'POST': if 'save' in post: controls = post.items() try: appstruct = form.validate(controls) except deform.ValidationFailure, e: self.response['form'] = e.render() return self.response del speaker_list.speaker_log[speaker][:] speaker_list.speaker_log[speaker].extend(appstruct['logs']) ai = find_interface(speaker_list, IAgendaItem) url = self.request.resource_url(ai, 'manage_speaker_list') return HTTPFound(location = url)
def speaker_list_plugin(self): schema = createSchema("SpeakerListPluginSchema") add_csrf_token(self.context, self.request, schema) schema = schema.bind(context=self.context, request=self.request, api = self.api) self.response['tabs'] = self.api.render_single_view_component(self.context, self.request, 'tabs', 'manage_speaker_lists') return self.form(schema)