本文整理汇总了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)
示例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
示例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 = []
示例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__)
示例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__)
示例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)
示例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')
示例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
示例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
示例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))
示例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")
示例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())
示例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
示例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)
示例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: