class ControlPanelView(BrowserView): __call__ = pagetemplatefile.ViewPageTemplateFile('controlpanel.pt') contents = pagetemplatefile.ViewPageTemplateFile('controlpanel-links.pt') label = _(u"Singing & Dancing configuration") def back_link(self): root = getSite() return dict(label=_(u"Up to Site Setup"), url=root.absolute_url() + '/plone_control_panel')
class PressRoomView(BrowserView): implements(IPressRoomView) template = pagetemplatefile.ViewPageTemplateFile('templates/pressroom.pt') def __call__(self): #self.request.set('disable_border', True) return self.template() def __init__(self, context, request): self.context = context self.request = request self.result = [] def _render_cachekey(method, self): return ('MemoNews') @ram.cache(_render_cachekey) @deprecation.deprecate("getFeed() is deprecated, use getRSSFeed instead.") def getFeed(self): context = Acquisition.aq_inner(self.context) sin = getToolByName(context, 'sin_tool') map = "MemoNews" rows = sin.sin(map, max_size=2) return rows def getRSSFeed(self, count=1000000): pp = getToolByName(self.context, 'portal_properties') op = getattr(pp, 'osha_properties', None) oshaview = getMultiAdapter((self.context, self.request), name='oshaview') url = op and op.getProperty('osha_in_the_media_feed', '') or '' ass = RSSAssignment(portlet_title="", count=count, url=url) renderer = RSSRenderer(self.context, self.request, self, None, ass) renderer.update() for item in renderer.items: item['summary'] = oshaview.cropHtmlText(item['summary'], 500) return renderer @ram.cache(_render_cachekey) def getPresscontacts(self): context = Acquisition.aq_inner(self.context) canonical = context.getCanonical() contactInfo = list() folder = getattr(canonical, 'press-contacts') international = getattr(folder, 'international-press', None) if international: contactInfo.append(international) spanish = getattr(folder, 'spanish-press', None) if spanish: contactInfo.append(spanish) brussels = getattr(folder, 'brussels-liaison', None) if brussels: contactInfo.append(brussels) return contactInfo
class PublicationEditForm(formbase.EditForm): """Form for editing publication fields. """ template = pagetemplatefile.ViewPageTemplateFile( 'templates/publication-edit.pt') form_fields = form.FormFields(interfaces.IPublication) #form_fields['chapters'].customq_widget = CollectionInputWidget label = u'Edit Publication Data' priority_fields = ['title'] def update(self): """ update the form """ self.adapters = {} form_fields = self.form_fields # here we can fiddle... self.form_fields = form_fields super(PublicationEditForm, self).update() def setUpWidgets(self, ignore_request=False): """ setup edit widgets """ self.widgets = form.setUpEditWidgets(self.form_fields, self.prefix, self.context, self.request, adapters=self.adapters, ignore_request=ignore_request) @form.action(_("Apply"), condition=form.haveInputWidgets) def handle_edit_action(self, action, data): """ handle edit """ changed = applyChanges(self.context, self.form_fields, data, self.adapters) if changed: attrs = Attributes(interfaces.IPublication, *changed) event.notify(ObjectModifiedEvent(self.context, attrs)) # TODO: Needs locale support. See also Five.form.EditView. self.status = _("Successfully updated") else: self.status = _('No changes') statusmessages_ifaces.IStatusMessage(self.request).addStatusMessage( self.status, 'info') redirect = self.request.response.redirect return redirect(self.context.absolute_url() + '/view')
def __call__(self): t = pagetemplatefile.ViewPageTemplateFile('error_message.pt') return t(self)
_patches.apply_patches() @namedtemplate.implementation(interfaces.IAction) def render_submit_button(self): """A custom version of the submit button that uses plone's context class""" if not self.available(): return '' label = self.label if isinstance(label, i18n.Message): label = i18n.translate(self.label, context=self.form.request) return ('<input type="submit" id="%s" name="%s" value="%s"' ' class="context" />' % (self.__name__, self.__name__, label)) __all__ = ('named_template_adapter', 'default_named_template') _template = pagetemplatefile.ViewPageTemplateFile('pageform.pt') default_named_template_adapter = named_template_adapter(_template) _subpage_template = pagetemplatefile.ViewPageTemplateFile('subpageform.pt') default_subpage_template = named_template_adapter(_subpage_template) _template = pagetemplatefile.ViewPageTemplateFile('addingpageform.pt') adding_named_template_adapter = named_template_adapter(_template) from zope.i18nmessageid import MessageFactory PloneMessageFactory = MessageFactory('plone')
class PublicationPageView(object): """Page for displaying a publication. """ adapted_interface = interfaces.IPublication media_field = 'file' estimate_template = pagetemplatefile.ViewPageTemplateFile( 'templates/estimate_template.pt') label = u'View Publication Info' @property def template(self): """ return the template """ return self.index @property def have_linguaplone(self): return HAVE_LINGUAPLONE def available_translations(self, context=None): """ list all available translations for this publication """ context = context or Acquisition.aq_inner(self.context) portal_languages = cmfutils.getToolByName(context, 'portal_languages') ali = portal_languages.getAvailableLanguageInformation() if HAVE_LINGUAPLONE: translations = context.getTranslations() else: translations = {context.Language(): (context, context.Language())} if len(translations.keys()) < 1: return lang_codes = translations.keys() lang_codes.sort() sm = getSecurityManager() R = [] for lang in lang_codes: trans = translations[lang][0] if not sm.checkPermission('View', trans): continue url = trans.absolute_url() name = ali.get(lang, {'native': lang})['native'] R.append((name, url)) return R def chapters(self): """ get the chapters """ additionals = _get_storage_folder(self.context) if additionals is None: return [] chapterlinks = additionals.objectValues('ATLink') return chapterlinks def fetchRelatedPublications(self, limit=3): """ Query the catalog for related publications """ context = Acquisition.aq_inner(self.context) subject = context.Subject() pc = cmfutils.getToolByName(context, 'portal_catalog') if hasattr(pc, 'getZCatalog'): pc = pc.getZCatalog() portal_languages = cmfutils.getToolByName(context, 'portal_languages') preflang = portal_languages.getPreferredLanguage() query = { 'portal_type': 'File', 'object_provides': 'slc.publications.interfaces.IPublicationEnhanced', 'Subject': subject, 'review_state': 'published', } # PQ = Eq('portal_type', 'File') & \ # In('object_provides', 'slc.publications.interfaces.IPublicationEnhanced') & \ # In('Subject', subject) & \ # Eq('review_state', 'published') if HAVE_LINGUAPLONE: # PQ = PQ & In('Language', [preflang, '']) query['Language'] = [preflang, ''] # RES = pc.evalAdvancedQuery(PQ, (('effective','desc'),) ) query['sort_on'] = 'effective' query['sort_order'] = 'descending' RES = pc(query) PUBS = [] mypath = "/".join(context.getPhysicalPath()) for R in RES: # dont show myself if R.getPath() == mypath: continue PUBS.append(R) if limit > 0 and len(PUBS) > limit: PUBS = PUBS[:limit] return PUBS def update(self): pass def estimated_download_time(self): return self.estimate_template() def _format_timestring(self, secs): const = {'sec': 1, 'mins': 60 * 60, 'hours': 24 * 60 * 60} order = ('hours', 'mins', 'sec') smaller = order[-1] if type(secs) in [type(0), type(0L)]: if secs < const[smaller]: return '1 %s' % smaller for c in order: if secs / const[c] > 0: break return '%.1f %s' % (float(secs / float(const[c])), c) return "%s secs" % secs
from Acquisition import aq_inner, aq_parent from Products.Five import BrowserView from Products.Five.browser import pagetemplatefile from Products.statusmessages.interfaces import IStatusMessage from eea.google.analytics.content import Analytics, AnalyticsReport from eea.google.analytics.interfaces import (IGoogleAnalyticsConnection, IAnalyticsReport, IXMLParser) logger = logging.getLogger('eea.google') # # Named templates # TEMPLATE = pagetemplatefile.ViewPageTemplateFile('editpageform.pt') edit_named_template_adapter = named_template_adapter(TEMPLATE) # # Abstract browser view # class AnalyticsView(BrowserView): """ Define common methods """ def _redirect(self, msg): """ Set status message and redirect back to context """ if self.request: url = self.context.absolute_url() IStatusMessage(self.request).addStatusMessage(msg, type='info')