Esempio n. 1
0
class Home(grok.MultiAdapter):
    grok.adapts(Cave, Fireplace)
    grok.implements(IHome)

    def __init__(self, cave, fireplace):
        self.cave = cave
        self.fireplace = fireplace
Esempio n. 2
0
class OptionalChoiceFieldWidget(choice.ChoiceFieldWidget):
    grok.adapts(OptionalChoiceField, Interface, Interface)

    def update(self):
        super(OptionalChoiceFieldWidget, self).update()
        optchoice.need()

    @property
    def selectValue(self):
        value = self.inputValue()
        if isinstance(value, list):
            return value[0]
        return value

    @property
    def textValue(self):
        value = self.inputValue()
        if isinstance(value, list):
            value = value[1]
        try:
            self.choices().getTermByToken(value)
            return ''
        except:
            return value

    def valueToUnicode(self, value):
        try:
            term = self.choices().getTerm(value)
            return term.token
        except LookupError:
            return value
Esempio n. 3
0
class RadioFieldWidget(zeam.form.ztk.widgets.choice.RadioFieldWidget):
    grok.adapts(zeam.form.ztk.widgets.choice.ChoiceField,
                zope.interface.Interface, zope.interface.Interface,
                ISiguvTheme)

    def htmlClass(self):
        return "form-check-input"
Esempio n. 4
0
class Home2(grok.MultiAdapter):
    grok.adapts(Cave, Fireplace)
    grok.name('home2')

    def __init__(self, cave, fireplace):
        self.cave = cave
        self.fireplace = fireplace
Esempio n. 5
0
class AdHocDocumentInfo(grok.MultiAdapter):
    grok.adapts(IPrincipal, IHTTPRequest)
    grok.implements(IAdHocDocumentInfo)
    grok.baseclass()

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

    def getProductFolder(self):
        base = grok.getSite()['dokumente']
        folder_name = time.strftime('%Y_%m_%d', time.localtime())
        if not folder_name in base.keys():
            base[folder_name] = AdHocProductFolder()
        return base[folder_name]

    def getAddLink(self, id, docart):
        obj = self.getObject(id)
        if obj:
            return grok.url(self.request, obj)
        datefolder = self.getProductFolder()
        data = {'form.field.docid': id}
        addlink = "@@%s" % (
            docart.replace(' ', '_'))
        return grok.url(self.request, datefolder, addlink, data=data)

    def getObject(self, id):
        util = getUtility(IAdHocIdReference)
        return util.queryObject(id)
Esempio n. 6
0
class HomeFolderUrl_deprecated(grok.MultiAdapter):
    grok.adapts(IPrincipal, IBrowserRequest)

    def __init__(self, context, request):
        adapter = IGetHomeFolderUrl(request)
        self.getURL = adapter.getURL
        self.getAddURL = adapter.getAddURL
Esempio n. 7
0
class MultiChoiceFieldWidget(
        zeam.form.ztk.widgets.collection.MultiChoiceFieldWidget):
    grok.adapts(zeam.form.ztk.widgets.collection.SetField,
                zeam.form.ztk.widgets.collection.ChoiceField,
                zope.interface.Interface, ISiguvTheme)

    def htmlClass(self):
        return "form-check-input"
Esempio n. 8
0
class HiddenTextAdapter(grok.MultiAdapter):
    '''  Define an adapter for our schema field which selects our hidden text widget
    '''
    grok.adapts(HiddenText, IBrowserRequest)
    grok.implements(IInputWidget)

    def __new__(self, field, request):
        return HiddenTextWidget(field, request)
Esempio n. 9
0
class CalculatorContentProvider(grok.MultiAdapter)
    grok.adapts(Calculator, IBrowserRequest, IBrowserView)
    grok.implements(IContentProvider)

    def __init__(self, context, request, view):
        self.context = context
        self.request = request
        self.view = view
Esempio n. 10
0
class ActionWidget(ActionWidget):
    grok.adapts(interfaces.IAction, interfaces.IFieldExtractionValueSetting,
                ITBSkin)

    icon = None

    def htmlClass(self):
        return 'btn ' + ' '.join(self.defaultHtmlClass)
