[Checkins] SVN: z3c.form/trunk/ Folded duplicate code in ``z3c.form.datamanager.AttributeField`` into a single property.

Michael Howitz mh at gocept.com
Tue Oct 13 14:37:56 EDT 2009


Log message for revision 105055:
  Folded duplicate code in ``z3c.form.datamanager.AttributeField`` into a single property.
  
  

Changed:
  U   z3c.form/trunk/CHANGES.txt
  U   z3c.form/trunk/src/z3c/form/datamanager.py

-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt	2009-10-13 18:25:05 UTC (rev 105054)
+++ z3c.form/trunk/CHANGES.txt	2009-10-13 18:37:56 UTC (rev 105055)
@@ -13,10 +13,13 @@
 
 - Bug: Replace dots with hyphens when generating form id from its name.
 
-- Refactored OutputChecker to its own module to allow using 
-  ``z3c.form.testing`` without needing to depend on ``lxml``
+- Refactored OutputChecker to its own module to allow using
+  ``z3c.form.testing`` without needing to depend on ``lxml``.
 
+- Folded duplicate code in ``z3c.form.datamanager.AttributeField`` into a
+  single property.
 
+
 Version 2.1.0 (2009-07-22)
 --------------------------
 

Modified: z3c.form/trunk/src/z3c/form/datamanager.py
===================================================================
--- z3c.form/trunk/src/z3c/form/datamanager.py	2009-10-13 18:25:05 UTC (rev 105054)
+++ z3c.form/trunk/src/z3c/form/datamanager.py	2009-10-13 18:37:56 UTC (rev 105055)
@@ -42,14 +42,18 @@
         self.context = context
         self.field = field
 
-    def get(self):
-        """See z3c.form.interfaces.IDataManager"""
+    @property
+    def adapted_context(self):
         # get the right adapter or context
         context = self.context
         if self.field.interface is not None:
             context = self.field.interface(context)
-        return getattr(context, self.field.__name__)
+        return context
 
+    def get(self):
+        """See z3c.form.interfaces.IDataManager"""
+        return getattr(self.adapted_context, self.field.__name__)
+
     def query(self, default=interfaces.NO_VALUE):
         """See z3c.form.interfaces.IDataManager"""
         try:
@@ -68,25 +72,18 @@
                                self.context.__class__.__module__,
                                self.context.__class__.__name__))
         # get the right adapter or context
-        context = self.context
-        if self.field.interface is not None:
-            context = self.field.interface(context)
-        setattr(context, self.field.__name__, value)
+        setattr(self.adapted_context, self.field.__name__, value)
 
     def canAccess(self):
         """See z3c.form.interfaces.IDataManager"""
-        context = self.context
-        if self.field.interface is not None:
-            context = self.field.interface(context)
+        context = self.adapted_context
         if isinstance(context, Proxy):
             return canAccess(context, self.field.__name__)
         return True
 
     def canWrite(self):
         """See z3c.form.interfaces.IDataManager"""
-        context = self.context
-        if self.field.interface is not None:
-            context = self.field.interface(context)
+        context = self.adapted_context
         if isinstance(context, Proxy):
             return canWrite(context, self.field.__name__)
         return True



More information about the checkins mailing list