[Checkins] SVN: lovely.relation/trunk/ Remove proxies before storing relations in data relations

Juergen Kartnaller juergen at kartnaller.at
Fri Sep 21 11:29:27 EDT 2007


Log message for revision 79797:
  Remove proxies before storing relations in data relations
  

Changed:
  U   lovely.relation/trunk/CHANGES.txt
  U   lovely.relation/trunk/setup.py
  U   lovely.relation/trunk/src/lovely/relation/dataproperty.py

-=-
Modified: lovely.relation/trunk/CHANGES.txt
===================================================================
--- lovely.relation/trunk/CHANGES.txt	2007-09-21 13:10:37 UTC (rev 79796)
+++ lovely.relation/trunk/CHANGES.txt	2007-09-21 15:29:27 UTC (rev 79797)
@@ -5,6 +5,12 @@
 After
 =====
 
+2007/09/21 1.1.0a4
+==================
+
+- remove proxies before storing relations in data relations
+
+
 2007/09/17 1.1.0a3
 ==================
 

Modified: lovely.relation/trunk/setup.py
===================================================================
--- lovely.relation/trunk/setup.py	2007-09-21 13:10:37 UTC (rev 79796)
+++ lovely.relation/trunk/setup.py	2007-09-21 15:29:27 UTC (rev 79797)
@@ -21,7 +21,7 @@
 from setuptools import setup, find_packages, Extension
 
 setup(name='lovely.relation',
-      version='1.1.0a3',
+      version='1.1.0a4',
       url='http://svn.zope.org/lovely.relation',
       license='ZPL 2.1',
       description='Lovely Relation Packages for Zope3',

Modified: lovely.relation/trunk/src/lovely/relation/dataproperty.py
===================================================================
--- lovely.relation/trunk/src/lovely/relation/dataproperty.py	2007-09-21 13:10:37 UTC (rev 79796)
+++ lovely.relation/trunk/src/lovely/relation/dataproperty.py	2007-09-21 15:29:27 UTC (rev 79797)
@@ -20,6 +20,7 @@
 
 from zope import interface
 
+from zope.proxy import removeAllProxies
 from zope.annotation.interfaces import IAttributeAnnotatable
 
 from app import O2OStringTypeRelationship
@@ -57,6 +58,7 @@
     def __set__(self, inst, value):
         if self._field.readonly:
             raise ValueError(self._name, 'field is readonly')
+        value = removeAllProxies(value)
         if value is None:
             v = None
         elif not self._manager.seqOut:
@@ -69,10 +71,10 @@
             if v.relations == []:
                 v.relations = [self._relType]
         else:
-            v = value
+            v = [removeAllProxies(v) for v in value]
             for val in v:
                 if not IDataRelationship.providedBy(val):
-                    raise TypeError
+                    raise TypeError('%s'% val)
                 if val.target is None:
                     raise ValueError('target for data relation must not be None')
             for val in v:



More information about the Checkins mailing list