Esempio n. 11
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
Esempio n. 12
0
class SingleAdapter(grok.Adapter):
    grok.context(Calculator)
    grok.adapts(Calculator)  # generally allowed, but not in this case, because there's already grok.context
    grok.implements(ISomething)  # if this is not specified, app breaks
    grok.provides(ISomething)  # if adapter implements more than one interface
    grok.name('')  # this is actually the default

    def something(self):
        """self.context is automatically provided"""
        return self.context.foo
Esempio n. 13
0
class PluginConfigurationNamespace(grok.MultiAdapter):
    grok.name('plugins')
    grok.provides(ITraversable)
    grok.adapts(Interface, Interface)

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

    def traverse(self, name, ignore):
        return get_plugin_configuration(request=self.request, name=name)
Esempio n. 14
0
class UVCSitePrincipalFactory(factories.AuthenticatedPrincipalFactory,
                              grok.MultiAdapter):
    grok.adapts(interfaces.IPrincipalInfo, IDefaultBrowserLayer)

    def __call__(self, authentication):
        principal = Principal(authentication.prefix + self.info.id,
                              self.info.description)
        grok.notify(
            interfaces.AuthenticatedPrincipalCreated(authentication, principal,
                                                     self.info, self.request))
        return principal
Esempio n. 15
0
class RedirectAbsoluteUrl(grok.MultiAdapter):
    grok.adapts(asm.cms.interfaces.IRedirect,
                asm.cmsui.interfaces.IRetailBaseSkin)
    grok.implements(zope.traversing.browser.interfaces.IAbsoluteURL)

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

    def __call__(self):
        return self.context.target_url
Esempio n. 16
0
class plain(grok.MultiAdapter):
    grok.name('text/plain')
    grok.provides(zope.interface.Interface)
    grok.adapts(IPlugin, IDefaultBrowserLayer, Result)

    def __init__(self, plugin, request, result):
        self.plugin = plugin
        self.request = request
        self.result = result

    def __call__(self):
        return u'<pre>%s</pre>' % self.result.value
Esempio n. 17
0
class CustomBatch(BatchProvider, grok.MultiAdapter):
    grok.adapts(Interface, IUVCSkin, ITable)
    grok.name('batch')

    def renderBatchLink(self, batch, cssClass=None):
        args = self.getQueryStringArgs()
        args[self.table.prefix + '-batchStart'] = batch.start
        args[self.table.prefix + '-batchSize'] = batch.size
        query = urlencode(sorted(args.items()))
        tableURL = absoluteURL(self.table, self.request)
        idx = batch.index + 1
        css = ' class="%s"' % cssClass
        cssClass = cssClass and css or u''
        return '<li %s><a href="%s?%s"%s>%s</a><li>' % (
            cssClass, tableURL, query, cssClass, idx)

    def render(self):
        self.update()
        res = []
        append = res.append
        idx = 0
        lastIdx = len(self.batchItems)
        for batch in self.batchItems:
            idx += 1
            # build css class
            cssClasses = []
            if batch and batch == self.batch:
                cssClasses.append('active')
            if idx == 1:
                cssClasses.append('first')
            if idx == lastIdx:
                cssClasses.append('last')

            if cssClasses:
                css = ' '.join(cssClasses)
            else:
                css = None

            # render spaces
            if batch is None:
                append(self.batchSpacer)
            elif idx == 1:
                # render first
                append(self.renderBatchLink(batch, css))
            elif batch == self.batch:
                # render current
                append(self.renderBatchLink(batch, css))
            elif idx == lastIdx:
                # render last
                append(self.renderBatchLink(batch, css))
            else:
                append(self.renderBatchLink(batch))
        return u'<ul class="pagination">%s</ul>' % (''.join(res))
Esempio n. 18
0
class JSON(grok.MultiAdapter):
    grok.name('application/json')
    grok.provides(zope.interface.Interface)
    grok.adapts(IPlugin, IDefaultBrowserLayer, Result)

    def __init__(self, plugin, request, result):
        self.plugin = plugin
        self.request = request
        self.result = result

    def __call__(self):
        return u'<pre>%s</pre>' % json.dumps(
            self.result.value, indent=4, sort_keys=True)
