本文整理汇总了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;未经允许,请勿转载。 |
请发表评论