• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python interfaces.INameChooser类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中zope.app.container.interfaces.INameChooser的典型用法代码示例。如果您正苦于以下问题:Python INameChooser类的具体用法?Python INameChooser怎么用?Python INameChooser使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了INameChooser类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: new_user

def new_user(principal, event):
    """Initialise the dashboard for a new user
    """
    principal = IEduMember(principal)
    #defaults = IDefaultDashboard(principal, None)
    defaults = DefaultDashboard()
    if defaults is None:
        return
    
    userid = principal.getId()
    portlets = defaults()
    for name in ('plone.dashboard1', 'plone.dashboard2', 'plone.dashboard3', 'plone.dashboard4'):
        assignments = portlets.get(name)
        if assignments:
            column = queryUtility(IPortletManager, name=name)
            if column is not None:
                category = column.get(USER_CATEGORY, None)
                if category is not None:
                    manager = category.get(userid, None)
                    if manager is None:
                        manager = category[userid] = UserPortletAssignmentMapping()
                    chooser = INameChooser(manager)
            
                    for assignment in assignments:
                        manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:iservicesmx,项目名称:eduintelligent-LCMS,代码行数:25,代码来源:newdashboard.py


示例2: addObject

 def addObject(self,id_obs_value, what_is_that=None):
     try:
         flatten = getUtility(IQreatureUtility, name="Flatten")
         id_obs_value_list = [i for i in flatten(id_obs_value)]
         if len(id_obs_value_list) == 3:
             value = id_obs_value_list[2]
         elif len(id_obs_value_list) == 6:
             value = [id_obs_value_list[2],id_obs_value_list[5]]
         else:
             return -1
         answer_id = int(id_obs_value_list[0])
         ob = id_obs_value_list[1]
         quiz = removeSecurityProxy(self.context)
         sm = quiz.getSiteManager()
         answer = removeSecurityProxy(sm['intids'].getObject(int(answer_id)))
         notify(CachedObjectChangedEvent([answer]))
         TYPE_OBJECT_MAP = {'lead':AnswerLeads,'depend':AnswerDepends, 'value':AnswerValue}
         if type(value) == type([]):
             ob = TYPE_OBJECT_MAP[ob](int(value[0]),int(value[1]))
         elif ob == 'value' or ob ==u'value':
             ob = TYPE_OBJECT_MAP[ob](unicode(value))
         else:
             ob = TYPE_OBJECT_MAP[ob](int(value))
         notify(ObjectCreatedEvent(ob))
         chooser = INameChooser(answer)
         name = chooser.chooseName(None, ob)
         
         if chooser.checkName(name, ob):
             answer[name] = ob
         else:
             return (0-1)
         return IAsyncDataManager(answer[name]).addSelf()
     except:
         return (0-1)
开发者ID:HengeSense,项目名称:Qreature,代码行数:34,代码来源:async.py


示例3: setUp

 def setUp(self):
     """
     """
     app = self.layer['app']
     self.portal = self.layer['portal']
     self.request = self.layer['request']
     self.tool = getToolByName(self.portal, SUBSCRIPTION_TOOL, None)
     self.markRequestWithLayer()
     self.portal_url = self.portal.absolute_url()
     self.browser = Browser(app)
     self.browser.addHeader('Authorization', 'Basic %s:%s' % (SITE_OWNER_NAME, SITE_OWNER_PASSWORD,))
     #Create some rules
     for x in ["first", "second", "third"]:
         #set some rules
         rule = Rule()
         rule.event = IObjectAddedEvent
         rule.title = "%s rule" % x
         #add the rules to rule's storage
         storage = getUtility(IRuleStorage)
         chooser = INameChooser(storage)
         storage[chooser.chooseName(None, rule)] = rule
         #set the action and add it to the rule
         action = MailSubscriptionsAction()
         action.subject = "Test %s action subject" % x
         rule.actions.append(action)
         email1 = "[email protected]"
         email2 = "[email protected]"
         self.tool.registerUser(action.actionUID, email1)
         self.tool.registerUser(action.actionUID, email2)
     transaction.commit()
开发者ID:RedTurtle,项目名称:collective.contentrules.subscription,代码行数:30,代码来源:test_controlpanel.py


