143 if display_attributes: |
143 if display_attributes: |
144 self.w(u'<table>') |
144 self.w(u'<table>') |
145 for rschema, role, dispctrl, value in display_attributes: |
145 for rschema, role, dispctrl, value in display_attributes: |
146 if support_args(self._render_attribute, 'label'): |
146 if support_args(self._render_attribute, 'label'): |
147 label = self._rel_label(entity, rschema, role, dispctrl) |
147 label = self._rel_label(entity, rschema, role, dispctrl) |
148 self._render_attribute(label, value, table=True) |
148 self.render_attribute(label, value, table=True) |
149 elif support_args(self._render_attribute, 'dispctrl'): |
149 elif support_args(self._render_attribute, 'dispctrl'): |
150 warn('[3.10] _render_attribute prototype has changed, please' |
150 warn('[3.9] _render_attribute prototype has changed and ' |
151 ' update %s' % self.__class___, DeprecationWarning) |
151 'renamed to render_attribute, please update %s' |
|
152 % self.__class___, DeprecationWarning) |
152 self._render_attribute(dispctrl, rschema, value, role=role, |
153 self._render_attribute(dispctrl, rschema, value, role=role, |
153 table=True) |
154 table=True) |
154 else: |
155 else: |
155 warn('[3.6] _render_attribute prototype has changed, please' |
|
156 ' update %s' % self.__class___, DeprecationWarning) |
|
157 self._render_attribute(rschema, value, role=role, table=True) |
156 self._render_attribute(rschema, value, role=role, table=True) |
|
157 warn('[3.6] _render_attribute prototype has changed and ' |
|
158 'renamed to render_attribute, please update %s' |
|
159 % self.__class___, DeprecationWarning) |
158 self.w(u'</table>') |
160 self.w(u'</table>') |
|
161 |
|
162 def render_attribute(self, label, value, table=False): |
|
163 self.field(label, value, tr=False, table=table) |
159 |
164 |
160 def render_entity_relations(self, entity): |
165 def render_entity_relations(self, entity): |
161 for rschema, tschemas, role, dispctrl in self._section_def(entity, 'relations'): |
166 for rschema, tschemas, role, dispctrl in self._section_def(entity, 'relations'): |
162 if rschema.final or dispctrl.get('rtypevid'): |
167 if rschema.final or dispctrl.get('rtypevid'): |
163 vid = dispctrl.get('vid', 'reledit') |
168 vid = dispctrl.get('vid', 'reledit') |
164 try: |
169 try: |
165 rview = self._cw.vreg['views'].select( |
170 rview = self._cw.vreg['views'].select( |
166 vid, self._cw, rset=entity.cw_rset, row=entity.cw_row, |
171 vid, self._cw, rset=entity.cw_rset, row=entity.cw_row, |
167 col=entity.cw_col, dispctrl=dispctrl, rtype=rschema, role=role) |
172 col=entity.cw_col, dispctrl=dispctrl, |
|
173 rtype=rschema, role=role) |
168 except NoSelectableObject: |
174 except NoSelectableObject: |
169 continue |
175 continue |
170 self.w(u'<div class="section">') |
176 value = rview.render(row=entity.cw_row, col=entity.cw_col, |
171 label = self._rel_label(entity, rschema, role, dispctrl) |
177 rtype=rschema.type, role=role) |
172 if label: |
178 else: |
173 self.w(u'<h4>%s</h4>' % label) |
179 rset = self._relation_rset(entity, rschema, role, dispctrl) |
174 rview.render(row=entity.cw_row, col=entity.cw_col, w=self.w, |
180 if not rset: |
175 rtype=rschema.type, role=role) |
181 continue |
176 self.w(u'</div>') |
182 if hasattr(self, '_render_relation'): |
177 continue |
183 if not support_args(self._render_relation, 'showlabel'): |
178 rset = self._relation_rset(entity, rschema, role, dispctrl) |
184 self._render_relation(dispctrl, rset, 'autolimited') |
179 if rset: |
185 warn('[3.9] _render_relation prototype has changed and has ' |
180 if support_args(self._render_relation, 'label'): |
186 'been renamed to render_relation, please update %s' |
181 label = self._rel_label(entity, rschema, role, dispctrl) |
187 % self.__class__, DeprecationWarning) |
182 self._render_relation(label, dispctrl, rset, 'autolimited') |
188 else: |
183 elif not support_args(self._render_relation, 'showlabel'): |
189 self._render_relation(rset, dispctrl, 'autolimited', |
184 warn('[3.10] _render_relation prototype has changed, ' |
190 self.show_rel_label) |
185 'please update %s' % self.__class__, DeprecationWarning) |
191 warn('[3.6] _render_relation prototype has changed and has ' |
186 self._render_relation(dispctrl, rset, 'autolimited') |
192 'been renamed to render_relation, please update %s' |
187 else: |
193 % self.__class__, DeprecationWarning) |
188 warn('[3.6] _render_relation prototype has changed, ' |
194 continue |
189 'please update %s' % self.__class__, DeprecationWarning) |
195 vid = dispctrl.get('vid', 'autolimited') |
190 self._render_relation(rset, dispctrl, 'autolimited', |
196 try: |
191 self.show_rel_label) |
197 rview = self._cw.vreg['views'].select( |
|
198 vid, self._cw, rset=rset, dispctrl=dispctrl) |
|
199 except NoSelectableObject: |
|
200 continue |
|
201 value = rview.render() |
|
202 label = self._rel_label(entity, rschema, role, dispctrl) |
|
203 self.render_relation(label, value) |
|
204 |
|
205 def render_relation(self, label, value): |
|
206 self.w(u'<div class="section">') |
|
207 if label: |
|
208 self.w(u'<h4>%s</h4>' % label) |
|
209 self.w(value) |
|
210 self.w(u'</div>') |
192 |
211 |
193 def render_side_boxes(self, boxes): |
212 def render_side_boxes(self, boxes): |
194 """display side related relations: |
213 """display side related relations: |
195 non-meta in a first step, meta in a second step |
214 non-meta in a first step, meta in a second step |
196 """ |
215 """ |