本文整理汇总了Python中zope.app.container.interfaces.INameChooser.chooseName方法的典型用法代码示例。如果您正苦于以下问题:Python INameChooser.chooseName方法的具体用法?Python INameChooser.chooseName怎么用?Python INameChooser.chooseName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zope.app.container.interfaces.INameChooser
的用法示例。
在下文中一共展示了INameChooser.chooseName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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)
示例2: addEventsAndNewsPortlets
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
def addEventsAndNewsPortlets(self):
""" """
parent = getParent(self)
obj = getattr(parent, 'oshnetwork')
column = getUtility(IPortletManager, name='plone.leftcolumn')
manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping)
assignment = events.Assignment()
chooser = INameChooser(manager)
manager[chooser.chooseName(None, assignment)] = assignment
column = getUtility(IPortletManager, name='plone.rightcolumn')
manager = getMultiAdapter((obj, column,), IPortletAssignmentMapping)
assignment = news.Assignment()
chooser = INameChooser(manager)
manager[chooser.chooseName(None, assignment)] = assignment
示例3: __call__
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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})
示例4: drop
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.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))
示例5: install_plone3_portlets
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例6: addObject
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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)
示例7: new_user
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例8: setUp
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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()
示例9: create
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例10: assignStackerRelatedPortlet
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例11: get_id_from_filename
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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)
示例12: createClassicPortletWithCountryDropdown
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例13: get_id_from_filename
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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)
示例14: addExternalPortlet
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.container.interfaces.INameChooser import chooseName [as 别名]
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
示例15: __call__
# 需要导入模块: from zope.app.container.interfaces import INameChooser [as 别名]
# 或者: from zope.app.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:
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: