schema.py
changeset 5558 afd1face1faf
parent 5531 0ce62ac0d1d7
child 5707 3586d36d2a45
--- a/schema.py	Thu May 20 20:50:00 2010 +0200
+++ b/schema.py	Thu May 20 20:50:03 2010 +0200
@@ -568,7 +568,14 @@
         rdef.name = rdef.name.lower()
         rdef.subject = bw_normalize_etype(rdef.subject)
         rdef.object = bw_normalize_etype(rdef.object)
-        rdefs = super(CubicWebSchema, self).add_relation_def(rdef)
+        try:
+            rdefs = super(CubicWebSchema, self).add_relation_def(rdef)
+        except BadSchemaDefinition:
+            reversed_etype_map = dict( (v, k) for k, v in ETYPE_NAME_MAP.iteritems() )
+            if rdef.subject in reversed_etype_map or rdef.object in reversed_etype_map:
+                self.warning('huuuu')
+                return
+            raise
         if rdefs:
             try:
                 self._eid_index[rdef.eid] = rdefs