web/views/actions.py
changeset 5527 01a7228ab5a0
parent 5483 1a30c5a56256
parent 5521 4c53a0cb186c
child 5752 b0bb553e3be4
equal deleted inserted replaced
5511:c035a0fe75d8 5527:01a7228ab5a0
   262         super(AddRelatedActions, self).fill_menu(box, menu)
   262         super(AddRelatedActions, self).fill_menu(box, menu)
   263 
   263 
   264     def actual_actions(self):
   264     def actual_actions(self):
   265         entity = self.cw_rset.get_entity(self.cw_row or 0, self.cw_col or 0)
   265         entity = self.cw_rset.get_entity(self.cw_row or 0, self.cw_col or 0)
   266         eschema = entity.e_schema
   266         eschema = entity.e_schema
   267         for rschema, teschema, x in self.add_related_schemas(entity):
   267         for rschema, teschema, role in self.add_related_schemas(entity):
   268             if x == 'subject':
   268             if rschema.role_rdef(eschema, teschema, role).role_cardinality(role) in '1?':
   269                 label = 'add %s %s %s %s' % (eschema, rschema, teschema, x)
   269                 if entity.related(rschema, role):
       
   270                     continue
       
   271             if role == 'subject':
       
   272                 label = 'add %s %s %s %s' % (eschema, rschema, teschema, role)
   270                 url = self.linkto_url(entity, rschema, teschema, 'object')
   273                 url = self.linkto_url(entity, rschema, teschema, 'object')
   271             else:
   274             else:
   272                 label = 'add %s %s %s %s' % (teschema, rschema, eschema, x)
   275                 label = 'add %s %s %s %s' % (teschema, rschema, eschema, role)
   273                 url = self.linkto_url(entity, rschema, teschema, 'subject')
   276                 url = self.linkto_url(entity, rschema, teschema, 'subject')
   274             yield self.build_action(self._cw._(label), url)
   277             yield self.build_action(self._cw._(label), url)
   275 
   278 
   276     def add_related_schemas(self, entity):
   279     def add_related_schemas(self, entity):
   277         """this is actually used ui method to generate 'addrelated' actions from
   280         """this is actually used ui method to generate 'addrelated' actions from