14 |
14 |
15 AFFK = uicfg.autoform_field_kwargs |
15 AFFK = uicfg.autoform_field_kwargs |
16 AFS = uicfg.autoform_section |
16 AFS = uicfg.autoform_section |
17 |
17 |
18 def rbc(entity, formtype, section): |
18 def rbc(entity, formtype, section): |
19 return [(rschema.type, x) for rschema, tschemas, x in AFS.relations_by_section(entity, formtype, section)] |
19 if section in ('attributes', 'metadata', 'hidden'): |
|
20 permission = 'update' |
|
21 else: |
|
22 permission = 'add' |
|
23 return [(rschema.type, x) for rschema, tschemas, x in AFS.relations_by_section(entity, formtype, section, permission)] |
20 |
24 |
21 class AutomaticEntityFormTC(CubicWebTC): |
25 class AutomaticEntityFormTC(CubicWebTC): |
22 |
26 |
23 def test_custom_widget(self): |
27 def test_custom_widget(self): |
24 AFFK.tag_subject_of(('CWUser', 'login', '*'), |
28 AFFK.tag_subject_of(('CWUser', 'login', '*'), |
67 ]) |
71 ]) |
68 self.assertListEquals(rbc(e, 'main', 'inlined'), |
72 self.assertListEquals(rbc(e, 'main', 'inlined'), |
69 [('use_email', 'subject'), |
73 [('use_email', 'subject'), |
70 ]) |
74 ]) |
71 # owned_by is defined both as subject and object relations on CWUser |
75 # owned_by is defined both as subject and object relations on CWUser |
72 self.assertListEquals(rbc(e, 'main', 'hidden'), |
76 self.assertListEquals(sorted(rbc(e, 'main', 'hidden')), |
73 [('in_state', 'subject'), |
77 sorted([('has_text', 'subject'), |
74 ('is', 'subject'), |
78 ('identity', 'subject'), |
75 ('is_instance_of', 'subject'), |
79 ('tags', 'object'), |
76 ('has_text', 'subject'), |
80 ('for_user', 'object'), |
77 ('identity', 'subject'), |
81 ('created_by', 'object'), |
78 ('tags', 'object'), |
82 ('wf_info_for', 'object'), |
79 ('for_user', 'object'), |
83 ('owned_by', 'object'), |
80 ('created_by', 'object'), |
84 ('identity', 'object'), |
81 ('wf_info_for', 'object'), |
85 ])) |
82 ('owned_by', 'object'), |
|
83 ('identity', 'object'), |
|
84 ]) |
|
85 |
86 |
86 def test_inlined_view(self): |
87 def test_inlined_view(self): |
87 self.failUnless('main_inlined' in AFS.etype_get('CWUser', 'use_email', 'subject', 'EmailAddress')) |
88 self.failUnless('main_inlined' in AFS.etype_get('CWUser', 'use_email', 'subject', 'EmailAddress')) |
88 self.failIf('main_inlined' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress')) |
89 self.failIf('main_inlined' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress')) |
89 self.failUnless('main_relations' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress')) |
90 self.failUnless('main_relations' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress')) |
120 self.assertListEquals(rbc(e, 'main', 'relations'), |
121 self.assertListEquals(rbc(e, 'main', 'relations'), |
121 [('travaille', 'subject'), |
122 [('travaille', 'subject'), |
122 ('connait', 'object') |
123 ('connait', 'object') |
123 ]) |
124 ]) |
124 self.assertListEquals(rbc(e, 'main', 'hidden'), |
125 self.assertListEquals(rbc(e, 'main', 'hidden'), |
125 [('is', 'subject'), |
126 [('has_text', 'subject'), |
126 ('has_text', 'subject'), |
|
127 ('identity', 'subject'), |
127 ('identity', 'subject'), |
128 ('is_instance_of', 'subject'), |
|
129 ('identity', 'object'), |
128 ('identity', 'object'), |
130 ]) |
129 ]) |
131 |
130 |
132 def test_edition_form(self): |
131 def test_edition_form(self): |
133 rset = self.execute('CWUser X LIMIT 1') |
132 rset = self.execute('CWUser X LIMIT 1') |