当前位置: 首页>>代码示例>>Python>>正文


Python INameChooser.chooseName方法代码示例

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


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

示例1: add

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
    def add(self, content):
        """See zope.browser.interfaces.IAdding
        """
        container = self.context
        name = self.contentName
        chooser = INameChooser(container)

        # check precondition
        checkObject(container, name, content)

        if IContainerNamesContainer.providedBy(container):
            # The container picks its 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, content)

        content.id = name
        container._setObject(name, content)
        self.contentName = name  # Set the added object Name
        return container._getOb(name)
开发者ID:dhavlik,项目名称:Zope,代码行数:34,代码来源:adding.py

示例2: setup_department_portlets

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def setup_department_portlets(obj, event):

    # equaldepartments-portlet
    manager = getUtility(IPortletManager, name=u"plone.leftcolumn")
    mapping = getMultiAdapter((obj, manager), IPortletAssignmentMapping)

    has_equaldepartments = False
    for value in mapping.values():
        if value.__name__ == "label_equaldepartmentsportlet":
            has_equaldepartments = True

    if not has_equaldepartments:
        assignment_equaldepartments = equaldepartmentsportlet.EqualDepartmentsPortletAssignment(
            department_uid=obj.UID()
        )
        chooser = INameChooser(mapping)
        equaldepartments_name = chooser.chooseName(None, assignment_equaldepartments)
        mapping[equaldepartments_name] = assignment_equaldepartments

    # departmentportlet
    manager = getUtility(IPortletManager, name=u"plone.rightcolumn")
    mapping = getMultiAdapter((obj, manager), IPortletAssignmentMapping)

    has_department = False
    for value in mapping.values():
        if value.__name__ == "label_departmentportlet":
            has_department = True
    if not has_department:
        assignment_department = departmentportlet.DepartmentPortletAssignment(department_uid=obj.UID())
        chooser = INameChooser(mapping)
        department_name = chooser.chooseName(None, assignment_department)
        mapping[department_name] = assignment_department
开发者ID:veit,项目名称:vs.org,代码行数:34,代码来源:subscriber.py

示例3: convert_legacy_portlets

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def convert_legacy_portlets(context):
    """Convert legacy portlets (left_slots, right_slots) in the given
    context to new-style portlets.
    """

    portletsMapping = {'portlet_login': login.Assignment(),
                       'portlet_news': news.Assignment(count=5),
                       'portlet_navigation': navigation.Assignment(),
                       'portlet_review': review.Assignment(),
                       'portlet_recent': recent.Assignment(count=5),
                       'portlet_related': DONT_MIGRATE,
                       'portlet_languages': DONT_MIGRATE,
                       'portlet_calendar': DONT_MIGRATE,
                       'portlet_events': DONT_MIGRATE,
                       }

    if HAS_PLONE_APP_EVENT:
        portletsMapping.update({
            'portlet_calendar': calendar.Assignment(),
            'portlet_events': events.Assignment(count=5),
        })

    # Convert left_slots and right_slots to portlets

    left = getUtility(IPortletManager, name='plone.leftcolumn')
    right = getUtility(IPortletManager, name='plone.rightcolumn')

    leftAssignable = getMultiAdapter((context, left), IPortletAssignmentMapping).__of__(context)
    rightAssignable = getMultiAdapter((context, right), IPortletAssignmentMapping).__of__(context)

    IPortletPermissionChecker(leftAssignable)()
    IPortletPermissionChecker(rightAssignable)()

    leftChooser = INameChooser(leftAssignable)
    rightChooser = INameChooser(rightAssignable)

    left_slots = getattr(aq_base(context), 'left_slots', [])
    right_slots = getattr(aq_base(context), 'right_slots', [])

    for item in left_slots:
        path = item.split('/')
        if len(path) == 4:
            newPortlet = portletsMapping.get(path[1], None)
            if newPortlet is None and path[0] in ('context', 'here') and path[2] == 'macros':
                newPortlet = classic.Assignment(path[1], path[3])
            if newPortlet is not None and newPortlet is not DONT_MIGRATE:
                leftAssignable[leftChooser.chooseName(None, newPortlet)] = newPortlet

    for item in right_slots:
        path = item.split('/')
        if len(path) == 4:
            newPortlet = portletsMapping.get(path[1], None)
            if newPortlet is None and path[0] in ('context', 'here') and path[2] == 'macros':
                newPortlet = classic.Assignment(path[1], path[3])
            if newPortlet is not None and newPortlet is not DONT_MIGRATE:
                rightAssignable[rightChooser.chooseName(None, newPortlet)] = newPortlet

    context.left_slots = []
    context.right_slots = []
开发者ID:plone,项目名称:plone.app.portlets,代码行数:61,代码来源:utils.py

示例4: testNameChooser

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
 def testNameChooser(self):
     mapping = PortletAssignmentMapping()
     chooser = INameChooser(mapping)
     c = classic.Assignment()
     mapping[chooser.chooseName(None, c)] = c
     self.failUnless(c.__name__)
     d = classic.Assignment()
     self.failIfEqual(chooser.chooseName(None, d), c.__name__)
开发者ID:davilima6,项目名称:plone.app.portlets,代码行数:10,代码来源:test_mapping.py

示例5: testNameChooser

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
 def testNameChooser(self):
     mapping = PortletAssignmentMapping()
     chooser = INameChooser(mapping)
     c = classic.Assignment()
     mapping[chooser.chooseName(None, c)] = c
     self.assertTrue(c.__name__)
     d = classic.Assignment()
     self.assertFalse(chooser.chooseName(None, d) == c.__name__)
开发者ID:headnet,项目名称:plone.app.portlets,代码行数:10,代码来源:test_mapping.py

示例6: setup_institution_portlets

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def setup_institution_portlets(obj, event):

    ptool = getToolByName(obj, "portal_url")
    c_uid = obj.UID()
    c_root = "/" + "/".join(ptool.getRelativeContentPath(obj))

    # left portlets
    manager = getUtility(IPortletManager, name=u"plone.leftcolumn")
    mapping = getMultiAdapter((obj, manager), IPortletAssignmentMapping)

    has_navigation = False
    has_equal_institutions = False

    for value in mapping.values():
        if value.__name__ == "navigation":
            has_navigation = True
        elif value.__name__ == "label_equalinstitutionsportlet":
            has_equal_institutions = True

    if not has_navigation:
        assignment_navigation = navigation.Assignment(
            name=obj.Title(), root=c_root, currentFolderOnly=False, includeTop=False, topLevel=0, bottomLevel=2
        )

    if not has_equal_institutions:
        assignment_equalinstitutions = equalinstitutionsportlet.EqualInstitutionsPortletAssignment(
            institution_uid=c_uid
        )

    chooser = INameChooser(mapping)

    if not has_navigation:
        mapping[chooser.chooseName(None, assignment_navigation)] = assignment_navigation
    if not has_equal_institutions:
        mapping[chooser.chooseName(None, assignment_equalinstitutions)] = assignment_equalinstitutions

    # dont aquire portlets at left column
    assignable = queryMultiAdapter((obj, manager), ILocalPortletAssignmentManager)
    assignable.setBlacklistStatus("context", True)

    # right portlets
    manager = getUtility(IPortletManager, name=u"plone.rightcolumn")
    mapping = getMultiAdapter((obj, manager), IPortletAssignmentMapping)

    has_institution = False
    for value in mapping.values():
        if value.__name__ == "label_institutionportlet":
            has_institution = True

    if not has_institution:
        assignment_institutionportlet = institutionportlet.InstitutionPortletAssignment(institution_uid=c_uid)
        chooser = INameChooser(mapping)
        mapping[chooser.chooseName(None, assignment_institutionportlet)] = assignment_institutionportlet

    # dont aquire portlets at right column
    assignable = queryMultiAdapter((obj, manager), ILocalPortletAssignmentManager)
    assignable.setBlacklistStatus("context", True)
