from plone.app.layout.viewlets.interfaces import IPortalFooter from plone.app.layout.viewlets.interfaces import IPortalHeader from plone.app.layout.navigation.root import getNavigationRoot from plone.app.layout.navigation.navtree import buildFolderTree from plone.app.layout.navigation.interfaces import INavtreeStrategy from Products.CMFPlone.browser.navtree import NavtreeQueryBuilder from plone.i18n.normalizer import idnormalizer from plone.registry.interfaces import IRegistry # Local imports from Products.CMFCore.utils import getToolByName from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile grok.templatedir("viewlets") class OpenMultimediaFooter(grok.Viewlet): grok.context(Interface) grok.name(u"openmultimedia.footer") grok.require("zope2.View") grok.template("footer") grok.viewletmanager(IPortalFooter) def get_footer_section(self): """ """ self.context = aq_inner(self.context) portal_state = getMultiAdapter((self.context, self.request), name=u'plone_portal_state')
# -*- coding: utf-8 -*- from five import grok from openmultimedia.contenttypes.content.audio import IAudio grok.templatedir('audio_templates') class View(grok.View): """ Default view displays a audio player. """ grok.context(IAudio) grok.require('zope2.View')
from five import grok from zope.formlib import form from collective.shibboleth.auth import _generatePassword from collective.spaces.browser.createform import CreateSpaceForm from plone.app.users.browser.passwordpanel \ import PasswordPanel as OriginalPasswordPanel from plone.app.layout.viewlets.common import SearchBoxViewlet grok.templatedir('.') class CustomCreateSpaceForm(CreateSpaceForm): """ Extend and customise the Space creation form. """ grok.template('create-space') class CustomSearchBoxViewlet(SearchBoxViewlet): def update(self): super(CustomSearchBoxViewlet, self).update() self.navigation_root_url = 'https://espaces.edu.au' class PasswordPanel(OriginalPasswordPanel): description = u"Change or regenerate password. If you are logged in" \ u" via your institutional account, then you can select to" \ u" generate a new local password below."
# -*- coding: utf-8 -*- from five import grok from vindula.contentcore.formulario import IFormularioPadrao from vindula.contentcore.models.fields import ModelsFormFields from vindula.contentcore.models.form_values import ModelsFormValues grok.templatedir('views_templates') class VindulaAjaxReferenceView(grok.View): grok.context(IFormularioPadrao) grok.require('zope2.View') grok.name('ajax-reference') def update(self): form = self.request.form instance = 0 formulario = form.get('form','0') field = form.get('field','') self.name_field = field value = form.get('value','') self.formulario = formulario self.campos = ModelsFormFields().get_Fields_ByIdForm(int(formulario)) campo_busca = ModelsFormValues().store.find(ModelsFormValues, ModelsFormValues.fields==unicode(field), ModelsFormValues.forms_id==int(formulario),
form.no_omit(IEditForm, 'description','homepage') @form.validator(field=IRegistrationForm['captcha']) def validateCaptca(value): site = getSite() request = getRequest() if request.getURL().endswith('kss_z3cform_inline_validation'): return captcha = CaptchaValidator(site, request, None, IRegistrationForm['captcha'], None) captcha.validate(value) grok.templatedir('register_templates') from wechat.policy.browser.interfaces import IThemeSpecific class RegistrationForm(form.SchemaForm): grok.name('register') grok.context(IMemberfolder) # grok.template('registrationform') grok.require("zope.Public") grok.layer(IThemeSpecific) # fields = field.Fields(IRegistrationForm) schema = IRegistrationForm ignoreContext = True label = _(u"Register for site member") def update(self):
from Products.statusmessages.interfaces import IStatusMessage from zope.component import getUtility from plone.registry.interfaces import IRegistry from vindula.comissao.tools import convert_csv2list_dict, convert_str2int,\ convert_str2decimal, convert_str2unicode, convert_str2date, convert_str2bool from vindula.comissao import MessageFactory as _ from vindula.comissao.models.comissao_usuario import ComissaoUsuario from vindula.comissao.models.comissao_venda import ComissaoVenda import transaction grok.templatedir('templates') class ImportComissaoView(grok.View): grok.context(Interface) grok.require('cmf.ManagePortal') grok.name('importar-comissao') def update(self): self.retorno_import = 0 form = self.request.form if 'txt_file' in form.keys(): file_import = form.get('txt_file','') if file_import and 'importa_usuario' in form.keys(): rows = file_import.readlines()
from AccessControl.SecurityManagement import setSecurityManager from AccessControl.User import SpecialUser from Products.CMFCore.utils import getToolByName from five import grok from hexagonit.socialbutton.browser.interfaces import IHexagonitSocialbuttonLayer from hexagonit.socialbutton.data import SocialButtonConfig from hexagonit.socialbutton.interfaces import ISocialButtonHidden from plone.app.layout.globals.interfaces import IViewView from plone.registry.interfaces import IRegistry from plone.stringinterp.interfaces import IStringInterpolator from zope.component import getUtility from zope.interface import Interface from zope.viewlet.interfaces import IViewletManager grok.templatedir('viewlets') class anonymous_access(object): """ Context anonymous to use like this: with anonymous_access(request): do_something() """ def __init__(self, request, roles=('Anonymous', )): self.request = request self._roles = roles def __enter__(self): self.real_sm = getSecurityManager() newSecurityManager(
from Acquisition import aq_base from five import grok from collective.contact.core.behaviors import IContactDetails from collective.contact.core.browser import TEMPLATES_DIR from collective.contact.core.behaviors import ADDRESS_FIELDS grok.templatedir(TEMPLATES_DIR) def get_address(obj): """Returns a dictionary which contains address fields""" address = {} if (aq_base(obj).use_parent_address is True and hasattr(obj, 'aq_parent') and IContactDetails.providedBy(obj.aq_parent)): address = get_address(obj.aq_parent) if address: return address address_fields = ADDRESS_FIELDS obj = aq_base(obj) for field in address_fields: value = getattr(obj, field, '') or '' address[field] = value if not [v for v in address.values() if v]: # no value in address fields return {} return address
from Products.CMFCore.utils import getToolByName from five import grok from msd.landingpage import landingpageMessageFactory as _ # Import BlocksView from msd.landingpage.browser.blocksview import LayoutView, ILayoutView from msd.landingpage.layout import Block from msd.landingpage.interfaces import ILandingPage # All layout views are available for landing page content only grok.context(ILandingPage) grok.templatedir("layout_templates") # Layout views must inherit from LayoutView class Layout1(LayoutView): """ SampleLayout browser view """ icon = "layout1.png" title = _(u"Three horizontal") # blocks are defined by Block objects # parameters are: direction, (width without portlets, width with one portlet column, width with two portlet columns) block_definitions = [ Block(Block.HORIZONTAL, (24, 18, 12), css_classes=["layoutcolumn span-24 last", "layoutcolumn span-18 last",
# -*- coding: utf-8 -*- from five import grok from vindula.contentcore.formulario import IFormularioPadrao from vindula.contentcore.models.fields import ModelsFormFields from vindula.contentcore.models.form_values import ModelsFormValues grok.templatedir('views_templates') class VindulaAjaxReferenceView(grok.View): grok.context(IFormularioPadrao) grok.require('zope2.View') grok.name('ajax-reference') def update(self): form = self.request.form instance = 0 formulario = form.get('form', '0') field = form.get('field', '') self.name_field = field value = form.get('value', '') self.formulario = formulario self.campos = ModelsFormFields().get_Fields_ByIdForm(int(formulario)) campo_busca = ModelsFormValues().store.find( ModelsFormValues, ModelsFormValues.fields == unicode(field), ModelsFormValues.forms_id == int(formulario),
from plone.formwidget.recaptcha.widget import ReCaptchaFieldWidget from Products.CMFPlone.utils import safe_unicode from Products.statusmessages.interfaces import IStatusMessage from Products.CMFCore.utils import getToolByName from Products.CMFPlone import PloneMessageFactory as _ from Products.CMFPlone.interfaces import IPloneSiteRoot from genweb.alternatheme.browser.interfaces import IGenwebTheme from genweb.core.utils import genweb_config from zope.component import getMultiAdapter grok.templatedir("views_templates") MESSAGE_TEMPLATE = u"""\ Heu rebut aquest correu perquè en/na %(name)s (%(from_address)s) ha enviat \ comentaris sobre l'espai Genweb que administreu a \ %(genweb)s El missatge és: %(message)s -- %(from_name)s """
from zope.interface import Interface from zope.schema.vocabulary import SimpleTerm from five import grok from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from plone.registry.interfaces import IRegistry #from plone.app.layout.navigation.navtree import buildFolderTree from Products.CMFCore.utils import getToolByName from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from collective.cover.controlpanel import ICoverSettings grok.templatedir("screenlets_templates") class TestContent(grok.View): """ test screenlet for selecting """ grok.context(Interface) grok.name('test-content-screenlet') grok.require('zope2.View') grok.template('test_content_screenlet') class SelectContentScreenlet(grok.View): """ screenlet for selecting
from datetime import datetime from zope.component import getUtility from five import grok from plone.directives import dexterity from openmultimedia.contenttypes.content.gallery import IGallery from collective.nitf.browser import View as NITFView from collective.prettydate.interfaces import IPrettyDate grok.templatedir('gallery_templates') class View(NITFView): """ Default view looks like a News Item. """ grok.context(IGallery) grok.name('view') grok.require('zope2.View') grok.template('gallery') def get_media(self): """ Return a list of object brains inside the NITF object. """ media_types = ['Image'] return self._get_brains(media_types) def get_description(self, obj): if obj.Description():
from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from Products.Five.browser import BrowserView from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile from zope.component import getMultiAdapter from zope.component import getUtility from zope.component import queryUtility from zope.interface import Interface from zope.schema.interfaces import IVocabularyFactory from zope.schema.vocabulary import SimpleTerm from plone.batching import Batch import json VOCAB_ID = u"plone.app.vocabularies.ReallyUserFriendlyTypes" grok.templatedir("contentchooser_templates") # XXX: what's the purpose of this view? # why is here if it's intendes for tests? # can we get rid of it? class TestContent(grok.View): """ test contentchooser for selecting """ grok.context(Interface) grok.name("test-content-contentchooser") grok.require("zope2.View") grok.template("test_content_contentchooser")
import math from zope.interface.interfaces import IMethod #from zope import schema from five import grok from UNEP.cartagenareportingtool.interface import ICountryReport from Products.CMFCore.interfaces import ISiteRoot from plone import api #from plone.z3cform import layout #from plone.directives import form, dexterity #from plone.app.registry.browser.controlpanel import RegistryEditForm #from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper # had to explicitly define the location of the template directory grok.templatedir('controlpanel_templates') # note the use of grok.View (in contrast to dexterity.DisplayForm) # grok.View does not try to "inspect" the context and return # custom widgets, which would be a problem with a context of ISiteRoot class ControlPanelView(grok.View): """ View for controlpanel """ grok.name("cartagenareportingtool-controlpanel") grok.context(ISiteRoot) def get_country_report(self,user):
from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from Products.Five.browser import BrowserView from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile from zope.component import getMultiAdapter from zope.component import getUtility from zope.component import queryUtility from zope.interface import Interface from zope.schema.interfaces import IVocabularyFactory from zope.schema.vocabulary import SimpleTerm from plone.batching import Batch import json VOCAB_ID = u'plone.app.vocabularies.ReallyUserFriendlyTypes' grok.templatedir("contentchooser_templates") # XXX: what's the purpose of this view? # why is here if it's intendes for tests? # can we get rid of it? class TestContent(grok.View): """ test contentchooser for selecting """ grok.context(Interface) grok.name('test-content-contentchooser') grok.require('zope2.View') grok.template('test_content_contentchooser')
from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from Products.CMFPlone.PloneBatch import Batch from Products.CMFPlone.utils import safe_unicode from Products.Five.browser import BrowserView from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile from zope.component import getUtility from zope.component import queryUtility from zope.interface import Interface from zope.schema.interfaces import IVocabularyFactory from zope.schema.vocabulary import SimpleTerm import json VOCAB_ID = u'plone.app.vocabularies.ReallyUserFriendlyTypes' grok.templatedir('contentchooser_templates') ITEMS_BY_REQUEST = 20 # XXX: what's the purpose of this view? # why is here if it's intendes for tests? # can we get rid of it? class TestContent(grok.View): """ test contentchooser for selecting """ grok.context(Interface) grok.name('test-content-contentchooser') grok.require('zope2.View')
from plone.app.z3cform.wysiwyg import WysiwygFieldWidget from plone.dexterity.interfaces import IDexterityFTI from plone.directives import dexterity from plone.directives import form from plone.indexer import indexer from plone.namedfile import field as filefield from plonetheme.nuplone.skin.interfaces import NuPloneSkin from plonetheme.nuplone.z3cform.directives import depends from zope import schema from zope.component import getMultiAdapter from zope.component import getUtility from zope.interface import implements from zope.interface import Interface import sys grok.templatedir("templates") class IModule(form.Schema, IRichDescription, IBasic): """Survey Module. A module is (hierarchical) grouping in a survey. """ description = HtmlText( title=_("label_module_description", u"Description"), description=_("help_module_description", default=u"Include any relevant information that may be " u"helpful for the end-user."), required=False) form.widget(description=WysiwygFieldWidget) form.order_after(description="title")
# -*- coding: utf-8 -*- from five import grok from gomobiletheme.basic import viewlets as gomobileviewlets from plone.app.layout.viewlets.common import ViewletBase from zope.interface import Interface from osha.campaigntoolkit.browser.interfaces import IMobileCampaignToolkitLayer grok.templatedir("templates_mobile") class GoogletranslateViewlet(ViewletBase): pass class GotocorporateViewlet(ViewletBase): pass # Mobile viewlets class AdditionalHead(gomobileviewlets.AdditionalHead): grok.template('additionalhead') grok.layer(IMobileCampaignToolkitLayer) grok.context(Interface) grok.viewletmanager(gomobileviewlets.MainViewletManager) class Logo(gomobileviewlets.Logo): grok.layer(IMobileCampaignToolkitLayer)
from zope.component import getMultiAdapter import copy import zipfile try: from cStringIO import StringIO except ImportError: from io import BytesIO as StringIO import time import os from Products.CMFDefault.utils import checkEmailAddress from Products.CMFDefault.exceptions import EmailAddressInvalid from email.Header import Header from plone import api grok.templatedir('templates') class send_email_consultant_view(grok.View): grok.context(IContentish) grok.require('zope2.View') grok.name('send-email-files') def js(self): path = '/'.join(self.context.getPhysicalPath())+'/consultant_cv_recipients' recipients = self.context.unrestrictedTraverse(path).__call__() config = { 'theme': 'facebook', 'tokenDelimiter': '\n', 'preventDuplicates': True,
def setTitle(self, value): return class INameFromMiembroNames(INameFromTitle): def title(): """Return a processed title""" class NameFromMiembroNames(object): implements(INameFromMiembroNames) def __init__(self, context): self.context = context @property def title(self): return self.context.nombres + " " + self.context.apellidos grok.templatedir("miembro_templates") class View(grok.View): """Clase vista para el esquema Miembro. """ grok.context(IMiembro) grok.require("zope2.View") grok.template("view")
from plone.dexterity.interfaces import IDexterityFTI from plone.dexterity.utils import addContentToContainer from plone.memoize import instance from Products.statusmessages.interfaces import IStatusMessage from collective.deformwidgets.dynatree import MultiSelectDynatreeWidget, \ DynatreeWidgetContentBrowser from zope.component import getUtility, createObject from zope.event import notify from zope.lifecycleevent import ObjectCreatedEvent import colander import deform import imsvdex from pkg_resources import resource_filename from five.grok import PageTemplate grok.templatedir('deform_templates') def getVdex(context, vocab): stream = str(context.portal_vocabularies[vocab].getRawVdex().data) manager = imsvdex.vdex.VDEXManager(stream) return MultiSelectDynatreeWidget(vocabulary=manager) def richtextwidget(context): widget = deform.widget.RichTextWidget() widget.strict_loading_mode = 'true' CUSTOM_WIDGETS = {'sectors_usage_areas': lambda context: \ getVdex(context, 'master_category'),
from Products.Silva.mail import sendmail from five import grok from silva.core.interfaces import IContainer from silva.core.views import views as silvaviews from silva.translations import translate as _ from z3c.schema.email import RFC822MailAddress from zeam.form import silva as silvaforms from zope import interface, schema from zope.traversing.browser import absoluteURL grok.templatedir('templates_silvacmsorg') TEMPLATE = u""" You have a new cloud request! From: {name} Company: {company_name} Subdomain: {subdomain_name} Email: {email} Telephone: {telephone} {comment} """ class InvalidDomain(Exception): def __init__(self, msg): self.msg = msg
""" For more information see * http://collective-docs.readthedocs.org/en/latest/views/viewlets.html """ # Zope imports from zope.interface import Interface from zope.component import getMultiAdapter from five import grok # Plone imports from plone.app.layout.viewlets.interfaces import IPortalFooter # Local imports from interfaces import IAddonSpecific grok.templatedir("browser") grok.layer(IAddonSpecific) # By default, set context to zope.interface.Interface # which matches all the content items. # You can register viewlets to be content item type specific # by overriding grok.context() on class body level grok.context(Interface)
from zope.interface import Interface from zope.security import checkPermission from z3c.caching.purge import Purge from plone.uuid.interfaces import IUUID from plone.app.uuid.utils import uuidToObject from Products.CMFCore.utils import getToolByName from Products.CMFCore.WorkflowCore import WorkflowException from collective.nitf.content import INITF from telesur.theme.interfaces import ITelesurLayer from telesur.theme import config grok.templatedir("covers") class CoversView(grok.View): """ Manage covers selection in home page """ grok.context(Interface) grok.name('covers-view') grok.layer(ITelesurLayer) grok.require('cmf.ModifyPortalContent') def __init__(self, context, request): super(CoversView, self).__init__(context, request) purge = False layout_id = '' if 'layout_id' in self.request:
# -*- coding: utf-8 -*- """A Folder view that lists Todo Items.""" from five import grok from Products.ATContentTypes.interface import IATFolder # Search for templates in the current directory. # Hopefully this line won't be needed in the future as I hope that we can tell # grok to look in the current dir by default. grok.templatedir(".") class Todo(grok.View): """A BrowserView to display the Todo listing on a Folder.""" grok.context(IATFolder) # type of object on which this View is available grok.require("zope2.View") # what permission is needed for access
) direcci_n_f_sica = schema.TextLine( title = u"direccion fisica", description = u"ubicacion de habitacion", required = False, ) direccion_electronica = schema.TextLine( title = u"correo", description = u"correo de los miembros", required = False, ) twitter = schema.TextLine( title = u"Telefono", description = u"telefono de contacto", required = False, ) grok.templatedir('miembro_templates') class View(grok.View): """ registrando una vista basada en grok para conectarse al esquema concejo comunal. """ grok.context(Imiembro) grok.require("zope2.View") grok.template("view")
description = schema.Text( title=_(u'label_detailed_question', default=u'Detailed Question'), description=_(u'desc_detailed_question', default=u'More details on the question, if not evident from the title.'), required=False, ) answer = RichText( title=_(u'label_answer', default=u'Answer'), description=_(u"desc_answer", default=u"Meaningful sentences that explains the answer."), allowed_mime_types=('text/html', 'text/plain',), default_mime_type='text/html', output_mime_type='text/x-html-safe', required=True, ) class FaqEntryDx(Item): """FaqEntryDx class """ implements(IFaqEntryDx) grok.context(IFaqEntryDx) grok.templatedir('browser/templates') class View(grok.View): """IFaqEntryDx View """ grok.require('zope2.View') grok.name('view') grok.template('faq-entry')
from Products.Five import BrowserView from Products.CMFCore.utils import getToolByName from Acquisition import aq_inner from zope.component import getMultiAdapter from msd.landingpage import HAS_PLONE4 from msd.landingpage import landingpageMessageFactory as _ from msd.landingpage.interfaces import ILandingPage, IBigBlock, ILayoutView, ILittleBlock from msd.landingpage.layout import Layout, Block from msd.landingpage.browser.blocks import BaseBlockView from msd.landingpage.utilities import getViewForLittleBlock grok.templatedir("block_templates") class BigBlock(grok.View): """ """ grok.context(IBigBlock) def setBlockIndex(self, index): """ Know which block we are. """ self.number = index def getBlockIndex(self): return self.number
from ZODB.POSException import POSKeyError from zope.interface import Interface from five import grok from Products.CMFCore.interfaces import ISiteRoot from Products.CMFCore.utils import getToolByName from Products.CMFPlone.utils import base_hasattr from zope.component import getMultiAdapter from plone.memoize.view import memoize # Local imports from eelplone.policy.interfaces import IThemeSpecific from eelplone.policy import messageFactory as _ grok.templatedir("templates_sharing") grok.layer(IThemeSpecific) from plone.indexer.decorator import indexer @indexer(Interface) def localRoles(object, **kw): return list(object.get_local_roles()) grok.global_adapter(localRoles, name="localRoles") # index connected in configure.zcml # <adapter name="localRoles" factory=".changesharing.localRoles" /> class ChangeSharing(grok.View): """ Temp page for testing the LDAP integration.
#-*- coding:utf-8 -*- from zope.interface import Interface from five import grok from plone.app.layout.viewlets.interfaces import IPortalHeader, IAboveContentTitle, IAboveContentBody, IBelowContentBody #IAboveContentTitle, IBelowContentBody, IAboveContentBody, IBelowContentBody #設定viewlet介面、pt檔目錄 grok.context(Interface) grok.templatedir('viewlet_templates') class MingtakHomeSlider(grok.Viewlet): grok.viewletmanager(IPortalHeader) #下列可再新增viewlet, 可用的interface可查詢 plone.app.layout.viewlets.interfaces class GoogleAdAboveDocumentBody(grok.Viewlet): grok.viewletmanager(IAboveContentBody) class GoogleAdBelowDocumentBody(grok.Viewlet): grok.viewletmanager(IBelowContentBody)
from genweb.core.interfaces import IHomePage from genweb.core.utils import genweb_config, pref_lang from genweb.alternatheme.browser.interfaces import IGenwebTheme, IHomePageView from genweb.portlets.browser.manager import IScreenTypeSpanStorage from genweb.alternatheme.portlets.fullnews import Renderer from Products.CMFCore.interfaces import IFolderish from plone.memoize.view import memoize import pkg_resources import json import scss grok.templatedir("views_templates") MESSAGE_TEMPLATE = u"""\ L'usuari %(user_name)s ha creat un nou esdeveniment en l'agenda del GenWeb \ "%(titolGW)s": Títol: "%(titleEvent)s" Data: %(dayEvent)s-%(monthEvent)s-%(yearEvent)s Hora: %(hourEvent)s i que podreu trobar al següent enllaç: %(linkEvent)s Per a la seva publicació a l'Agenda general de la UPC. """
from zope.interface import Interface from zope.schema.vocabulary import SimpleTerm from five import grok from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from plone.registry.interfaces import IRegistry from plone.app.layout.navigation.navtree import buildFolderTree from Products.CMFCore.utils import getToolByName from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from collective.cover.controlpanel import ICoverSettings grok.templatedir("screenlets_templates") class TestContent(grok.View): """ test screenlet for selecting """ grok.context(Interface) grok.name('test-content-screenlet') grok.require('zope2.View') grok.template('test_content_screenlet') class SelectContentScreenlet(grok.View): """ screenlet for selecting
# coding=utf-8 from five import grok from zope.interface import Interface grok.templatedir('macros_templates') class VagasAbertasView(grok.View): grok.context(Interface) grok.require('zope2.View') grok.name('view_vagas_abertas') def get_content(self): aq_parent = self.context.aq_parent if 'vagas-em-aberto' in aq_parent.keys(): return aq_parent['vagas-em-aberto'] return None def list_itens(self): context = self.get_content() if context: return context.getDadosContent() return [] def getFields(self): from vindula.contentcore.models.fields import ModelsFormFields context = self.get_content() id_form = int(context.forms_id)
from five import grok from zope.interface import Interface from collective.contact.core.browser.utils import get_ttw_fields from collective.contact.core.browser import TEMPLATES_DIR grok.templatedir(TEMPLATES_DIR) class TTWFields(grok.View): """Show fields that were added TTW """ grok.name('ttwfields') grok.template('ttwfields') grok.context(Interface) def update(self): contact_view = self.context.unrestrictedTraverse('view') contact_view.update() self.widgets = contact_view.widgets ttw_fields = get_ttw_fields(self.context) self.ttw_fields = [field for field in ttw_fields if field in self.widgets.keys()]
required = True, ) correo = schema.TextLine( description = u'DESCRIPCIÓN DE CORREO ELECTRÓNICO', title = u'correo', required = True, ) telefono = schema.TextLine( description = u'DESCRIPCIÓN DE TELÉFONO', title = u'telefono', required = False, ) grok.templatedir('concejo_comunal_templates') class View(grok.View): """Clase vista para el esquema consejo_comunal """ grok.context(IConcejoComunal) grok.require('zope2.View') grok.template("view") def miembros_concejo_comunal(self): """Retorna un resultado de busqueda en el catalogo de los tipos miembros de un concejo comunal """ context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog')
# -*- coding: utf-8 -*- from five import grok from zope.component import getUtility, getMultiAdapter from plone.registry.interfaces import IRegistry from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName from vindula.streaming.content.interfaces import IVindulaStreaming from vindula.streaming.controlpanel import IStreamingSettings from vindula.streaming.settings import Settings from vindula.streaming.utils import getPortal grok.templatedir("templates") class StreamingView(grok.View): grok.context(IVindulaStreaming) grok.name("view") grok.require("zope2.View") enabled = True def update(self): self.registry = getUtility(IRegistry) self.settings = Settings(self.context) self.global_settings = self.registry.forInterface(IStreamingSettings) self.site = getPortal(self.context)
from Products.CMFPlone.browser.navtree import SitemapNavtreeStrategy from Products.Five.browser import BrowserView from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile from zope.component import getUtility from zope.component import queryUtility from zope.interface import Interface from zope.schema.interfaces import IVocabularyFactory from zope.schema.vocabulary import SimpleTerm from Products.CMFPlone.PloneBatch import Batch from Products.CMFPlone.utils import safe_unicode import json VOCAB_ID = u'plone.app.vocabularies.ReallyUserFriendlyTypes' grok.templatedir('contentchooser_templates') # XXX: what's the purpose of this view? # why is here if it's intendes for tests? # can we get rid of it? class TestContent(grok.View): """ test contentchooser for selecting """ grok.context(Interface) grok.name('test-content-contentchooser') grok.require('zope2.View') grok.template('test_content_contentchooser')