entity.py
changeset 9820 3ad221fe04aa
parent 9774 b7b71be569cf
child 9978 8f4b15e5b300
equal deleted inserted replaced
9817:bb719d857421 9820:3ad221fe04aa
     1 # copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     1 # copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 #
     3 #
     4 # This file is part of CubicWeb.
     4 # This file is part of CubicWeb.
     5 #
     5 #
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
   342                 rschema = eschema.subjrels[attr]
   342                 rschema = eschema.subjrels[attr]
   343             except KeyError:
   343             except KeyError:
   344                 cls.warning('skipping fetch_attr %s defined in %s (not found in schema)',
   344                 cls.warning('skipping fetch_attr %s defined in %s (not found in schema)',
   345                             attr, cls.__regid__)
   345                             attr, cls.__regid__)
   346                 continue
   346                 continue
   347             rdef = eschema.rdef(attr)
   347             # XXX takefirst=True to remove warning triggered by ambiguous inlined relations
       
   348             rdef = eschema.rdef(attr, takefirst=True)
   348             if not user.matching_groups(rdef.get_groups('read')):
   349             if not user.matching_groups(rdef.get_groups('read')):
   349                 continue
   350                 continue
   350             if rschema.final or rdef.cardinality[0] in '?1':
   351             if rschema.final or rdef.cardinality[0] in '?1':
   351                 var = select.make_variable()
   352                 var = select.make_variable()
   352                 select.add_selected(var)
   353                 select.add_selected(var)
   791             if rschema.final or rschema.meta:
   792             if rschema.final or rschema.meta:
   792                 continue
   793                 continue
   793             # skip already defined relations
   794             # skip already defined relations
   794             if getattr(self, rschema.type):
   795             if getattr(self, rschema.type):
   795                 continue
   796                 continue
       
   797             # XXX takefirst=True to remove warning triggered by ambiguous relations
       
   798             rdef = self.e_schema.rdef(rschema, takefirst=True)
   796             # skip composite relation
   799             # skip composite relation
   797             rdef = self.e_schema.rdef(rschema)
       
   798             if rdef.composite:
   800             if rdef.composite:
   799                 continue
   801                 continue
   800             # skip relation with card in ?1 else we either change the copied
   802             # skip relation with card in ?1 else we either change the copied
   801             # object (inlined relation) or inserting some inconsistency
   803             # object (inlined relation) or inserting some inconsistency
   802             if rdef.cardinality[1] in '?1':
   804             if rdef.cardinality[1] in '?1':
   811             # skip already defined relations
   813             # skip already defined relations
   812             if self.related(rschema.type, 'object'):
   814             if self.related(rschema.type, 'object'):
   813                 continue
   815                 continue
   814             if rschema.type in skip_copy_for['object']:
   816             if rschema.type in skip_copy_for['object']:
   815                 continue
   817                 continue
   816             rdef = self.e_schema.rdef(rschema, 'object')
   818             # XXX takefirst=True to remove warning triggered by ambiguous relations
       
   819             rdef = self.e_schema.rdef(rschema, 'object', takefirst=True)
   817             # skip composite relation
   820             # skip composite relation
   818             if rdef.composite:
   821             if rdef.composite:
   819                 continue
   822                 continue
   820             # skip relation with card in ?1 else we either change the copied
   823             # skip relation with card in ?1 else we either change the copied
   821             # object (inlined relation) or inserting some inconsistency
   824             # object (inlined relation) or inserting some inconsistency