开发者ID:veit,项目名称:vs.org,代码行数:59,代码来源:subscriber.py

示例7: test_chooseName

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
 def test_chooseName(self):
     namechooser = INameChooser(self.activities)
     obj = createContentInContainer(self.activities,
         'upfront.assessmentitem.content.assessmentitem')        
     self.assertEqual(namechooser.chooseName(None, obj), 'q001')
     obj = createContent(
         'upfront.assessmentitem.content.assessmentitem')
     self.assertEqual(namechooser.chooseName(None, obj), 'q002')
     self.assertEqual(namechooser.chooseName('custom', obj), 'custom')
开发者ID:upfrontsystems,项目名称:tarmii.theme,代码行数:11,代码来源:test_namechooser.py

示例8: setup_department_portlets

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def setup_department_portlets(obj, event):
    column = getUtility(IPortletManager, name=DEPARTMENTS_PORTLET_COLUMN)
    manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping)
    
    has_department = False
    for value in manager.values():
        if value.__name__ == 'label_departmentportlet':
            has_department = True
    if not has_department:
        assignment_department = departmentportlet.DepartmentPortletAssignment(department_uid=obj.UID())
    
        chooser = INameChooser(manager)
        department_name  = chooser.chooseName(None, assignment_department) 
        manager[chooser.chooseName(None, assignment_department)] = assignment_department
开发者ID:pgrunewald,项目名称:vs.org,代码行数:16,代码来源:department.py

示例9: addUtility

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def addUtility(root_folder, utility_type, utility_factory,
               asObject=_marker, **kw):
    """ Add a Utility to the root folder's site manager.

    The utility is added to the default package and activated.
    """
    if asObject is not _marker:
        warnings.warn("asObject argument is deprecated and will be "
                      "removed in Zope 3.6", DeprecationWarning, 2)

    package = getSiteManagerDefault(root_folder)
    chooser = INameChooser(package)
    utility = utility_factory()
    name = chooser.chooseName(utility_type, utility)
    package[name] = utility

    # the utility might have been location-proxied; we need the name
    # information (__name__) so let's get it back again from the
    # container
    utility = package[name]

    # Set additional attributes on the utility
    for k, v in kw.iteritems():
        setattr(utility, k, v)
    return utility
开发者ID:grodniewicz,项目名称:oship,代码行数:27,代码来源:bootstrap.py

示例10: drop

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
    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:collective,项目名称:mailtoplone.base,代码行数:35,代码来源:adapter.py

示例11: createNewDaviz

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
 def createNewDaviz(self):
     """ Create new visualization
     """
     davizsettings = queryUtility(IDavizSettings)
     strFolder = davizsettings.settings.get("daviz.defaultfolder", "")
     if strFolder != "":
         portal = getSite()
         folder = portal.restrictedTraverse(strFolder)
     else:
         folder = self.context.aq_parent
         found = False
         while True:
             try:
                 allowedContentTypes = folder.allowedContentTypes()
             except AttributeError:
                 break
             for allowedContentType in allowedContentTypes:
                 if allowedContentType.id == "DavizVisualization":
                     found = True
             if found:
                 break
             folder = folder.aq_parent
         if not found:
             return
     chooser = INameChooser(folder)
     newId = chooser.chooseName(self.context.title, folder)
     if newId in folder.objectIds():
         raise NameError, 'Object id %s already exists' % newId
     else:
         folder.invokeFactory("DavizVisualization", newId)
     newObj = folder[newId]
     newObj.title = self.context.title
     newObj.setRelatedItems([self.context])
     self.request.response.redirect(newObj.absolute_url()+"/daviz-edit.html")
开发者ID:anukat2015,项目名称:eea.daviz,代码行数:36,代码来源:daviz.py

