class Add(formlib.AddForm): grok.require('afpy.barcamp.managemeetings') grok.context(AfpyBarcamp) form_fields = grok.AutoFields(IMeeting) megrok.menu.menuitem(menu='actions') grok.title(_(u'Add a meeting')) def update(self): self.form_fields['__name__'].field.title = _(u'URL name') super(Add, self).update() def setUpWidgets(self, ignore_request = False): super(Add, self).setUpWidgets(ignore_request) @formlib.action(_(u'Add meeting')) def add(self, **data): obj = Meeting() self.applyData(obj, **data) # TODO generate a correct slug that removes accents if '__name__' not in data or data['__name__'] is None: name = data['name'].lower().replace(' ', '_') else: name = data['__name__'] self.context[name] = obj self.redirect(self.url('index'))
class StatistikView(uvcsite.Page): grok.name('statistik') grok.title('Statistik') grok.require('zope.ManageSite') grok.context(uvcsite.IUVCSite) def update(self): self.counter = dict() inc = dict(anzahl=0, entwurf=0, gesendet=0, verarbeitung=0) hFB = getUtility(IHomeFolderManager).homeFolderBase self.counter['HomeFolder'] = inc self.counter['HomeFolder']['anzahl'] = len(hFB) pf_c = 0 for homefolder in hFB.values(): for name, pf in homefolder.items(): if not IBroken.providedBy(pf): pf_c += 1 if name not in self.counter: self.counter[name] = dict(anzahl=0, entwurf=0, gesendet=0, verarbeitung=0) self.counter[name]['anzahl'] += len(pf) for obj in pf.values(): state = IWorkflowState(obj).getState() if state == 0: self.counter[name]['entwurf'] += 1 elif state == 1: self.counter[name]['gesendet'] += 1 elif state == 2: self.counter[name]['verarbeitung'] += 1 self.counter['ProductFolders'] = dict() self.counter['ProductFolders']['anzahl'] = pf_c
class Unfallanzeigen(uvcsite.ProductFolder): """Container fuer die Speicherung der Lastschriftdokumente""" grok.implements(IUnfallanzeigenFolder) uvcsite.contenttype(Unfallanzeige) grok.title(u'Elektronische Unfallanzeigen') title = u"Unfallanzeigen" description = u"In diesem Ordner werden alle Elektronischen Unfallanzeigen gespeichert"
class User(MenuItem): grok.viewletmanager(GlobalMenu) grok.title('User') grok.description('User Description') action = "user" icon = "@@/dd/pdf.png"
class Unfallanzeige(uvcsite.Content): """ContentType fuer das Lastschriftverfahren""" uvcsite.schema(IUnfallanzeige) grok.name('Unfallanzeige') grok.title('Unfallanzeige') title = u"Unfallanzeige"
class LogoutMenu(uvcsite.MenuItem): grok.name('Logout') grok.title('Logout') grok.require('zope.View') grok.viewletmanager(uvcsite.IPersonalPreferences) action = "logout"
class ComplexForm(uvcsite.Form): """ """ grok.title(u'KomplexForm') grok.description(u"Komplexe Form") grok.context(uvcsite.IUVCSite) #uvcsite.menu(FormBeispiele) ignoreContent = False ignoreRequest = False fields = uvcsite.Fields(IAdressen) #fields['personen'].mode = "bgdp" fields['personen'].allowOrdering = False fields['personen'].inlineValidation = True label = u"Adressen" description = u"Adressen" def update(self): super(ComplexForm, self).update() @uvcsite.action(u'Abschicken') def handleButton(self): data, errors = self.extractData() print errors import pdb pdb.set_trace()
class WizardMenu(uvcsite.MenuItem): grok.viewletmanager(FormBeispiele) grok.title('Wizard') @property def action(self): return "%s/mywizard" % self.view.application_url()
class MyForm(uvcsite.Form): grok.title(u'Beispielform') grok.description(u"Beschreibugn Beschreibugn") grok.context(Interface) ignoreContent = False ignoreRequest = False fields = uvcsite.Fields(IPerson) fields['geschlecht'].mode = "radio" fields['name'].htmlAttributes['maxlength'] = 10 fields['vorname'].htmlAttributes['placeholder'] = u"BLA" fields['datum'].htmlAttributes = {'placeholder': 'tt.mm.jjjj'} fields['check'].htmlAttributes = {'disabled': 'disabled'} fields['datum'].mode = "dp-date" label = u"Beispielform" description = u"Beschreibung" legend = "LEGENDE" def update(self): self.setContentData(uvcsite.DictDataManager(dict(name="Klaus"))) double.need() masked_input.need() @uvcsite.action(u'Abschicken') def handleButton(self): data, errors = self.extractData() if errors or self.errors: self.flash(u"FEHLER", type="error") return self.flash('Alles Klar')
class ChangePassword(uvcsite.Form): """A Form for updating a User in ENMS. """ grok.title(u'Passwort ändern') grok.context(IMyHomeFolder) label = _(u'Passwort ändern') description = _(u'Hier können Sie Ihr Passwort ändern') # uvcsite.menu(uvcsite.PersonalMenu) grok.require('zope.View') ignoreContext = True fields = Fields(IExtranetMember).select('passwort', 'confirm') @base.action(_(u"Bearbeiten")) def changePasswort(self): data, errors = self.extractData() if errors: self.flash('Es sind Fehler aufgetreten', type='error') return um = getUtility(IUserManagement) principal = self.request.principal.id data['mnr'] = principal um.updatePasswort(**data) self.flash(_(u'Ihr Passwort wurde gespeichert!')) self.redirect(self.url(self.context))
class Edit(formlib.EditForm): """edit form for the seance """ form_fields = grok.AutoFields(ISeance) grok.require('afpy.barcamp.editseance') grok.context(ISeance) grok.title(_(u'Edit')) megrok.menu.menuitem('actions')
class Index(formlib.DisplayForm): """view of the seance """ form_fields = grok.AutoFields(ISeance).omit('name') #grok.require('afpy.barcamp.seances.list') grok.context(ISeance) megrok.menu.menuitem('actions') grok.title(_(u'View'))
class ListEdit(Contents, grok.View): """edit the list of seances """ grok.name('edit') grok.context(SeanceContainer) grok.require('zope.ManageContent') megrok.menu.menuitem('actions') grok.title(_(u'Edit'))
class Step3(uvcsite.Step): grok.title('Step3') grok.context(uvcsite.IUVCSite) grok.view(MyWizard) fields = uvcsite.Fields(IPerson).select('name') ignoreContent = False label = "Step 3"
class Step2(uvcsite.Step): grok.title('Step2') grok.context(uvcsite.IUVCSite) grok.view(MyWizard) fields = uvcsite.Fields(IPerson).select('vorname') ignoreContent = False label = "Step 2 GANZ LANGER STEP"
class TF(uvcsite.GroupForm): grok.title(u'FieldsetBasedForm') grok.context(uvcsite.IUVCSite) @uvcsite.action(u'Speichern') def handle_save(self): data, errors = self.extractData() print data, errors
class Edit(formlib.EditForm): """edit form for a duration """ form_fields = grok.AutoFields(IDuration) grok.context(Duration) grok.require('zope.ManageContent') megrok.menu.menuitem('actions') grok.title(_(u'Edit'))
class ListView(Contents, grok.View): """view of the list of durations """ grok.name('index') grok.context(IDurations) grok.require('zope.ManageContent') megrok.menu.menuitem('navigation') grok.title(_(u'Durations'))
class Index(formlib.DisplayForm): """view of the durations """ form_fields = grok.AutoFields(IDuration) grok.require('zope.ManageContent') grok.context(IDuration) megrok.menu.menuitem('actions') grok.title(_(u'View'))
class StartMenu(uvcsite.MenuItem): grok.context(Interface) grok.viewletmanager(uvcsite.IGlobalMenu) grok.title("Startseite") @property def action(self): return self.view.application_url()
class Index(uvcsite.Page): grok.title('Startseite') grok.context(IUVCSite) grok.require('zope.View') def update(self): self.flash('Fehlermeldung KLAUSi ERNST', 'error') self.flash('Warnung...', 'warning')
class Stat(uvcsite.Page): grok.name('stat') grok.title('Statistik LONG LONG LONG') grok.context(AdressBook) viewName = "stat" title = "title" def render(self): return "<div> <h1>Statistiks</h1> </div>"
class UnfallanzeigeRegistration(uvcsite.ProductRegistration): grok.name('KinderUnfallanzeige') grok.title('Kinder Unfallanzeige') grok.description('Kinder Unfallanzeige') grok.order(51) uvcsite.productfolder('ukh.spsuaz.components.SUnfallanzeigen') def action(self): return "%sSunfallanzeigen/add" % uvcsite.getHomeFolderUrl(self.request)
class LogoutMenu(uvcsite.MenuItem): grok.name('Logout') grok.title('Abmelden') grok.require('zope.View') grok.viewletmanager(uvcsite.IPersonalPreferences) @property def action(self): return "%s/logout" % self.view.application_url()
class Index(TablePage): grok.title(u'Mein Ordner') grok.context(IMyHomeFolder) grok.require('uvc.AccessHomeFolder') # uvcsite.sectionmenu(uvcsite.IExtraViews) cssClasses = { 'table': ('tablesorter table table-striped ' + 'table-bordered table-condensed') } cssClassEven = u'even' cssClassOdd = u'odd' startBachtAt = 15 bachtSize = 15 sortOn = "table-modified-5" @property def title(self): name = self.request.principal.title return u"Ordner von %s" % name description = _(u"Hier werden Ihre Dokumente abgelegt") def getContentTypes(self): interaction = self.request.interaction for key, value in self.context.items(): if (interaction.checkPermission('uvc.ViewContent', value) and not getattr(value, 'excludeFromNav', False)): yield dict(href=absoluteURL(value, self.request), name=key) def executeDelete(self, item): self.flash(_(u'Ihre Dokumente wurden entfernt')) del item.__parent__[item.__name__] def update(self): items = self.request.form.get('table-checkBox-0-selectedItems') if items and 'form.button.delete' in self.request: if isinstance(items, (str, unicode)): items = [items] for key in items: for pf in self.context.values(): if key in pf: self.executeDelete(pf[key]) super(Index, self).update() def renderCell(self, item, column, colspan=0): from z3c.table import interfaces if interfaces.INoneCell.providedBy(column): return u'' cssClass = column.cssClasses.get('td') cssClass = self.getCSSHighlightClass(column, item, cssClass) cssClass = self.getCSSSortClass(column, cssClass) cssClass = self.getCSSClass('td', cssClass) colspanStr = colspan and ' colspan="%s"' % colspan or '' dt = ' data-title="%s" ' % column.header return u'\n <td%s%s%s>%s</td>' % (cssClass, colspanStr, dt, column.renderCell(item))
class StatistikMenu(uvcsite.MenuItem): grok.context(uvcsite.IUVCSite) grok.title('Statistik') grok.require('zope.ManageSite') grok.viewletmanager(uvcsite.IFooter) @property def action(self): return "%s/statistik" % self.view.application_url()
class RequestAccessTokenMenu(uvcsite.MenuItem): grok.title(u'Access Token erstellen') grok.require('zope.View') grok.viewletmanager(uvcsite.IPersonalMenu) @property def action(self): return self.view.url( IHomeFolder(self.request.principal).homeFolder, 'request_token')
class AddMenuEntry(ProductMenuItem): grok.name('Buddy erstellen') grok.title('Buddy erstellen') grok.context(zope.interface.Interface) grok.viewletmanager(uvcsite.IGlobalMenu) @property def reg_name(self): return "adressbook"
class ChangePasswordMenu(uvcsite.MenuItem): grok.title(u'Passwort ändern') grok.require('zope.View') grok.viewletmanager(uvcsite.IPersonalMenu) @property def action(self): return self.view.url( IHomeFolder(self.request.principal).homeFolder, 'changepassword')
class DisplayProductFolderListing(TablePage): grok.title(u'AdHoc Objekte') grok.name('index') grok.context(IAdHocProductFolder) grok.require('zope.ManageApplication') cssClasses = { 'table': 'tablesorter table table-striped table-bordered table-condensed' }
graph_xml = form.request.form['data'] try: graph = SetobjectGraph(form.request, graph_xml) graph.save() jsonresponse['result'] = 'OK' except SetobjectGraphException, ex: jsonresponse['error'] = {'title': 'Save failed', 'message': ex.reason, 'data_node_id': ex.setobjectid} form.jsonresponse = jsonresponse grok.name('index') grok.context(IGenericSet) grok.title(_(u"Edit data")) grok.require('dolmen.content.View') actions = Actions(SaveAction('Save'),) def __call__(self): if self.request.headers.get('X-Requested-With') == 'XMLHttpRequest': self.updateActions() self.response.setHeader('Content-Type', 'application/json') return json.dumps(self.jsonresponse) else: return super(EditData, self).__call__() @property def prefix(self): return str(self.context.plan_identifier)