class Navigation(uvclight.ViewletManager): uvclight.name('navigation') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) def application_url(self): return self.view.application_url()
class BF(uvclight.Page): uvclight.name('bf') uvclight.context(interface.Interface) uvclight.layer(IVBGTheme) uvclight.auth.require('zope.Public') template = get_template('bf.cpt')
class GatekeeperIndex(Page): name('index') context(GateKeeper) layer(DefaultLayer) template = get_template('entrance.pt', __file__) def update(self): self.portals = list(self.context.get_portals(self.request))
class Disable(PersonalMenuViewlet): uvclight.name('personalmenuviewlet') uvclight.layer(IVBGTheme) def available(self): return False def update(self): pass def render(self): return u''
class VBGFooter(uvclight.ViewletManager): uvclight.context(interface.Interface) uvclight.name('vbgfooter') template = get_template('vbgfooter.cpt') def update(self): pass def isAuth(self): if hasattr(self.request, 'principal'): if self.request.principal.id != 'user.unauthenticated': return True return False
class AdminIndex(Page): name('index') context(AdminRoot) layer(DefaultLayer) template = get_template('admin.pt', __file__) def update(self): self.links = ({ 'title': _(u"Messages management", default="Messages management"), 'url': get_absolute_url(self.context.messages, self.request), }, )
class LetterEmailer(DownloadLetter): uvclight.name('downloadletter') uvclight.layer(IVBGTheme) fields = DownloadLetter.fields + uvclight.Fields(IEmailer) fields['emails'].interface = IEmailer # TEMPORARY FIX actions = DownloadLetter.actions + Actions( EmailAction('Serienbrief per Mail versenden')) label = u"Serienbrief erstellen <a href='' data-toggle='modal' data-target='#myModal'> <span class='glyphicon glyphicon-question-sign' aria-hidden=' true'></span> </a>" def update(self): DE = DEFAULT % ( self.context.startdate.strftime('%d.%m.%Y'), self.context.enddate.strftime('%d.%m.%Y'), ) defaults = Letter(DE, emails=None) self.setContentData(ObjectDataManager(defaults))
class KontaktForm(uvclight.Form): uvclight.name('kontakt') uvclight.context(interface.Interface) uvclight.layer(IVBGTheme) uvclight.auth.require('zope.Public') fields = uvclight.Fields(IKontaktForm) label = u"Kontakt" description = u"Hier haben Sie die Möglichkeit uns themenspezifische Nachrichten zukommen zu lassen" @uvclight.action('Abbrechen') def handle_save(self): self.redirect(self.application_url()) @uvclight.action('Senden') def handle_save(self): data, errors = self.extractData() if errors: self.flash('Es sind Fehler aufgetreten') return from nva.psyquizz.emailer import ENCODING config = self.context.configuration subject_choices = self.fields['subject'].getChoices(self) item = subject_choices.getTerm(data['subject']) subject = item.title email, suf = item.token.split('_') tpl = config.resources.get_template('contact.tpl') emailer = self.context.configuration.emailer # {'message': u'fsadff', 'email': u'*****@*****.**', 'subject': '1'} title = "Anfrage!".encode(ENCODING) #email = data['email'] data['encoding'] = ENCODING data['subject'] = subject with config.emailer as sender: mail = config.emailer.prepare_from_template( tpl, email, title, data) sender(email, mail.as_string()) self.flash('Ihre Anfrage wurde versendet.') self.redirect(self.application_url())
class MessagesIndex(TableForm): name('index') context(MessagesRoot) layer(DefaultLayer) ignoreRequest = False ignoreContent = False postOnly = True mode = DISPLAY css_class = "table table-striped table-condensed" actions = Actions(DeleteEntry(_('Delete'))) @property def tableFields(self): fields = Fields(IMessage) fields['id'].mode = 'link' return fields def getItems(self): return list(self.context)
class EditForm(Form): """A very generic add form. """ name('index') title(_(u"edit_message", default=u"Edit message")) require('zope.Public') context(Message) layer(DefaultLayer) ignoreContent = False ignoreRequest = True fields = Fields(IMessage) dataValidators = [InvariantsValidation] @property def action_url(self): return self.request.url def updateForm(self): gkdate.need() self.fields['enable'].strict_format = '%d/%m/%Y %H:%M' self.fields['disable'].strict_format = '%d/%m/%Y %H:%M' Form.updateForm(self) @action(_(u"Update")) def Update(self): data, errors = self.extractData() if errors: self.submissionError = errors return FAILURE session = self.context.__parent__.session apply_data_event(self.fields, self.context, data) session.add(self.context) send(_(u"Your contents get updated.")) url = get_absolute_url(self.context, self.request) return SuccessMarker('Updated', True, url=url)
class AddForm(Form): """A very generic add form. """ name('add') title(_(u"add_message", default=_(u"Add message"))) require('zope.Public') context(MessagesRoot) layer(DefaultLayer) fields = Fields(IMessage).omit('id') dataValidators = [InvariantsValidation] @property def action_url(self): return self.request.url def updateForm(self): gkdate.need() self.fields['enable'].strict_format = '%d/%m/%y %H:%M' self.fields['disable'].strict_format = '%d/%m/%y %H:%M' Form.updateForm(self) @action(_(u"Add")) def add(self): data, errors = self.extractData() if errors: return FAILURE if data['activation'] != ON_DATES: del data['enable'] del data['disable'] item = self.context.model(**data) self.context.add(item) send(_(u"Content created.")) url = get_absolute_url(self.context, self.request) return SuccessMarker('Created', True, url=url)
class AboveContent(uvclight.ViewletManager): uvclight.name('above-body') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IAboveContent)
class Headers(uvclight.ViewletManager): uvclight.name('headers') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IHeaders)
class PageTop(uvclight.ViewletManager): uvclight.name('pagetop') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IPageTop)
class AboveContent(uvclight.ViewletManager): uvclight.name('uvc-above-body') uvclight.context(Interface)
class Tabs(uvclight.ViewletManager): uvclight.name('tabs') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.ITabs)
class MainNavigation(uvclight.ViewletManager): uvclight.context(interface.Interface) uvclight.name('uvc-mainnav')
class Footer(uvclight.ViewletManager): uvclight.name('uvc-footer') uvclight.context(Interface)
class BelowContent(uvclight.ViewletManager): uvclight.name('below-body') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IBelowContent)
class PageTop(uvclight.ViewletManager): uvclight.name('uvc-pagetop') uvclight.context(Interface)
class Footer(uvclight.ViewletManager): uvclight.name('footer') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IFooter)
class BelowContent(uvclight.ViewletManager): uvclight.name('uvc-below-body') uvclight.context(Interface)
class ContextualActions(Menu): name('contextual') template = get_template('contextual.pt', __file__)
class ExtraInfo(uvclight.ViewletManager): uvclight.name('uvc-extrainfo') uvclight.context(Interface)
class RGPDCK(uvclight.Viewlet): uvclight.viewletmanager(managers.IAboveContent) uvclight.order(00) uvclight.name('rgpdck') template = uvclight.get_template('rgpdck.cpt', __file__)
class Headers(uvclight.ViewletManager): uvclight.name('uvc-headers') uvclight.context(Interface)