예제 #1
0
class CalendarBreadCrumb(icemac.addressbook.browser.breadcrumb.Breadcrumb):
    """Breadcrumb for the calendar."""

    grok.adapts(icemac.ab.calendar.interfaces.ICalendar,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Calendar')
예제 #2
0
class Home(grok.MultiAdapter):
    grok.adapts(Cave, Fireplace)
    grok.implements(IHome)

    def __init__(self, cave, fireplace):
        self.cave = cave
        self.fireplace = fireplace
예제 #3
0
파일: widget.py 프로젝트: louika/vivi
class DisplayWidget(grok.MultiAdapter,
                    zope.formlib.itemswidgets.ItemsWidgetBase):

    grok.adapts(zope.schema.interfaces.ITuple,
                zeit.wochenmarkt.interfaces.IRecipeCategoriesSource,
                zeit.cms.browser.interfaces.ICMSLayer)
    grok.provides(zope.formlib.interfaces.IDisplayWidget)

    template = zope.app.pagetemplate.ViewPageTemplateFile(
        'display-recipe-categories.pt')

    def __init__(self, field, source, request):
        super(DisplayWidget, self).__init__(
            field,
            zope.formlib.source.IterableSourceVocabulary(source,
                                                         request), request)

    def __call__(self):
        return self.template()

    def items(self):
        items = []
        RecipeCategory = namedtuple('RecipeCategory', ['text'])
        for item in self._getFormValue():
            text = self.textForValue(self.vocabulary.getTerm(item))
            items.append(RecipeCategory(text))
        return items
예제 #4
0
class ArchiveBreadCrumb(icemac.addressbook.browser.breadcrumb.Breadcrumb):
    """Breadcrumb for the archive."""

    grok.adapts(icemac.addressbook.interfaces.IArchive,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Archive')
예제 #5
0
class HtmlEntryPoint(component.MultiAdapter):
    """ generate a index html. This html site will than
        load extjs framework with css and run the
        application.
    """
    component.name('index')
    component.adapts(IApplicationContext, IRequest)

    tmpl = loader.load('index.html')

    def __init__(self, context, request):
        self.context = context
        self.request = request

    def __call__(self):
        resources = fanstatic.get_needed()
        stream = self.tmpl.generate(resources=Markup(resources.render()),
                                    title=self.context.title,
                                    launcher=Markup(self.launcher()))
        self.request.response.mimetype = 'text/html'
        self.request.response.write(stream.render('html', doctype='html'))

    def launcher(self):
        """ create a js script that launch the application.
        """

        js = """
            Ext.onReady(function() {
                Ext.application('%s');
            });
        """
        return js % self.context.application
예제 #6
0
class RootBreadcrumb(Breadcrumb):
    """Breadcrumb for the root folder: Hide it."""

    grok.adapts(zope.site.interfaces.IRootFolder,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    show = False
예제 #7
0
class ActionWidget(ActionWidget):

    grok.adapts(interfaces.IAction, interfaces.IFieldExtractionValueSetting,
                IThemeSpecific)

    def htmlClass(self):
        return 'btn btn-primary'
예제 #8
0
class VolumeListRepresentation(grok.MultiAdapter,
                               zeit.cms.browser.listing.BaseListRepresentation
                               ):

    grok.adapts(zeit.content.volume.interfaces.IVolume,
                zope.publisher.interfaces.IPublicationRequest)

    ressort = page = author = u''

    @property
    def volume(self):
        return self.context.volume

    @property
    def year(self):
        return self.context.year

    @property
    def title(self):
        volume = self.context
        return '%s %s/%s' % (volume.product.title, volume.year, volume.volume)

    @property
    def searchableText(self):
        return self.title
예제 #9
0
파일: fixture.py 프로젝트: louika/vivi
class Container(zeit.edit.container.TypeOnAttributeContainer,
                grok.MultiAdapter):

    grok.provides(IContainer)
    grok.adapts(IContainer, gocept.lxml.interfaces.IObjectified)
    type = 'container'
    grok.name(type)
예제 #10
0
class NotFoundPageletBreadcrumb(Breadcrumb):
    """Do not render a breadcrumb for the not found pagelet."""

    grok.adapts(z3c.layer.pagelet.interfaces.INotFoundPagelet,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    show = False
예제 #11
0
class DefaultBreadcrumb(Breadcrumb):
    """Most unspecific breadcrumb implementation. Used as fall back."""

    grok.adapts(zope.interface.Interface,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    target_url = None
예제 #12
0
class PreferenceGroupBreadcrumb(PreferenceCategoryBreadcrumb):
    """Breadcrumb for /++preferences++/ --> hide."""

    grok.adapts(zope.preference.interfaces.IPreferenceGroup,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    show = False
예제 #13
0
class CollectionTextLine(grok.MultiAdapter):

    grok.adapts(
        zope.schema.interfaces.ICollection,
        zope.schema.interfaces.ITextLine,
        zeit.retresco.interfaces.IElasticDAVProperties)
    grok.implements(zeit.cms.content.interfaces.IDAVPropertyConverter)

    # Taken from zeit.cms.content.dav.CollectionTextLineProperty
    def __init__(self, context, value_type, content):
        self.context = context
        self.value_type = value_type
        self.content = content
        self._type = context._type
        if isinstance(self._type, tuple):
            # XXX this is way hacky
            self._type = self._type[0]

    def fromProperty(self, value):
        typ = zope.component.getMultiAdapter(
            (self.value_type, self.content),
            zeit.cms.content.interfaces.IDAVPropertyConverter)
        return self._type([typ.fromProperty(x) for x in value])

    def toProperty(self, value):
        typ = zope.component.getMultiAdapter(
            (self.value_type, self.content),
            zeit.cms.content.interfaces.IDAVPropertyConverter)
        return [typ.toProperty(x) for x in value]
예제 #14
0
class CaptchaFieldWidget(SchemaFieldWidget):
    grok.adapts(CaptchaSchemaField, Interface, Interface)
    template = get_template('captcha_templates/captchafieldwidget.cpt', __file__)

    def image_tag(self):
        lang = 'de'
        captcha = getUtility(IRecaptcha)
        return captcha.display(lang)
예제 #15
0
class NotFoundBreadcrumb(Breadcrumb):
    """Breadcrumb to render a title for the NotFound exception."""

    grok.adapts(zope.publisher.interfaces.INotFound,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    target_url = None
    title = _('Not Found')
예제 #16
0
class SystemErrorViewBreadcrumb(Breadcrumb):
    """Breadcrumb to render a title for system error views."""

    grok.adapts(zope.browser.interfaces.ISystemErrorView,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    target_url = None
    title = 'SystemError'
예제 #17
0
class EntitiesBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for the entities."""

    grok.adapts(icemac.addressbook.interfaces.IEntities,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Entities')
예제 #18
0
class ImporterBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for the importer."""

    grok.adapts(icemac.ab.importer.interfaces.IImporter,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Importer')
예제 #19
0
class KeywordContainerBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for keywords container."""

    grok.adapts(icemac.addressbook.interfaces.IKeywords,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Keywords')
예제 #20
0
class IdFieldTransformer(GenericFieldTransfomer):
    adapts(IModel, schema.interfaces.IId)

    def set(self, value):
        if value is None:
            self.field.set(self.model, None)
        else:
            self.field.set(self.model, int(value))
예제 #21
0
파일: reference.py 프로젝트: louika/vivi
class RelatedReference(zeit.cms.content.reference.Reference):

    grok.adapts(zeit.content.article.edit.interfaces.IAuthor,
                gocept.lxml.interfaces.IObjectified)
    grok.provides(zeit.cms.content.interfaces.IReference)
    grok.name('related')

    biography = zeit.cms.content.property.ObjectPathProperty('.biography')
예제 #22
0
class DocumentsBreadCrumb(icemac.addressbook.browser.breadcrumb.Breadcrumb):
    """Breadcrumb for the documents."""

    grok.adapts(
        icemac.ab.document.model.RootFolder,
        icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Documents')
예제 #23
0
class CalendarMasterDataBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for calendar master data."""

    grok.adapts(MasterData,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Calendar')
예제 #24
0
class RecurringEventsBreadCrumb(
        icemac.ab.calendar.masterdata.breadcrumb.CalendarMDChildBreadcrumb):
    """Breadcrumb for recurring events."""

    grok.adapts(icemac.ab.calendar.interfaces.IRecurringEvents,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Recurring Events')
예제 #25
0
class RecurringEventsBreadCrumb(
        icemac.ab.calendar.masterdata.breadcrumb.CalendarMDChildBreadcrumb):
    """Breadcrumb for event views."""

    grok.adapts(icemac.ab.calendar.eventview.interfaces.IEventViewContainer,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Event views')
예제 #26
0
파일: header.py 프로젝트: louika/vivi
class HeaderArea(zeit.content.article.edit.container.TypeOnTagContainer,
                 grok.MultiAdapter):

    grok.provides(zeit.content.article.edit.interfaces.IHeaderArea)
    grok.adapts(zeit.content.article.interfaces.IArticle,
                gocept.lxml.interfaces.IObjectified)

    __name__ = HEADER_NAME

    def insert(self, position, item):
        self.clear()
        return super(HeaderArea, self).insert(position, item)

    def add(self, item):
        self.clear()
        return super(HeaderArea, self).add(item)

    def clear(self):
        for key in list(self.keys()):
            self._delete(key)

    def _get_keys(self, xml_node):
        result = []
        for child in xml_node.iterchildren():
            result.append(self._set_default_key(child))
        return result

    def values(self):
        # We re-implement values() so it works without keys(), since those are
        # not present in the repository.
        result = []
        for child in self.xml.iterchildren():
            element = self._get_element_for_node(child)
            if element is None:
                element = self._get_element_for_node(
                    child, zeit.edit.block.UnknownBlock.type)
            result.append(element)
        return result

    @property
    def module(self):
        values = self.values()
        if values:
            return values[0]
        # XXX Kludgy emulation of things that should be in the header, but
        # aren't yet.
        body = zeit.content.article.edit.interfaces.IEditableBody(
            self.__parent__)
        try:
            block = body[0]
        except KeyError:
            return None
        if ((zeit.content.article.edit.interfaces.IVideo.providedBy(block)
             and 'header' in (block.layout or '')) or
            (zeit.content.article.edit.interfaces.IImage.providedBy(block)
             and block.display_mode != 'float')):
            return block
        return None
예제 #27
0
class PrincipalFolderBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for the principal folder."""

    grok.adapts(
        zope.pluggableauth.plugins.principalfolder.IInternalPrincipalContainer,
        icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Users')
예제 #28
0
class Home3(grok.MultiAdapter):
    grok.adapts(Cave, Fireplace)
    grok.implements(IHome, IFireplace)
    grok.provides(IHome)
    grok.name('home3')

    def __init__(self, cave, fireplace):
        self.cave = cave
        self.fireplace = fireplace
예제 #29
0
class AddressbookEditBreadCrumb(
        icemac.addressbook.browser.breadcrumb.MasterdataChildBreadcrumb):
    """Breadcrumb for the edit view of the address book."""

    grok.adapts(EditForm,
                icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _(u'Edit address book data')
    target_url = None
예제 #30
0
class CategoriesBreadCrumb(
        icemac.ab.calendar.masterdata.breadcrumb.CalendarMDChildBreadcrumb):
    """Breadcrumb for categories."""

    grok.adapts(
        icemac.ab.calendar.interfaces.ICategories,
        icemac.addressbook.browser.interfaces.IAddressBookLayer)

    title = _('Event categories')