Esempio n. 19
0
class Service(grok.MultiAdapter):
    grok.baseclass()
    grok.adapts(IApplication, IHTTPRequest)
    grok.implements(IPublishTraverse, IService)
    grok.provides(IService)

    layer = None

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

    def publishTraverse(self, request, name):
        raise NotImplementedError("implement me")
Esempio n. 20
0
class ProductFolderValues(Values):
    """This Adapter returns IContent Objects
       form child folders
    """
    grok.adapts(uvcsite.content.interfaces.IProductFolder, None, Index)

    @property
    def values(self):
        results = []
        interaction = self.request.interaction
        for value in self.context.values():
            if interaction.checkPermission('uvc.ViewContent', value):
                results.append(value)
        return results
Esempio n. 21
0
class OptionalChoiceWidgetExtractor(WidgetExtractor):
    grok.adapts(OptionalChoiceField, Interface, Interface)

    def extract(self):
        value, error = super(OptionalChoiceWidgetExtractor, self).extract()
        value, input = value
        if input:
            return (input, error)
        if value is not NO_VALUE:
            choices = self.component.getChoices(self.form)
            try:
                value = choices.getTermByToken(value).value
            except LookupError:
                return (None, u'Invalid value')
        return (value, error)
Esempio n. 22
0
class ENMSHomeFolderTraverser(grok.MultiAdapter):
    grok.context(IHomeFolder)
    grok.name('enms')
    grok.provides(ITraversable)
    grok.adapts(IHomeFolder, Interface)

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

    def traverse(self, name, ignore):
        lister = ENMSLister(self.context, 'enms')
        if not name:
            return lister
        return lister.get(name)
Esempio n. 23
0
class HomeFolderValues(Values):
    """This Adapter returns IContent Objects form child folders.
    """
    grok.adapts(IHomeFolder, None, Index)

    @property
    def values(self):
        results = []
        interaction = self.request.interaction
        for productfolder in self.context.values():
            if interaction.checkPermission('uvc.ViewContent', productfolder):
                if not productfolder.__name__.startswith('__'):
                    for obj in productfolder.values():
                        if interaction.checkPermission('uvc.ViewContent', obj):
                            results.append(obj)
        return results
Esempio n. 24
0
class FileWidgetExtractor(WidgetExtractor):
    """A value extractor for a file widget (including image)
    """
    grok.adapts(FilesSchemaField, interfaces.IFormData, Interface)

    def extract(self):
        content = self.form.getContentData().getContent()
        existing = getattr(content, self.component._field.getName())
        value = self.request.form.get(self.identifier + '[]') or NO_VALUE
        if not isinstance(value, list):
            if value is NO_VALUE:
                value = []
            else:
                value = [value]
        existing.extend(
            [NamedFile(x.read(), filename=x.filename) for x in value])
        return (existing, None)
Esempio n. 25
0
class TemporaryInfoFactory(grok.MultiAdapter):
    grok.adapts(TemporaryInfo, IRequest)

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

    def __call__(self, authentication):
        principal = TemporaryPrincipal(authentication.prefix + self.info.id,
                                       self.info.title,
                                       self.info.description,
                                       document=self.info.document)
        grok.notify(
            interfaces.AuthenticatedPrincipalCreated(authentication, principal,
                                                     self.info, self.request))
        applySkin(self.request, ITemporarySkin)
        return principal
Esempio n. 26
0
class AdHocPrincipalFactory(factories.AuthenticatedPrincipalFactory,
                            grok.MultiAdapter):
    grok.adapts(interfaces.IPrincipalInfo, ITBSkinLayer)

    #grok.baseclass()

    def __call__(self, authentication):
        principal = super(AdHocPrincipalFactory, self).__call__(authentication)
        #principal = AdHocPrincipal(
        #    authentication.prefix + self.info.id, self.info.description
        #)
        #grok.notify(
        #    interfaces.AuthenticatedPrincipalCreated(
        #        authentication, principal, self.info, self.request
        #    )
        #)
        alsoProvides(self.request, IUKHAdHocLayer)
        return principal
