[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/formlib/form.py - added successMessage, noChangesMessage and applyChanges (similar to those in z3c.form)
Yvo Schubbe
y.2009 at wcm-solutions.de
Mon Aug 31 15:58:17 EDT 2009
Log message for revision 103424:
- added successMessage, noChangesMessage and applyChanges (similar to those in z3c.form)
- refactored _handle_success
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/formlib/form.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/formlib/form.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/formlib/form.py 2009-08-31 19:14:06 UTC (rev 103423)
+++ Products.CMFDefault/trunk/Products/CMFDefault/formlib/form.py 2009-08-31 19:58:16 UTC (rev 103424)
@@ -224,11 +224,27 @@
obj_type = translate(self.context.Type(), self.context)
return _(u'Edit ${obj_type}', mapping={'obj_type': obj_type})
+ @property
+ def successMessage(self):
+ obj_type = translate(self.context.Type(), self.context)
+ return _(u'${obj_type} changed.', mapping={'obj_type': obj_type})
+
+ noChangesMessage = _(u'Nothing to change.')
+
def handle_validate(self, action, data):
if self.context.wl_isLocked():
return (_(u'This resource is locked via webDAV.'),)
return None
+ def applyChanges(self, data):
+ content = self.context
+ changes = form.applyData(content, self.form_fields, data,
+ self.adapters)
+ # ``changes`` is a dictionary; if empty, there were no changes
+ if changes:
+ content.reindexObject()
+ return changes
+
def _handle_success(self, action, data):
# normalize set and datetime
for k, v in data.iteritems():
@@ -236,16 +252,12 @@
data[k] = set(v)
elif isinstance(v, datetime) and v.tzname() is None:
data[k] = parseDatetimetz(str(v))
- changed = form.applyChanges(self.context, self.form_fields, data,
- self.adapters)
- if changed:
- self.context.reindexObject()
- obj_type = translate(self.context.Type(), self.context)
- self.status = _(u'${obj_type} changed.',
- mapping={'obj_type': obj_type})
+ changes = self.applyChanges(data)
+ if changes:
+ self.status = self.successMessage
else:
- self.status = _(u'Nothing to change.')
- return changed
+ self.status = self.noChangesMessage
+ return changes
def handle_change_success(self, action, data):
self._handle_success(action, data)
More information about the checkins
mailing list