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

Python interfaces.INameChooser类代码示例

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

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



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

示例1: handleSave

    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,代码行数:29,代码来源:email_form.py


示例2: choose_name

    def choose_name(self):
        if self._id is not None:
            return self._id

        title = self.arguments.get('title', self.portal_type)
        chooser = INameChooser(self.container)
        return chooser.chooseName(title, self.container)
开发者ID:4teamwork,项目名称:ftw.builder,代码行数:7,代码来源:archetypes.py


示例3: _createObj

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,代码行数:34,代码来源:pilgrimage_app.py


示例4: copy

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,代码行数:35,代码来源:content.py


示例5: __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:
                    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,代码行数:60,代码来源:uploadcapable.py


示例6: 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:collective,项目名称:mailtoplone.base,代码行数:33,代码来源:adapter.py


示例7: handleApply

    def handleApply(self, action):
        data, errors = self.extractData()
        if errors:
            return
        
        title = data['title']
        
        # Generate a name based on the title..
        util = queryUtility(IIDNormalizer)
        id = util.normalize(title)
        
        # Context may not be a container, get one.
        context_state = getMultiAdapter((self.context, self.request), name="plone_context_state")
        container = context_state.folder()
        
        # Make sure our chosen id is unique, iterate until we get one that is.
        chooser = INameChooser(container)
        id = chooser._findUniqueName(id, None)

        # create the object
        type_name = data['type_name']
        container.invokeFactory(type_name, id=id, title=title)
        if type_name in [u'Folder']:
            self.request.response.redirect("%s/@@cmsui-structure" % container[id].absolute_url())
        else:
            self.request.response.redirect("%s/edit" % container[id].absolute_url())
开发者ID:giacomos,项目名称:plone.app.cmsui,代码行数:26,代码来源:addmenu.py


示例8: __call__

    def __call__(self, name, content_type, data):
        ctr = getToolByName(self.context, 'content_type_registry')
        type_ = ctr.findTypeName(name.lower(), '', '') or 'File'

        # XXX: quick fix for german umlauts
        name = name.decode("utf8")

        normalizer = getUtility(IFileNameNormalizer)
        chooser = INameChooser(self.context)

        # otherwise I get ZPublisher.Conflict ConflictErrors
        # when uploading multiple files
        upload_lock.acquire()

        # this should fix #8
        newid = chooser.chooseName(normalizer.normalize(name),
                                   self.context.aq_parent)
        try:
            transaction.begin()
            obj = ploneutils._createObjectByType(type_,
                                                 self.context, newid)
            mutator = obj.getPrimaryField().getMutator(obj)
            mutator(data, content_type=content_type)
            obj.setTitle(name)
            obj.reindexObject()

            notify(ObjectInitializedEvent(obj))
            notify(ObjectModifiedEvent(obj))

            transaction.commit()
        finally:
            upload_lock.release()
        return obj
开发者ID:cillianderoiste,项目名称:plone.app.widgets,代码行数:33,代码来源:factories.py


示例9: createNewDaviz

 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,代码行数:34,代码来源:daviz.py


示例10: setup_department_portlets

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,代码行数:32,代码来源:subscriber.py


示例11: new_user

def new_user(principal, event):
    """Initialise the dashboard for a new user
    """
    defaults = IDefaultDashboard(principal, None)
    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(manager=name,
                                                                                  category=USER_CATEGORY,
                                                                                  name=userid)
                    chooser = INameChooser(manager)
                    for assignment in assignments:
                        manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:dr460neye,项目名称:plone.app.portlets,代码行数:25,代码来源:dashboard.py


示例12: _create_file

    def _create_file(self, item, files, title, description, rights):
        namechooser = INameChooser(self.context)
        content_type = item.headers.get('Content-Type')
        filename = safe_unicode(item.filename)
        data = item.read()
        id_name = ''
        title = title and title[0] or filename
        id_name = namechooser.chooseName(title, self.context)

        if content_type in IMAGE_MIMETYPES:
            portal_type = 'Image'
            wrapped_data = NamedBlobImage(data=data, filename=filename)
        else:
            portal_type = 'File'
            wrapped_data = NamedBlobFile(data=data, filename=filename)

        self.context.invokeFactory(portal_type,
                                   id=id_name,
                                   title=title,
                                   description=description[0],
                                   rights=rights[0])
        newfile = self.context[id_name]
        if portal_type == 'File':
            if IATFile.providedBy(newfile):
                newfile.setFile(data, filename=filename)
            else:
                newfile.file = wrapped_data
        elif portal_type == 'Image':
            if IATImage.providedBy(newfile):
                newfile.setImage(data, filename=filename)
            else:
                newfile.image = wrapped_data
        newfile.reindexObject()
        notify(ObjectModifiedEvent(newfile))
        return newfile
开发者ID:dgti-iff,项目名称:brasil.gov.portal,代码行数:35,代码来源:browser.py