示例4: validate

    def validate(self, data):
        form = self.view
        if 'shortname' not in form.widgets:
            return super(ContentNameValidator, self).validate(data)

        widget = form.widgets['shortname']

        if widget.error:
            return super(ContentNameValidator, self).validate(data)

        context = self.view.context
        shortname = data.get('shortname').lower()
        valid_chars = "-.%s%s" % (string.lowercase, string.digits)
        shortname = ''.join(c for c in shortname if c in valid_chars)

        if shortname == context.__name__:
            return super(ContentNameValidator, self).validate(data)

        errors = []
        chooser = INameChooser(context.__parent__)

        try:
            chooser.checkName(shortname, None)
        except (UserError, ValueError), err:
            exc = NameError(unicode(err))

            widget.error = NameErrorViewSnippet(
                exc, self.request, widget, widget.field, form, self.context)
            widget.error.update()
            errors.append(exc)
开发者ID:Zojax,项目名称:zojax.content.forms,代码行数:30,代码来源:wizardedit.py


示例5: create

 def create(self, data):
     chooser = INameChooser(self.container)
     obj = self.factory(id=u"temporary")
     utils.applyChanges(obj.__of__(self.container), self.form_fields, data)
     oid = chooser.chooseName(obj.title, obj)
     obj.id = oid
     return obj
开发者ID:trollfot,项目名称:spear.content,代码行数:7,代码来源:forms.py


示例6: assignStackerRelatedPortlet

def assignStackerRelatedPortlet(portal):
    from ubify.policy.config import list_of_portletmanagers_for_stackerportlet_assignment,cynin_desktop_left_column_text
    static_portlet_text = cynin_desktop_left_column_text
    
    #static_portlet_nav_url = portal.absolute_url() + "/stacker-badge"
    #static_portlet_text = static_portlet_text % (static_portlet_nav_url)
    
    from plone.portlet.static import static
    assignments = (
                    static.Assignment(header='cyn.in Desktop',text=static_portlet_text,omit_border=True),
                  )
    
    for name in list_of_portletmanagers_for_stackerportlet_assignment:
        if assignments:
            try:
                portletManager = getUtility(IPortletManager, name=name)
            except ComponentLookupError:
                sm = getSiteManager(portal)
                objportletManager = PortletManager()                
                    
                sm.registerUtility(component=objportletManager,
                                   provided=IPortletManager,
                                   name = name)        
                portletManager = getUtility(IPortletManager, name=name) 
                
            assignable = getMultiAdapter((portal, portletManager,), ILocalPortletAssignmentManager)
            manager = getMultiAdapter((portal, portletManager), IPortletAssignmentMapping)
            
            if portletManager is not None:            
                chooser = INameChooser(manager)
                for assignment in assignments:
                    strtitle = assignment.title.lower()
                    strtitle = strtitle.replace(' ','-')
                    if manager.has_key(strtitle) == 0:
                        manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:Cenditel,项目名称:cenditel.comunidades.cynin,代码行数:35,代码来源:onetimeinstall.py


示例7: __call__

    def __call__(self):
        request = self.request
        container = self.context.context
        image = request.form.get('file', '')

        if not image:
            return encoder.encode({'success': False, 'message': '', 'error': 'No image provided'})
        name = os.path.split(image.filename)[-1]

        image = FileData(image)

        chooser = INameChooser(container)

        content = Image()

        name = chooser.chooseName(name, content)
        event.notify(ObjectCreatedEvent(content))
        container[name] = content
        try:
            content.data = image
        except NotAllowedFileType:
            transaction.abort()
            return encoder.encode({'success': False, 'message': '', 'error': 'File is not image'})
        return encoder.encode(
            {'success': True, 'message': '', 'file': name})
开发者ID:Zojax,项目名称:zojax.content.attachment,代码行数:25,代码来源:jsapi.py


示例8: install_plone3_portlets

