class LayeredBone(grok.Viewlet): grok.context(Interface) grok.viewletmanager(Pot) grok.layer(IBoneLayer) def render(self): return 'Layered Bone'
class LadyViewlet(grok.Viewlet): grok.context(Interface) grok.viewletmanager(Pot) grok.view(FireView) def render(self): return 'Lady Viewlet'
class Base_URL(grok.Viewlet): grok.context(Interface) grok.viewletmanager(IHeaders) def render(self): return "<script> var base_url = '%s'; </script>" % self.view.application_url( )
class GoldBone(grok.Viewlet): grok.context(Interface) grok.viewletmanager(Pot) grok.require(Gold) def render(self): return 'Gold Bone'
class UserProfileViewlet(grok.Viewlet): grok.context(UserProfile) grok.viewletmanager(Content) grok.require('builder.Authenticated') needs_key = False user = None def update(self): self.user = user = IUser(self.context) if "reset_gw2key" in self.request: user.gw2_apikey = u"" if "refresh_char" in self.request: self.context.refresh = True if not user.gw2_apikey or len(user.gw2_apikey) == 0: self.needs_key = True else: if 'character' in self.request: self.context.selected = self.request['character'] self.context.refresh = True if 'gmode' in self.request: self.context.gmode = self.request['gmode'] if 'attunement' in self.request: self.context.skill_choice = self.request['attunement'] if 'weapon' in self.request: self.context.select_weapon(int(self.request['weapon'])) self.context.update() js_utils.need()
class ReviewViewlet(grok.Viewlet): grok.viewletmanager(uvcsite.IAboveContent) grok.context(interface.Interface) grok.baseclass() def available(self): if (len(self.values) > 0 and not ICOUser.providedBy(self.request.principal)): return True return False @property def values(self): results = [] homefolder = uvcsite.getHomeFolder(self.request) if homefolder: interaction = self.request.interaction for productfolder in homefolder.values(): if not productfolder.__name__.startswith('__'): if interaction.checkPermission('uvc.ViewContent', productfolder): results = [ x for x in productfolder.values() if IWorkflowState(x).getState() == REVIEW ] return results def render(self): return (u"<p class='alert'> Sie haben (%s) " + u"Dokumente in Ihrer <a href='%s'> ReviewList. </a> </p>") % ( len(self.values), uvcsite.getHomeFolderUrl(self.request, 'review_list'))
class WizardMenu(uvcsite.MenuItem): grok.viewletmanager(FormBeispiele) grok.title('Wizard') @property def action(self): return "%s/mywizard" % self.view.application_url()
class NamedViewlet(grok.Viewlet): grok.context(Interface) grok.name('viewletwithname') grok.viewletmanager(NamedViewletManager) def render(self): return "NamedViewlet"
class ErsteHilfeKontakt(grok.Viewlet): grok.context(ErsteHilfe) grok.view(ErsteHilfeExternal) grok.viewletmanager(uvcsite.IAboveContent) def render(self): return '<a href="%s" class="btn pull-right"> Kontakt </a>' % self.view.url(self.context, 'kontakt')
class User(MenuItem): grok.viewletmanager(GlobalMenu) grok.title('User') grok.description('User Description') action = "user" icon = "@@/dd/pdf.png"
class DraftsIndex(grok.Viewlet): grok.context(Drafts) grok.require('grokstar.Edit') grok.viewletmanager(Main) def entries(self): return allEntries(10)
class BlogIndex(grok.Viewlet): grok.context(Blog) grok.viewletmanager(Main) grok.view(Index) def entries(self): return lastEntries(10)
class ExtraViewsViewlet(grok.ViewletManager): grok.order(20) grok.baseclass() grok.view(Interface) grok.name('extra-views') grok.viewletmanager(uvcsite.browser.layout.slots.interfaces.IAboveContent) grok.require("zope.Public") # menu_factory = menus.ExtraViews menu_factory = object() def update(self): super().update() if not len(self.menu.viewlets) or ISimpleForm.providedBy(self.view): self.actions = None else: self.actions = self.compute_actions(self.menu.viewlets) def compute_actions(self, viewlets): for action in viewlets: selected = action.viewName == self.view.__name__ context_url = self.menu.view.url(self.menu.context) url = selected and None or "%s/%s" % (context_url, action.viewName) yield { 'id': action.__name__, 'url': url, 'title': action.title or action.__name__, 'selected': selected, 'class': (selected and 'selected ' + self.menu.menu_class or self.menu.menu_class), }
class ReviewViewlet(grok.Viewlet): grok.viewletmanager(uvcsite.browser.layout.slots.interfaces.IAboveContent) grok.context(interface.Interface) grok.baseclass() def available(self): if (len(self.values) > 0 and not ICOUser.providedBy(self.request.principal)): return True return False def update(self): self.homefolder = uvcsite.interfaces.IHomeFolder(self.request) @property def values(self): results = [] if self.homefolder: interaction = self.request.interaction for productfolder in self.homefolder.values(): if not productfolder.__name__.startswith('__'): if interaction.checkPermission( 'uvc.ViewContent', productfolder): results = [x for x in productfolder.values() if IWorkflowState(x).getState() == uvcsite.workflow.State.REVIEW] return results def render(self): url = self.view.url(self.homefolder) return ( u"<p class='alert'> Sie haben ({}) " + u"Dokumente in Ihrer <a href='{}/review_list'>ReviewList</a>.</p>" ).format(len(self.values), url)
class NavigationItem(grok.Viewlet): grok.viewletmanager(Navigation) grok.require('builder.Authenticated') grok.template('navigationitem') grok.baseclass() title = u'Undefined Title' link = '#'
class LogoutMenu(uvcsite.MenuItem): grok.name('Logout') grok.title('Logout') grok.require('zope.View') grok.viewletmanager(uvcsite.IPersonalPreferences) action = "logout"
class HtmlHead(grok.Viewlet): grok.viewletmanager(Head) grok.order(0) def getAppTitle(self): """Get the title of our blog. """ return grok.getSite().title
class StartMenu(uvcsite.MenuItem): grok.context(Interface) grok.viewletmanager(uvcsite.IGlobalMenu) grok.title("Startseite") @property def action(self): return self.view.application_url()
class InconsistentStateNotification(grok.Viewlet): grok.viewletmanager(asm.cmsui.base.NotificationMessages) grok.context(asm.cms.IEdition) message = u"" instruction = u"" def _select_public_draft_editions(self): edition_parameters = self.context.parameters page = self.context.page draft = None public = None if WORKFLOW_PUBLIC in edition_parameters: public = self.context parameters = edition_parameters.replace(WORKFLOW_PUBLIC, WORKFLOW_DRAFT) try: draft = page.getEdition(parameters) except KeyError: pass elif WORKFLOW_DRAFT in edition_parameters: draft = self.context parameters = edition_parameters.replace(WORKFLOW_DRAFT, WORKFLOW_PUBLIC) try: public = page.getEdition(parameters) except KeyError: pass return public, draft def update(self): public, draft = self._select_public_draft_editions() if public is None or draft is None: return if self.context == draft: if public.modified > draft.modified: self.message = (u"Public version has been modified after a " u"draft has been created. Press " u"\"Revert draft\" button to edit latest " u"published version as a draft.") self.instruction = (u"Be careful not to lose any corrections " u"that may have been made in the public " u"version.") elif draft.modified > public.modified: self.message = u"Remember to publish this draft." self.instruction = ( u"Changes to drafts are not visible until published.") if self.context == public and draft.modified > public.modified: self.message = u"A draft exists and has been modified." self.instruction = (u"Remember to update the draft with the same " u"corrections you are making into the public " u"version.")
class AddMenuViewlet(grok.Viewlet): grok.view(Index) grok.order(30) grok.context(uvcsite.content.interfaces.IProductFolder) grok.viewletmanager(uvcsite.browser.layout.slots.interfaces.ITabs) def render(self): template = getMultiAdapter((self, self.request), IPageTemplate) return template()
class EntriesIndex(grok.Viewlet): grok.context(Entries) grok.viewletmanager(Main) @property def entries(self): """Return all published entries. """ return lastEntries(-1)
class Actions(grok.Viewlet): """Page-related UI actions to perform on editions.""" grok.viewletmanager(asm.cmsui.base.MainPageActions) grok.context(asm.cms.interfaces.IEdition) @property def page(self): return self.context.page
class AddMenuViewlet(grok.Viewlet): grok.view(Index) grok.order(30) grok.context(IProductFolder) grok.viewletmanager(interfaces.ITabs) def render(self): template = getMultiAdapter((self, self.request), IPageTemplate) return template()
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 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 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 YearIndex(grok.Viewlet): grok.context(Year) grok.template('dateindex') grok.viewletmanager(Main) def entries(self): from_ = datetime(self.context.year, 1, 1) until = datetime(self.context.year + 1, 1, 1) return entriesInDateRange(from_, until)
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 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 DownloadAction(grok.Viewlet): grok.viewletmanager(asm.cmsui.base.ExtendedPageActions) @property def applicable(self): try: self.context.content.committed() except AttributeError: return False return True