236 |
236 |
237 def fill_menu(self, box, menu): |
237 def fill_menu(self, box, menu): |
238 # when there is only one item in the sub-menu, replace the sub-menu by |
238 # when there is only one item in the sub-menu, replace the sub-menu by |
239 # item's title prefixed by 'add' |
239 # item's title prefixed by 'add' |
240 menu.label_prefix = self.req._('add') |
240 menu.label_prefix = self.req._('add') |
|
241 super(AddRelatedActions, self).fill_menu(box, menu) |
|
242 |
|
243 def actual_actions(self): |
241 entity = self.rset.get_entity(self.row or 0, self.col or 0) |
244 entity = self.rset.get_entity(self.row or 0, self.col or 0) |
242 user = self.req.user |
|
243 actions = [] |
|
244 _ = self.req._ |
|
245 eschema = entity.e_schema |
245 eschema = entity.e_schema |
246 for rschema, teschema, x in self.add_related_schemas(entity): |
246 for rschema, teschema, x in self.add_related_schemas(entity): |
247 if x == 'subject': |
247 if x == 'subject': |
248 label = 'add %s %s %s %s' % (eschema, rschema, teschema, x) |
248 label = 'add %s %s %s %s' % (eschema, rschema, teschema, x) |
249 url = self.linkto_url(entity, rschema, teschema, 'object') |
249 url = self.linkto_url(entity, rschema, teschema, 'object') |
250 else: |
250 else: |
251 label = 'add %s %s %s %s' % (teschema, rschema, eschema, x) |
251 label = 'add %s %s %s %s' % (teschema, rschema, eschema, x) |
252 url = self.linkto_url(entity, rschema, teschema, 'subject') |
252 url = self.linkto_url(entity, rschema, teschema, 'subject') |
253 menu.append(box.mk_action(_(label), url)) |
253 yield self.build_action(self.req._(label), url) |
254 |
254 |
255 def add_related_schemas(self, entity): |
255 def add_related_schemas(self, entity): |
256 """this is actually used ui method to generate 'addrelated' actions from |
256 """this is actually used ui method to generate 'addrelated' actions from |
257 the schema. |
257 the schema. |
258 |
258 |