本文整理汇总了Python中z3c.form.form.applyChanges函数的典型用法代码示例。如果您正苦于以下问题:Python applyChanges函数的具体用法?Python applyChanges怎么用?Python applyChanges使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了applyChanges函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: handleAdd
def handleAdd(self, action):
data, errors = self.extractData()
if errors:
self.status = self.formErrorsMessage
return
typeName = self.tileType.__name__
# Traverse to a new tile in the context, with no data
tile = self.context.restrictedTraverse(
'@@%s/%s' % (typeName, self.tileId,))
dataManager = ITileDataManager(tile)
content = {}
applyChanges(self, content, data)
dataManager.set(content)
# Look up the URL - we need to do this after we've set the data to
# correctly account for transient tiles
tileURL = absoluteURL(tile, self.request)
contextURL = absoluteURL(tile.context, self.request)
notify(ObjectCreatedEvent(tile))
notify(ObjectAddedEvent(tile, self.context, self.tileId))
IStatusMessage(self.request).addStatusMessage(
_(u"Tile created at ${url}",
mapping={'url': tileURL}),
type=u'info',
)
self.request.response.redirect(contextURL)
开发者ID:datakurre,项目名称:jyu.portfolio.layout,代码行数:33,代码来源:add-tile.py
示例2: create
def create(self, data):
fd = IntFieldDescription(data['title'],
str(data['name']),
data['required'])
form.applyChanges(self, fd, data)
self._fd = fd
return fd
开发者ID:asley,项目名称:schooltool,代码行数:7,代码来源:demographics.py
示例3: handleSave
def handleSave(self, action):
data, errors = self.extractData()
if errors:
self.status = self.formErrorsMessage
return
typeName = self.tileType.__name__
# Traverse to a new tile in the context, with no data
tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, self.tileId,))
dataManager = ITileDataManager(tile)
content = dataManager.get()
applyChanges(self, content, data)
dataManager.set(content)
# Look up the URL - we need to do this after we've set the data to
# correctly account for transient tiles
contextURL = absoluteURL(tile.context, self.request)
notify(ObjectModifiedEvent(tile))
# Get the tile URL, possibly with encoded data
IStatusMessage(self.request).addStatusMessage(_(u"Tile saved",), type=u'info')
self.request.response.redirect(contextURL)
开发者ID:datakurre,项目名称:jyu.portfolio.layout,代码行数:26,代码来源:edit-tile.py
示例4: createAndAdd
def createAndAdd(self, data):
# Filter away data values that does not come from the 'core' schema.
# Additional values can come from AutoExtensibleForm/FormExtender
# schemas,and the portlet Assignment creation will fail if the
# portlet AddForm create() method is using "Assignment(**data)"
# instead of explicit parameters.
# Extender values are set by form.applyChanges below, via the usual
# z3cform adapter lookups.
schema_keys = field.Fields(self.schema).keys()
unextended_data = {key: data[key]
for key in schema_keys if data.has_key(key)}
obj = self.create(unextended_data)
# Acquisition wrap temporarily to satisfy things like vocabularies
# depending on tools
container = aq_inner(self.context)
if IAcquirer.providedBy(obj):
obj = obj.__of__(container)
form.applyChanges(self, obj, data)
obj = aq_base(obj)
zope.event.notify(zope.lifecycleevent.ObjectCreatedEvent(obj))
self.add(obj)
return obj
开发者ID:headnet,项目名称:plone.app.portlets,代码行数:25,代码来源:formhelper.py
示例5: create
def create(self, data):
LOG.info('create: '+str(self.portal_type))
fti = getUtility(IDexterityFTI, name=self.portal_type)
container = aq_inner(self.context)
options = {}
options['portal_type'] = self.portal_type
options['sql_id'] = data.get('ISQLContent.sql_id')
content = createObject(fti.factory, **options)
# Note: The factory may have done this already, but we want to be sure
# that the created type has the right portal type. It is possible
# to re-define a type through the web that uses the factory from an
# existing type, but wants a unique portal_type!
if hasattr(content, '_setPortalTypeName'):
content._setPortalTypeName(fti.getId())
# Acquisition wrap temporarily to satisfy things like vocabularies
# depending on tools
if IAcquirer.providedBy(content):
content = content.__of__(container)
# Don't set empty data in SQL DB:
for k,v in data.items():
if not v:
del data[k]
form.applyChanges(self, content, data)
for group in self.groups:
form.applyChanges(group, content, data)
return aq_base(content)
开发者ID:Martronic-SA,项目名称:collective.behavior.sql,代码行数:31,代码来源:add.py
示例6: create
def create(self, data):
fti = getUtility(IDexterityFTI, name=self.portal_type)
container = aq_inner(self.context)
content = createObject(fti.factory)
# Note: The factory may have done this already, but we want to be sure
# that the created type has the right portal type. It is possible
# to re-define a type through the web that uses the factory from an
# existing type, but wants a unique portal_type!
if hasattr(content, '_setPortalTypeName'):
content._setPortalTypeName(fti.getId())
# Acquisition wrap temporarily to satisfy things like vocabularies
# depending on tools
if IAcquirer.providedBy(content):
content = content.__of__(container)
form.applyChanges(self, content, data)
for group in self.groups:
form.applyChanges(group, content, data)
return aq_base(content)
开发者ID:adam139,项目名称:plone.dexterity,代码行数:25,代码来源:add.py
示例7: populateContextFromDraft
def populateContextFromDraft(self):
"""Will populate the temporary content object from values contained
within the draft
"""
data, errors = self.extractData()
if errors:
return None
fti = zope.component.getUtility(IDexterityFTI, name=self.portal_type)
container = aq_inner(self.context)
content = zope.component.createObject(fti.factory)
if hasattr(content, '_setPortalTypeName'):
content._setPortalTypeName(fti.getId())
# Acquisition wrap temporarily to satisfy things like vocabularies
# depending on tools
if IAcquirer.providedBy(content):
content = content.__of__(container)
applyChanges(self, content, data)
for group in self.groups:
applyChanges(group, content, data)
return aq_base(content)
开发者ID:collective,项目名称:dexterity.draftspreviewbehavior,代码行数:25,代码来源:draftform.py
示例8: handle_assign
def handle_assign(self, action):
data, errors = self.extractData()
if not errors:
issue = self.getContent()
info = getAdapter(issue, IWorkflowInfo, name="project.issue")
form.applyChanges(self, issue, data)
info.fireTransition("responsibility_assigned")
self.request.response.redirect(".")
开发者ID:ilshad,项目名称:tacklets,代码行数:8,代码来源:forms.py
示例9: create
def create(self, data):
""" Create
"""
name = INameChooser(
self.context).chooseName(data.get('title', ''), None)
ob = PortalType(id=name)
form.applyChanges(self, ob, data)
return ob
开发者ID:eea,项目名称:eea.faceted.tool,代码行数:8,代码来源:portaltype.py
示例10: save
def save(self, action):
data, errors = self.extractData()
if errors:
self.status = self.formErrorsMessage
return
content = self.getContent()
form.applyChanges(self, content, data)
开发者ID:PMR2,项目名称:pmr2.json,代码行数:8,代码来源:form.py
示例11: autosave
def autosave(event):
context = getattr(event, 'object', None)
request = getattr(context, 'REQUEST', getRequest())
if not request.URL.endswith('/@@z3cform_validate_field'):
return
draft = getCurrentDraft(request)
if draft is None:
return
view = getattr(request, 'PUBLISHED', None)
form = getattr(view, 'context', None)
if hasattr(aq_base(form), 'form_instance'):
form = form.form_instance
if IAddForm.providedBy(form):
target = getattr(draft, '_draftAddFormTarget', None)
if not target:
return
target = target.__of__(context)
else:
target = context
fti = queryUtility(IDexterityFTI, name=target.portal_type)
if IDraftable.__identifier__ not in fti.behaviors:
return
if not hasattr(form, "extractData"):
return
data, errors = form.extractData()
if not errors:
content = DraftProxy(draft, target)
# Drop known non-draftable values
map(data.pop, [key for key in AUTOSAVE_BLACKLIST if key in data])
# Values are applied within savepoint to allow revert of any
# unexpected side-effects from setting field values
sp = transaction.savepoint(optimistic=True)
try:
applyChanges(form, content, data)
for group in getattr(form, 'groups', []):
applyChanges(group, content, data)
except Exception:
# If shortname was not blacklisted, it could fail because the
# behavior trying to rename object on add form.
pass
values = dict(draft.__dict__)
sp.rollback()
for key, value in values.items():
setattr(draft, key, value)
# Disable Plone 5 implicit CSRF to update draft
if HAS_PLONE_PROTECT:
alsoProvides(request, IDisableCSRFProtection)
开发者ID:datakurre,项目名称:plone.app.drafts,代码行数:57,代码来源:dexterity.py
示例12: create
def create(self, data):
""" Create
"""
valid_input = input_is_valid(self, data)
if not valid_input:
return
ob = PortalType(id=data.get('title', 'ADDTitle'))
form.applyChanges(self, ob, data)
return ob
开发者ID:collective,项目名称:eea.versions,代码行数:9,代码来源:views.py
示例13: create
def create(self, data):
# create object
content = Graph()
# apply form.rdftype
content.add((content.identifier, RDF['type'], self.rdftype))
# apply form data
form.applyChanges(self, content, data)
for group in self.groups:
form.applyChanges(group, content, data)
return content
开发者ID:gu-eresearch,项目名称:gu.z3cform.rdf,代码行数:10,代码来源:testing.py
示例14: create
def create(self, data):
# Dexterity base AddForm bypasses self.applyData and uses form.applyData directly,
# we'll have to override it to find a place to apply our algo_group data'
newob = super(SpeciesTraitsAdd, self).create(data)
# apply values to algo dict manually to make sure we don't write data on read
new_params = {}
for group in self.param_groups:
if group.toolkit == data['algorithm']:
content = group.getContent()
applyChanges(group, content, data)
new_params[group.toolkit] = content
newob.parameters = new_params
return newob
开发者ID:sarahrichmond,项目名称:org.bccvl.site,代码行数:13,代码来源:experiment.py
示例15: applyChangesToSchedule
def applyChangesToSchedule(self, schedule, data):
changes = form.applyChanges(self, schedule, data)
# ``changes`` is a dictionary; if empty, there were no changes
if changes:
# Construct change-descriptions for the object-modified event
descriptions = []
for interface, names in changes.items():
descriptions.append(
zope.lifecycleevent.Attributes(interface, *names))
# Send out a detailed object-modified event
zope.event.notify(
zope.lifecycleevent.ObjectModifiedEvent(schedule, *descriptions))
schedule_changed = bool(changes)
timetable = schedule.timetable
for day in timetable.periods.templates.values():
for period in day.values():
key = self.getPeriodKey(day, period)
selected = bool(self.request.get(key))
scheduled = schedule.hasPeriod(period)
if selected and not scheduled:
schedule.addPeriod(period)
schedule_changed = True
elif not selected and scheduled:
schedule.removePeriod(period)
schedule_changed = True
return schedule_changed
开发者ID:achouhans,项目名称:schooltool-2.8.5,代码行数:27,代码来源:timetable.py
示例16: handleApply
def handleApply(self, action):
data, errors = self.extractData()
if errors:
self.status = self.formErrorsMessage
return
if data['selected_group']:
self.group_obj = self.hlite[data['selected_group']]
content = self.getContent()
del data['selected_group']
changes = form.applyChanges(self, content, data)
if self.group_obj.id not in self.highlights:
self.highlights[self.group_obj.id] = content
interface.alsoProvides(self.context, IHighlighted)
if changes:
content.author = getActiveUser()
self.context.reindexObject(idxs=['object_provides',
'hlite_groups'])
self.status = self.successMessage
self.refreshActions = True
self.updateWidgets()
else:
self.status = self.noChangesMessage
else:
self.status = _(u'Please select a group.')
开发者ID:danilogbotelho,项目名称:Highlights-Manager,代码行数:25,代码来源:highlight.py
示例17: applyChanges
def applyChanges(self, data):
'''See interfaces.IEditForm'''
content = self.getContent()
changed = form.applyChanges(self, content, data)
for group in self.groups:
groupChanged = group.applyChanges(data)
for interface, names in groupChanged.items():
changed[interface] = changed.get(interface, []) + names
return changed
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:9,代码来源:group.py
示例18: applyChanges
def applyChanges(self, data):
changed = super(ParamGroupMixin, self).applyChanges(data)
# apply algo params:
new_params = {}
for group in self.param_groups:
if self.is_toolkit_selected(group.toolkit, data[self.func_select_field]):
content = group.getContent()
param_changed = applyChanges(group, content, data)
new_params[group.toolkit] = content
self.context.parameters = new_params
return changed
开发者ID:sarahrichmond,项目名称:org.bccvl.site,代码行数:12,代码来源:experiment.py
示例19: create
def create(self, data):
fti = getUtility(IDexterityFTI, name=self.portal_type)
container = aq_inner(self.context)
content = createObject(fti.factory)
if hasattr(content, '_setPortalTypeName'):
content._setPortalTypeName(fti.getId())
if IAcquirer.providedBy(content):
content = content.__of__(container)
for behavior in get_default_variant_aspects(self.context):
name = dotted_name(behavior)
enable_behaviors(content, (name,), (behavior,), reindex=False)
form.applyChanges(self, content, data)
for group in self.groups:
form.applyChanges(group, content, data)
return aq_base(content)
开发者ID:espenmn,项目名称:bda.plone.productshop2,代码行数:21,代码来源:forms.py
示例20: applyChanges
def applyChanges(self):
data, errors = self.extractData()
content = self.getContent()
if errors:
self.status = self.formErrorsMessage
return
changes = form.applyChanges(self, content, data)
# ``changes`` is a dictionary; if empty, there were no changes
if changes:
self.setConfiguration(content)
return changes
开发者ID:collective,项目名称:collective.table,代码行数:12,代码来源:source.py
注:本文中的z3c.form.form.applyChanges函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论