def install_plone3_portlets(self):
    """Adds the discountable portlet to the root of the site
    so that it shows up on discountable items
    """
    if not HAS_PLONE30:
        return

    # Do the imports here, as we only need them here and this only
    # gets run on Plone 3.0.
    from zope.app.container.interfaces import INameChooser
    from zope.component import getUtility, getMultiAdapter
    from plone.portlets.interfaces import IPortletManager, IPortletAssignmentMapping
    from getpaid.discount.browser.portlets import portlets30

    # Get some definitions.
    portal = self.portal_url.getPortalObject()
    column = getUtility(IPortletManager, name="plone.rightcolumn", context=portal)
    manager = getMultiAdapter((portal, column), IPortletAssignmentMapping)
    portletnames = [v.title for v in manager.values()]
    chooser = INameChooser(manager)

    assignments = [
        portlets30.DiscountableAssignment(),
        portlets30.BuyXGetXfreeableAssignment(),
        ]

    for assignment in assignments:
        title = assignment.title
        if title not in portletnames:
            manager[chooser.chooseName(title, assignment)] = assignment
开发者ID:collective,项目名称:getpaid.discount,代码行数:30,代码来源:setuphandlers.py


示例9: add

    def add(self, content):
        """See zope.app.container.interfaces.IAdding
        """
        container = self.context
        name = self.contentName
        chooser = INameChooser(container)

        # check precondition
        checkObject(container, name, content)

        if IContainerNamesContainer.providedBy(container):
            # The container picks it's own names.
            # We need to ask it to pick one.
            name = chooser.chooseName(self.contentName or '', content)
        else:
            request = self.request
            name = request.get('add_input_name', name)

            if name is None:
                name = chooser.chooseName(self.contentName or '', content)
            elif name == '':
                name = chooser.chooseName('', content)
            else:
                # Invoke the name chooser even when we have a
                # name. It'll do useful things with it like converting
                # the incoming unicode to an ASCII string.
                name = chooser.chooseName(name, container)
        
        content.id = name
        container._setObject(name, content)
        self.contentName = name # Set the added object Name
        return container._getOb(name)
开发者ID:goschtl,项目名称:zope,代码行数:32,代码来源:adding.py


示例10: drop

    def drop(self, mail):
        """ drop a mail into this mail box. The mail is
        a string with the complete email content """
        
        # code unicode to utf-8
        if isinstance(mail,unicode):
            mail = mail.encode( 'utf-8' )
        type = 'Email'
        format = 'text/plain'
        content_type='text/plain'

        #generate title
        mailobj = email.message_from_string(mail)
        # Subject
        for key in "Subject subject Betreff betreff".split():
            subject = mailobj.get(key)
            if subject:
                subject = self.decodeheader(subject)
                break

        id = subject or DEFAULT_ID
        title = id

        # generate id
        normalizer = component.getUtility(IIDNormalizer)
        chooser = INameChooser(self.context)
        id = chooser.chooseName(normalizer.normalize(id), aq_base(self.context))

        self.context.invokeFactory(type ,id=id , title=title, format=format, \
                                   content_type=content_type, file=mail)
        getattr(self.context, id, None).setContentType(content_type)
        getattr(self.context, id, None).processForm()
        notify(MailDroppedEvent(getattr(self.context, id, None), self.context))
开发者ID:Goldmund-Wyldebeast-Wunderliebe,项目名称:mailtoplone.base,代码行数:33,代码来源:adapter.py


示例11: get_id_from_filename

def get_id_from_filename(filename, context):
    charset = context.getCharset()
    id = filename.decode(charset).rsplit('.', 1)
    normalizer = component.getUtility(IIDNormalizer)
    chooser = INameChooser(context)
    newid = '.'.join((normalizer.normalize(id[0]), id[1]))
    newid = newid.replace('_','-').replace(' ','-').lower()
    return chooser.chooseName(newid, context)
开发者ID:witsch,项目名称:collective.quickupload,代码行数:8,代码来源:uploadcapable.py


示例12: get_id_from_filename

def get_id_from_filename(filename, context):
    charset = context.getCharset()
    id = filename.decode(charset).rsplit('.', 1)
    if len(id) != 2:
        raise MissingExtension('It seems like the file extension is missing.')
    normalizer = component.getUtility(IIDNormalizer)
    chooser = INameChooser(context)
    newid = '.'.join((normalizer.normalize(id[0]), id[1]))
    newid = newid.replace('_','-').replace(' ','-').lower()
    return chooser.chooseName(newid, context)
开发者ID:redomino,项目名称:collective.quickupload,代码行数:10,代码来源:uploadcapable.py


示例13: createClassicPortletWithCountryDropdown