Esempio n. 27
0
class ServicesNamespace(grok.MultiAdapter):
    grok.name('services')
    grok.provides(ITraversable)
    grok.adapts(uvcsite.IUVCSite, IHTTPRequest)

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

    def traverse(self, name, ignore):
        if not name:
            raise NotImplementedError('Please specify a service.')

        service = getMultiAdapter((self.context, self.request),
                                  IService,
                                  name=name)
        if service.layer is not None:
            applySkin(self.request, service.layer)
        return LocationProxy(service, self.context, "++services++%s" % name)
Esempio n. 28
0
class ServicesNamespace(grok.MultiAdapter):
    grok.name("services")
    grok.provides(ITraversable)
    grok.adapts(IApplication, IHTTPRequest)

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

    def traverse(self, name, ignore):
        if not name:
            raise NotImplementedError("Please specify a service.")

        service = queryMultiAdapter((self.context, self.request), IService, name=name)

        if service is None:
            raise LookupError("Unknown service : %s" % name)
        else:
            if service.layer is not None:
                applySkin(self.request, service.layer)
            return LocationProxy(service, self.context, "++services++%s" % name)
Esempio n. 29
0
class FilesWidget(SchemaFieldWidget):
    grok.adapts(FilesSchemaField, interfaces.IFormData, Interface)
    grok.template(str(INPUT))

    def prepareContentValue(self, value):
        if value is NO_VALUE or value is None:
            return {self.identifier: False}
        return {self.identifier: True}

    def update(self):
        filer_css.need()
        filer_js.need()

        #if not self.form.ignoreContent:
        ##    raise NotImplementedError("Files can't be represented.")

        SchemaFieldWidget.update(self)

    def getFiles(self):
        import json
        content = self.form.getContentData().getContent()
        if getattr(content, self.component._field.getName(), None):
            rc = [{
                'url':
                '%s/++download++%s' %
                (grok.url(self.request, content), fileobj.filename),
                'name':
                fileobj.filename,
                'size':
                fileobj.size,
                'type':
                fileobj.contentType
            } for fileobj in self.component._field.get(content)]
        else:
            rc = []
        print json.dumps(rc)
        return json.dumps(rc)
Esempio n. 30
0
class ProductRegistration(grok.MultiAdapter):
    grok.adapts(IPrincipal, IHTTPRequest)
    grok.baseclass()
    icon = None

    def __init__(self, principal, request):
        self.principal = principal
        self.request = request
        self.title = grok.title.bind().get(self)
        self.name = grok.name.bind().get(self)
        self.description = grok.description.bind().get(self)

    @property
    def folderURI(self):
        if not self.productfolder:
            return
        pfn = grok.name.bind(get_default=default_name).get(self.productfolder)
        return pfn.capitalize()

    @property
    def linkname(self):
        return self.title

    @property
    def rolename(self):
        return self.title

    @property
    def productfolder(self):
        pfolder = productfolder.bind().get(self)
        if pfolder:
            return resolve(pfolder)

    def invalidRole(self):
        my_roles = uvcsite.IMyRoles(self.principal).getAllRoles()
        if not self.folderURI in my_roles:
            return True
        return False

    def available(self):
        if self.invalidRole():
            return False
        return True

    def action(self):
        return "%s/%s/@@add" % (uvcsite.getHomeFolderUrl(
            self.request), self.folderURI)

    @property
    def inNav(self):
        return self.available()

    @property
    def asRole(self):
        return self.available()

    def createInProductFolder(self):
        homefolder = IHomeFolder(self.principal).homeFolder
        if not homefolder:
            utility = getUtility(IHomeFolderManager)
            utility.assignHomeFolder(uvcsite.IMasterUser(self.principal).id)
        if self.folderURI and not self.folderURI in homefolder.keys():
            pf = self.productfolder
            homefolder[self.folderURI] = pf()
            uvcsite.log('Add Productfolders %s to Homefolder: %s' %
                        (self.folderURI, self.principal.id),
                        severity=logging.DEBUG)