示例13: __call__

    def __call__(self, name, content_type, data):
        ctr = getToolByName(self.context, 'content_type_registry')
        type_ = ctr.findTypeName(name.lower(), '', '') or 'File'

        # otherwise I get ZPublisher.Conflict ConflictErrors
        # when uploading multiple files
        upload_lock.acquire()

        name = safe_unicode(name)
        chooser = INameChooser(self.context)
        newid = chooser.chooseName(name, self.context.aq_parent)
        try:
            transaction.begin()
            obj = ploneutils._createObjectByType(type_,
                                                 self.context, newid)
            mutator = obj.getPrimaryField().getMutator(obj)
            mutator(data, content_type=content_type, filename=name)
            obj.setTitle(name)
            if hasattr(obj, 'setFilename'):
                # if chunk uploaded, needs override
                obj.setFilename(name)
            obj.reindexObject()

            notify(ObjectInitializedEvent(obj))
            notify(ObjectModifiedEvent(obj))

            transaction.commit()
        finally:
            upload_lock.release()
        return obj
开发者ID:tud-mit-plone,项目名称:wildcard.foldercontents,代码行数:30,代码来源:factories.py


示例14: _create_project

def _create_project(cell, context):
    STATUS = {'17': 'active', '18': 'inactive', '19': 'archive'}
    chooser = INameChooser(context)
    project_id = chooser.chooseName(cell[2].decode('latin-1'), context)

    # Create project
    context.invokeFactory("Project", project_id)
    project = context[project_id]
    project.setExcludeFromNav(True)

    # Set project attributes
    project.setCode(cell[2].decode('latin-1'))
    project.setName_fr(cell[16].decode('latin-1'))
    project.setName_en(cell[4].decode('latin-1'))
    project.setName_nl(cell[3].decode('latin-1'))
    project.setContent_fr(cell[13].decode('latin-1'))
    project.setContent_en(cell[20].decode('latin-1'))
    project.setContent_nl(cell[7].decode('latin-1'))
    project.setComments(cell[11].decode('latin-1'))
    project.setUrl(cell[6].decode('latin-1'))
    project.setOrganisationtype(cell[5].decode('latin-1'))
    project.setStatus(STATUS.get(cell[18].decode('latin-1'), ''))
    project.setRelationtype(cell[19].decode('latin-1'))
    project.setStart(_get_datetime(cell[10].decode('latin-1')))
    project.setEnd(_get_datetime(cell[15].decode('latin-1')))

    return project
开发者ID:makinacorpus,项目名称:cirb.relex,代码行数:27,代码来源:import_csv.py


示例15: moveTo

    def moveTo(self, target, new_name=None):
        """Move this object to the `target` given.

        Returns the new name within the `target`
        """

        obj = self.context
        container = obj.__parent__

        orig_name = obj.__name__
        if new_name is None:
            new_name = orig_name

        checkObject(target, new_name, obj)

        if target is container and new_name == orig_name:
            # Nothing to do
            return

        chooser = INameChooser(target)
        new_name = chooser.chooseName(new_name, obj)

        if target is container and new_name == orig_name:
            # obstinate namechooser
            return

        target[new_name] = obj
        del container[orig_name]
        return new_name
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:29,代码来源:__init__.py


示例16: add

 def add(self, schoolyear):
     """Add `schoolyear` to the container."""
     chooser = INameChooser(self.context)
     name = chooser.chooseName(schoolyear.title, schoolyear)
     self.context[name] = schoolyear
     self.importData(schoolyear)
     return schoolyear
开发者ID:achouhans,项目名称:schooltool-2.8.5,代码行数:7,代码来源:schoolyear.py


示例17: addUtility

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,代码行数:25,代码来源:bootstrap.py


示例18: new_user

def new_user(principal, event):
    """Initialise the dashboard for a new user
    """

    #import pdb; pdb.set_trace()
    defaults = IDefaultPersonalPortlet(principal, None)
    if defaults is None:
        return

    userid = principal.getId()
    portlets = defaults()

 
    for name in ('plone.rightcolumn', ):
        assignments = portlets.get(name)
        if assignments:
            column = queryUtility(IPortletManager, name=name)
            if column is not None:
                # Add the default portlets only, if this is our manager.
                # We must check this to avoid adding the default portlets 
                # when the product is not installed into the portal
                # (but the event triggers even in this case)
                if IPersonalPortletManager in providedBy(column):
                    category = column.get(USER_CATEGORY, None)
                    if category is not None:
                        manager = category.get(userid, None)
                        if manager is None:
                            manager = category[userid] = UserPortletAssignmentMapping(manager=name,
                                                                                      category=USER_CATEGORY,
                                                                                      name=userid)
                        chooser = INameChooser(manager)
                        for assignment in assignments:
                            manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:collective,项目名称:collective.personalportletcolumn,代码行数:33,代码来源:default.py


示例19: _createObject

def _createObject(context, event):
    column = getUtility(IPortletManager, name=u'plone.leftcolumn', context=context)
    manager = getMultiAdapter((context, column,), IPortletAssignmentMapping)
    assignment = mydocs_portlet.Assignment()
    chooser = INameChooser(manager)
    assignment.button_label = 'My Documents'
    manager[chooser.chooseName(None, assignment)] = assignment
开发者ID:milktea,项目名称:eval.dms,代码行数:7,代码来源:workspace.py


示例20: add

    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,代码行数:32,代码来源:adding.py



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Python interfaces.IObjectAddedEvent类代码示例发布时间:2022-05-26
下一篇:
Python interfaces.IContainerModifiedEvent类代码示例发布时间: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