def createClassicPortletWithCountryDropdown(self):
    """ """
    parent = getParent(self)
    obj = getattr(parent, 'oshnetwork')
    column = getUtility(IPortletManager, name='plone.leftcolumn')
    manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping)
    assignment = classic.Assignment(template='oshnetwork_country_select',
                                    macro='portlet')
    chooser = INameChooser(manager)
    manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:EU-OSHA,项目名称:osha.theme,代码行数:10,代码来源:create_oshnetwork.py


示例14: addExternalPortlet

def addExternalPortlet(self):
    """ """
    parent = getParent(self)
    obj = getattr(parent, 'oshnetwork')
    column = getUtility(IPortletManager, name='plone.rightcolumn')
    manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping)
    assignment = classic.Assignment(template='oshnetwork_external_links_portlet',
                                    macro='portlet')
    chooser = INameChooser(manager)
    manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:EU-OSHA,项目名称:osha.theme,代码行数:10,代码来源:create_oshnetwork.py


示例15: __call__

    def __call__(self, filename, title, description, content_type, data, portal_type):
        context = aq_inner(self.context)
        error = ''
        result = {}
        result['success'] = None
        newid = get_id_from_filename(filename, context)
        chooser = INameChooser(context)
        newid = chooser.chooseName(newid, context)
        # consolidation because it's different upon Plone versions
        if not title :
            # try to split filenames because we don't want
            # big titles without spaces
            title = filename.rsplit('.', 1)[0].replace('_',' ').replace('-',' ')

        if newid in context:
            # only here for flashupload method since a check_id is done
            # in standard uploader - see also XXX in quick_upload.py
            raise NameError, 'Object id %s already exists' %newid
        else :
            upload_lock.acquire()
            try:
                transaction.begin()
                try:
                    context.invokeFactory(type_name=portal_type, id=newid,
                                          title=title, description=description)
                except Unauthorized :
                    error = u'serverErrorNoPermission'
                except ConflictError :
                    # rare with xhr upload / happens sometimes with flashupload
                    error = u'serverErrorZODBConflict'
                except ValueError:
                    error = u'serverErrorDisallowedType'
                except Exception, e:
                    error = u'serverError'
                    logger.exception(e)

                if error:
                    if error == u'serverError':
                        logger.info("An error happens with setId from filename, "
                                    "the file has been created with a bad id, "
                                    "can't find %s", newid)
                else:
                    obj = getattr(context, newid)
                    if obj:
                        error = IQuickUploadFileSetter(obj).set(data, filename, content_type)
                        obj._at_rename_after_creation = False
                        try:
                            obj.processForm()
                        except AttributeError:
                            pass
                        del obj._at_rename_after_creation

                #@TODO : rollback if there has been an error
                transaction.commit()
            finally:
开发者ID:ixds,项目名称:collective.quickupload,代码行数:55,代码来源:uploadcapable.py


示例16: renameAfterCreation

def renameAfterCreation(obj, event):
    """Rename object after first edit.
    """
    # Do no rename when the object is first added
    if not IContainerModifiedEvent.providedBy(event):
        utils = getToolByName(obj, 'plone_utils')
        # Rename only if the current id is autogenerated
        if utils.isIDAutoGenerated(obj.id):
            parent = aq_inner(obj).getParentNode()
            if parent is not None:
                chooser = INameChooser(parent)
                newid = chooser.chooseName('', obj)
                parent.manage_renameObject(obj.id, newid)
开发者ID:socialplanning,项目名称:opencore-listen,代码行数:13,代码来源:rename.py


示例17: _check_file_id

 def _check_file_id(self, id):
     context = aq_inner(self.context)
     charset = context.getCharset()
     id = id.decode(charset).rsplit('.', 1)
     normalizer = getUtility(IIDNormalizer)
     chooser = INameChooser(context)
     newid = '.'.join((normalizer.normalize(id[0]), id[1]))
     newid = chooser.chooseName(newid, context)
     # consolidation because it's different upon Plone versions
     if newid in context.objectIds() :
         return False
     else:
         return True
开发者ID:zopyx,项目名称:collective.quickupload,代码行数:13,代码来源:quick_upload.py