示例12: handleSave

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
    def handleSave(self, action):
        data, errors = self.extractData()

        if errors:
            return False

        types = api.portal.get_tool('portal_types')
        type_info = types.getTypeInfo('eea.meeting.email')

        name_chooser = INameChooser(self.context)
        content_id = name_chooser.chooseName(data['subject'], self.context)

        obj = type_info._constructInstance(self.context, content_id)

        obj.title = data['subject']
        obj.sender = data['sender']
        obj.receiver = data['receiver']
        obj.cc = data['cc']
        obj.subject = data['subject']
        obj.body = data['body']

        obj.reindexObject()

        notify(SendEmailAddEvent(self.context, data))

        msg = _(u"Email successfully sent")
        IStatusMessage(self.request).addStatusMessage(msg, type='info')
        self.request.response.redirect(
            self.context.getParentNode().absolute_url())
开发者ID:eea,项目名称:eea.meeting,代码行数:31,代码来源:email_form.py

示例13: _createObj

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def _createObj(context, event):
    parent = context.aq_parent
    column = getUtility(IPortletManager, name=u'plone.leftcolumn', context=context)
    manager = getMultiAdapter((context, column,), IPortletAssignmentMapping)
    assignment = burgermenuportlet.Assignment()
    chooser = INameChooser(manager)
    assignment.path = '/'.join(context.getPhysicalPath())
    manager[chooser.chooseName(None, assignment)] = assignment

    id = context.getId()
    object_Ids = []
    catalog = getToolByName(context, 'portal_catalog')
    brains = catalog.unrestrictedSearchResults(object_provides = IPilgrimageApp.__identifier__)
    for brain in brains:
        object_Ids.append(brain.id)
    
    last_name = str(idnormalizer.normalize(context.title))
    temp_new_id = last_name
    new_id = temp_new_id.replace("-","")
    test = ''
    if new_id in object_Ids:
        test = filter(lambda name: new_id in name, object_Ids)
        if '-' not in (max(test)):
            new_id = new_id + '-1'
        if '-' in (max(test)):
            new_id = new_id +'-' +str(int(max(test).split('-')[-1])+1) 

    parent.manage_renameObject(id, new_id )
    new_title = last_name
    context.setTitle(context.title)


    context.reindexObject()
    return
开发者ID:joemariedimzon,项目名称:wccpilgrimagesite.app,代码行数:36,代码来源:pilgrimage_app.py

示例14: copy

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
def copy(source=None, target=None, id=None, safe_id=False):
    """Copy the object to the target container.

    :param source: [required] Object that we want to copy.
    :type source: Content object
    :param target: Target container to which the source object will
        be moved. If no target is specified, the source object's container will
        be used as a target.
    :type target: Folderish content object
    :param id: Id of the copied object on the target location. If no id is
        provided, the copied object will have the same id as the source object
        - however, if the new object's id conflicts with another object in the
        target container, a suffix will be added to the new object's id.
    :type id: string
    :returns: Content object that was created in the target location
    :param safe_id: When True, the given id will be enforced. If the id is
        conflicting with another object in the target container, raise a
        InvalidParameterError. When True, choose a new, non-conflicting id.
    :type safe_id: boolean
    :raises:
        KeyError,
        ValueError
    :Example: :ref:`content_copy_example`
    """
    source_id = source.getId()
    target.manage_pasteObjects(source.manage_copyObjects(source_id))

    if id:
        if not safe_id:
            new_id = id
        else:
            chooser = INameChooser(target)
            new_id = chooser.chooseName(id, source)

        target.manage_renameObject(source_id, new_id)
开发者ID:pysailor,项目名称:plone.api,代码行数:37,代码来源:content.py

示例15: __call__

# 需要导入模块: from zope.container.interfaces import INameChooser [as 别名]
# 或者: from zope.container.interfaces.INameChooser import chooseName [as 别名]
    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:
                    from zope.publisher.browser import TestRequest
                    request = TestRequest()
                    dataobj = FileObj(data)
                    dataobj.filename = filename
                    request.form['doc'] = dataobj
                    request.form['ajax'] = '1'
                    from fhnw.office2plone.browser.docx_importer import DocxImporter
                    docximport = DocxImporter(self.context, request)
                    docximport.docx_import()
                except ImportError:
                    error = ''
                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:
                    pass

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


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