web/views/editforms.py
branchtls-sprint
changeset 1291 22b4d300d18d
parent 1286 cb68c8af3858
child 1296 05579925d66e
equal deleted inserted replaced
1290:824f695ab344 1291:22b4d300d18d
   182                         else: 
   182                         else: 
   183                             category = 'generic'
   183                             category = 'generic'
   184                         cls.rcategories.set_rtag(category, rschema, role, X, Y)
   184                         cls.rcategories.set_rtag(category, rschema, role, X, Y)
   185 
   185 
   186     @classmethod
   186     @classmethod
   187     def erelations_by_category(cls, entity, categories=None, permission=None):
   187     def erelations_by_category(cls, entity, categories=None, permission=None, rtags=None):
   188         """return a list of (relation schema, target schemas, role) matching
   188         """return a list of (relation schema, target schemas, role) matching
   189         categories and permission
   189         categories and permission
   190         """
   190         """
   191         if categories is not None:
   191         if categories is not None:
   192             if not isinstance(categories, (list, tuple, set, frozenset)):
   192             if not isinstance(categories, (list, tuple, set, frozenset)):
   193                 categories = (categories,)
   193                 categories = (categories,)
   194             if not isinstance(categories, (set, frozenset)):
   194             if not isinstance(categories, (set, frozenset)):
   195                 categories = frozenset(categories)
   195                 categories = frozenset(categories)
   196         eschema  = entity.e_schema
   196         eschema  = entity.e_schema
   197         rtags = cls.rcategories
   197         if rtags is None:
       
   198             rtags = cls.rcategories
   198         permsoverrides = cls.rpermissions_overrides
   199         permsoverrides = cls.rpermissions_overrides
   199         if entity.has_eid():
   200         if entity.has_eid():
   200             eid = entity.eid
   201             eid = entity.eid
   201         else:
   202         else:
   202             eid = None
   203             eid = None
   305         given category(ies) and permission
   306         given category(ies) and permission
   306         """
   307         """
   307         return self.erelations_by_category(self.edited_entity, categories,
   308         return self.erelations_by_category(self.edited_entity, categories,
   308                                            permission)
   309                                            permission)
   309     
   310     
       
   311     def inlined_relations(self):
       
   312         """return a list of (relation schema, target schemas, role) matching
       
   313         given category(ies) and permission
       
   314         """
       
   315         # we'll need an initialized varmaker if there are some inlined relation
       
   316         self.initialize_varmaker()
       
   317         return self.erelations_by_category(self.edited_entity, True, 'add', self.rinlined)
       
   318     
   310     def srelations_by_category(self, categories=None, permission=None):
   319     def srelations_by_category(self, categories=None, permission=None):
   311         """filter out result of relations_by_category(categories, permission) by
   320         """filter out result of relations_by_category(categories, permission) by
   312         removing final relations
   321         removing final relations
   313 
   322 
   314         return a sorted list of (relation's label, relation'schema, role) 
   323         return a sorted list of (relation's label, relation'schema, role)