示例18: __call__

    def __call__(self, filename, title, description, content_type, data, portal_type):
        context = aq_inner(self.context)
        charset = context.getCharset()
        name = filename.decode(charset)
        error = ''
        result = {}
        result['success'] = None
        normalizer = component.getUtility(IIDNormalizer)
        chooser = INameChooser(self.context)
        # normalize all filename but dots
        normalized = ".".join([normalizer.normalize(n) for n in name.split('.')])
        newid = chooser.chooseName(normalized, context)

        # consolidation because it's different upon Plone versions
        newid = newid.replace('_','-').replace(' ','-').lower()
        if not title :
            # try to split filenames because we don't want
            # big titles without spaces
            title = name.split('.')[0].replace('_',' ').replace('-',' ')
        if newid in context.objectIds() :
            # only here for flashupload method since a check_id is done
            # in standard uploader - see also XXX in quick_upload.py
            raise NameError, 'Object id %s already exists' %newid
        else :
            upload_lock.acquire()
            try:
                transaction.begin()
                try:
                    context.invokeFactory(type_name=portal_type, id=newid, title=title, description=description)
                except Unauthorized :
                    error = u'serverErrorNoPermission'
                except ConflictError :
                    # rare with xhr upload / happens sometimes with flashupload
                    error = u'serverErrorZODBConflict'
                except Exception, e:
                    error = u'serverError'
                    logger.exception(e)

                if error:
                    error = u'serverError'
                    logger.info("An error happens with setId from filename, "
                                "the file has been created with a bad id, "
                                "can't find %s", newid)
                else:
                    obj = getattr(context, newid)
                    if obj:
                        error = IQuickUploadFileSetter(obj).set(data, filename, content_type)

                #@TODO : rollback if there has been an error
                transaction.commit()
            finally:
开发者ID:avoinea,项目名称:collective.quickupload,代码行数:51,代码来源:uploadcapable.py


示例19: create

def create(container=None, type=None, id=None, title=None, strict=True, *args,
           **kwargs):
    """Create a new object.

    :param container: [required] Container object in which to create the new
        object.
    :type container: Folderish content object
    :param type: [required] Type of the object.
    :type type: string
    :param id: Id of the object.  If the id conflicts with another object in
        the container, a suffix will be added to the new object's id. If no id
        is provided, automatically generate one from the title. If there is no
        id or title provided, raise a ValueError.
    :type id: string
    :param title: Title of the object. If no title is provided, use id as
        the title.
    :type title: string
    :param strict: When True, the given id will be enforced. If the id is
        conflicting with another object in the target container, raise a
        KeyError. When False, ``create`` creates a new, non-conflicting id.
    :type param: boolean
    :returns: Content object
    :Example: :ref:`create_content_example`
    """
    if not container:
        raise ValueError('The ``container`` attribute is required.')

    if not type:
        raise ValueError('The ``type`` attribute is required.')

    if not id and not title:
        raise ValueError('You have to provide either the ``id`` or the '
                         '``title`` attribute')

    # Create a temporary id
    id = str(random.randint(0, 99999999))
    container.invokeFactory(type, id, title=title, **kwargs)
    content = container[id]

    # Archetypes specific code
    if IBaseObject.providedBy(content):
        # Will finish Archetypes content item creation process,
        # rename-after-creation and such
        content.processForm()

    # Create a new id from title
    chooser = INameChooser(container)
    new_id = chooser.chooseName(title, content)
    content.aq_parent.manage_renameObject(id, new_id)

    return content
开发者ID:kcleong,项目名称:plone.api,代码行数:51,代码来源:content.py


示例20: addUtility

def addUtility(root_folder, utility_type, utility_factory, **kw):
    """ Add a Utility to the root folder's site manager.

    The utility is added to the default package and activated.
    """
    package = getSiteManagerDefault(root_folder)
    chooser = INameChooser(package)
    utility = utility_factory()
    name = chooser.chooseName(utility_type, utility)
    package[name] = utility
    # Set additional attributes on the utility
    for k, v in kw.iteritems():
        setattr(utility, k, v)
    return name
开发者ID:wpjunior,项目名称:proled,代码行数:14,代码来源:bootstrap.py



注:本文中的zope.app.container.interfaces.INameChooser类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python i18n._函数代码示例发布时间:2022-05-26
下一篇:
Python interfaces.ISite类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap