entities/__init__.py
changeset 3369 7b88d12b4ee2
parent 2819 b864288fd316
parent 3348 97dca770c028
child 3377 dd9d292b6a6d
equal deleted inserted replaced
3300:c7c4775a5619 3369:7b88d12b4ee2
   148             return self.printable_value(rtype, format='text/plain').lower()
   148             return self.printable_value(rtype, format='text/plain').lower()
   149         return value
   149         return value
   150 
   150 
   151     # edition helper functions ################################################
   151     # edition helper functions ################################################
   152 
   152 
   153     def linked_to(self, rtype, target, remove=True):
   153     def linked_to(self, rtype, role, remove=True):
   154         """if entity should be linked to another using __linkto form param for
   154         """if entity should be linked to another using __linkto form param for
   155         the given relation/target, return eids of related entities
   155         the given relation/role, return eids of related entities
   156 
   156 
   157         This method is consuming matching link-to information from form params
   157         This method is consuming matching link-to information from form params
   158         if `remove` is True (by default).
   158         if `remove` is True (by default).
   159         """
   159         """
   160         try:
   160         try:
   161             return self.__linkto[(rtype, target)]
   161             return self.__linkto[(rtype, role)]
   162         except AttributeError:
   162         except AttributeError:
   163             self.__linkto = {}
   163             self.__linkto = {}
   164         except KeyError:
   164         except KeyError:
   165             pass
   165             pass
   166         linktos = list(self.req.list_form_param('__linkto'))
   166         linktos = list(self.req.list_form_param('__linkto'))
   167         linkedto = []
   167         linkedto = []
   168         for linkto in linktos[:]:
   168         for linkto in linktos[:]:
   169             ltrtype, eid, lttarget = linkto.split(':')
   169             ltrtype, eid, ltrole = linkto.split(':')
   170             if rtype == ltrtype and target == lttarget:
   170             if rtype == ltrtype and role == ltrole:
   171                 # delete __linkto from form param to avoid it being added as
   171                 # delete __linkto from form param to avoid it being added as
   172                 # hidden input
   172                 # hidden input
   173                 if remove:
   173                 if remove:
   174                     linktos.remove(linkto)
   174                     linktos.remove(linkto)
   175                     self.req.form['__linkto'] = linktos
   175                     self.req.form['__linkto'] = linktos
   176                 linkedto.append(typed_eid(eid))
   176                 linkedto.append(typed_eid(eid))
   177         self.__linkto[(rtype, target)] = linkedto
   177         self.__linkto[(rtype, role)] = linkedto
   178         return linkedto
   178         return linkedto
   179 
   179 
   180     # edit controller callbacks ###############################################
   180     # edit controller callbacks ###############################################
   181 
   181 
   182     def after_deletion_path(self):
   182     def after_deletion_path(self):