152 rcategories = RelationTags() |
152 rcategories = RelationTags() |
153 # use primary and not generated for eid since it has to be an hidden |
153 # use primary and not generated for eid since it has to be an hidden |
154 rcategories.set_rtag('primary', 'subject', 'eid') |
154 rcategories.set_rtag('primary', 'subject', 'eid') |
155 rcategories.set_rtag('metadata', 'subject', 'creation_date') |
155 rcategories.set_rtag('metadata', 'subject', 'creation_date') |
156 rcategories.set_rtag('metadata', 'subject', 'modification_date') |
156 rcategories.set_rtag('metadata', 'subject', 'modification_date') |
157 rcategories.set_rtag('generated', 'subject', 'has_text') |
157 rcategories.set_rtag('generated', 'subject', 'has_text') |
|
158 rcategories.set_rtag('metadata', 'owned_by', 'subject') |
|
159 rcategories.set_rtag('metadata', 'created_by', 'subject') |
|
160 rcategories.set_rtag('generated', 'is', 'subject') |
|
161 rcategories.set_rtag('generated', 'is', 'object') |
|
162 rcategories.set_rtag('generated', 'is_instance_of', 'subject') |
|
163 rcategories.set_rtag('generated', 'is_instance_of', 'object') |
|
164 rcategories.set_rtag('generated', 'identity', 'subject') |
|
165 rcategories.set_rtag('generated', 'identity', 'object') |
|
166 rcategories.set_rtag('generated', 'require_permission', 'subject') |
|
167 rcategories.set_rtag('primary', 'in_state', 'subject') |
|
168 rcategories.set_rtag('generated', 'wf_info_for', 'subject') |
|
169 rcategories.set_rtag('generated', 'wf_info_for', 'subject') |
|
170 rcategories.set_rtag('secondary', 'description', 'subject') |
158 |
171 |
159 # relations'widget (eg one of available class name in cubicweb.web.formwidgets) |
172 # relations'widget (eg one of available class name in cubicweb.web.formwidgets) |
160 rwidgets = RelationTags() |
173 rwidgets = RelationTags() |
161 # inlined view flag for non final relations |
174 # inlined view flag for non final relations |
162 inlined = RelationTags() |
175 rinlined = RelationTags() |
163 # set of tags of the form <action>_on_new on relations. <action> is a |
176 # set of tags of the form <action>_on_new on relations. <action> is a |
164 # schema action (add/update/delete/read), and when such a tag is found |
177 # schema action (add/update/delete/read), and when such a tag is found |
165 # permissions checking is by-passed and supposed to be ok |
178 # permissions checking is by-passed and supposed to be ok |
166 rpermissions_overrides = RelationTags(use_set=True) |
179 rpermissions_overrides = RelationTags(use_set=True) |
167 |
180 |
323 - status 'pendingdelete' or '' |
336 - status 'pendingdelete' or '' |
324 - oneline view of related entity |
337 - oneline view of related entity |
325 """ |
338 """ |
326 entity = self.edited_entity |
339 entity = self.edited_entity |
327 pending_deletes = self.req.get_pending_deletes(entity.eid) |
340 pending_deletes = self.req.get_pending_deletes(entity.eid) |
328 # XXX add metadata category quick fix to get Folder relations |
341 for label, rschema, role in self.srelations_by_category('generic'), 'add'): |
329 for label, rschema, role in self.srelations_by_category(('generic', 'metadata'), 'add'): |
|
330 relatedrset = entity.related(rschema, role, limit=self.limit) |
342 relatedrset = entity.related(rschema, role, limit=self.limit) |
331 if rschema.has_perm(self.req, 'delete'): |
343 if rschema.has_perm(self.req, 'delete'): |
332 toggable_rel_link_func = toggable_relation_link |
344 toggable_rel_link_func = toggable_relation_link |
333 else: |
345 else: |
334 toggable_rel_link_func = lambda x, y, z: u'' |
346 toggable_rel_link_func = lambda x, y, z: u'' |
375 |
387 |
376 def should_inline_relation_form(self, rschema, targettype, role): |
388 def should_inline_relation_form(self, rschema, targettype, role): |
377 """return true if the given relation with entity has role and a |
389 """return true if the given relation with entity has role and a |
378 targettype target should be inlined |
390 targettype target should be inlined |
379 """ |
391 """ |
380 return self.inlined.etype_rtag(self.edited_entity.id, role, rschema, targettype) |
392 return self.rinlined.etype_rtag(self.edited_entity.id, role, rschema, targettype) |
381 |
393 |
382 def should_display_inline_creation_form(self, rschema, existant, card): |
394 def should_display_inline_creation_form(self, rschema, existant, card): |
383 """return true if a creation form should be inlined |
395 """return true if a creation form should be inlined |
384 |
396 |
385 by default true if there is no related entity and we need at least one |
397 by default true if there is no related entity and we need at least one |