class LoginAlerts(Viewlet): viewletmanager(Top) order(15) context(LoginRoot) layer(DefaultLayer) template = get_template('messages.pt', __file__)
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 Alerts(Viewlet): viewletmanager(Top) order(15) context(GateKeeper) layer(DefaultLayer) template = get_template('messages.pt', __file__)
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 GateLayout(Layout): context(Interface) layer(DefaultLayer) title = u"Gatekeeper" template = get_template('layout.pt', __file__) def __call__(self, content, **namespace): styles.need() namespace['user'] = self.request.environment.get('REMOTE_USER') namespace['gatekeeper_messages'] = list(receive()) return Layout.__call__(self, content, **namespace)
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 Layout(uvclight.Layout): uvclight.context(Interface) template = uvclight.get_template('layout.cpt', __file__) base = "/" def __call__(self, content, **ns): main_css.need() # main_js.need() if 'view' in ns: self.title = getattr(ns['view'], 'title', u'KUVB') else: self.title = u'Fernlehrgang' return uvclight.Layout.__call__(self, content, **ns)
class Layout(uvclight.Layout): uvclight.context(Interface) uvclight.layer(IVBGTheme) base = "/" template = get_template('layout.cpt') def __call__(self, content, **ns): vbgcss.need() vbgjs.need() site = uvclight.getSite() self.title = getattr(site, 'title', 'UVCLight') if 'view' in ns: if hasattr(ns['view'], 'title'): self.title = getattr(ns['view'], 'title', u'UVCLight') return uvclight.Layout.__call__(self, content, **ns)
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 GlobalNav(uvclight.Viewlet): uvclight.viewletmanager(MainNavigation) uvclight.context(interface.Interface) template = uvclight.get_template('globalnav.cpt', __file__) @property def title(self): site = uvclight.getSite() if site is not None: return site.title return u'Navigation' def update(self): self.gmentries = [] self.globalmenu = getMultiAdapter( (self.view.context, self.request, self.view), IViewletManager, 'globalmenu') self.globalmenu.update() self.globalmenu.template = uvclight.get_template( 'globalmenu.cpt', __file__) self.personalmenu = getMultiAdapter( (self.view.context, self.request, self.view), IViewletManager, 'personal') self.personalmenu.update() self.personalmenu.template = uvclight.get_template( 'personalmenu.cpt', __file__) self.submenus = list() submenus = getAdapters( (self.context, self.request, self.view, self.globalmenu), ISubMenu) for name, submenu in submenus: submenu.update() submenu.template = uvclight.get_template('submenu.cpt', __file__) self.submenus.append(submenu) for entry in self.globalmenu.entries: self.gmentries.append(entry) self.gmentries += self.submenus setattr(self.globalmenu, 'gmentries', self.gmentries)
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 ObjectActionMenuViewlet(MenuViewlet): uvclight.viewletmanager(managers.IAboveContent) uvclight.context(IContent) uvclight.layer(IVBGTheme) uvclight.order(10) menu = menus.ContextualActionsMenu
class MainNavigation(uvclight.ViewletManager): uvclight.context(interface.Interface) uvclight.name('uvc-mainnav')
class Footer(uvclight.ViewletManager): uvclight.name('footer') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IFooter)
class BelowContent(uvclight.ViewletManager): uvclight.name('below-body') uvclight.layer(IVBGTheme) uvclight.context(uvclight.Interface) uvclight.implements(managers.IBelowContent)
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 PageTop(uvclight.ViewletManager): uvclight.name('uvc-pagetop') uvclight.context(Interface)
class BelowContent(uvclight.ViewletManager): uvclight.name('uvc-below-body') uvclight.context(Interface)
class Headers(uvclight.ViewletManager): uvclight.name('uvc-headers') uvclight.context(Interface)
class Footer(uvclight.ViewletManager): uvclight.name('uvc-footer') uvclight.context(Interface)
class Datenschutz(uvclight.Page): uvclight.context(interface.Interface) #uvclight.layer(ICompanyRequest) uvclight.auth.require('zope.Public') template = get_template('datenschutz.cpt')
class ExtraInfo(uvclight.ViewletManager): uvclight.name('uvc-extrainfo') uvclight.context(Interface)