57 _ = req._ |
57 _ = req._ |
58 w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n' |
58 w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n' |
59 % _('this action is not reversible!')) |
59 % _('this action is not reversible!')) |
60 # XXX above message should have style of a warning |
60 # XXX above message should have style of a warning |
61 w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?')) |
61 w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?')) |
62 form = self.vreg.select_object('forms', 'composite', req, domid='deleteconf', |
62 form = self.vreg.select('forms', 'composite', req, domid='deleteconf', |
63 copy_nav_params=True, |
63 copy_nav_params=True, |
64 action=self.build_url('edit'), onsubmit=onsubmit, |
64 action=self.build_url('edit'), onsubmit=onsubmit, |
65 form_buttons=[Button(stdmsgs.YES, cwaction='delete'), |
65 form_buttons=[Button(stdmsgs.YES, cwaction='delete'), |
66 Button(stdmsgs.NO, cwaction='cancel')]) |
66 Button(stdmsgs.NO, cwaction='cancel')]) |
67 done = set() |
67 done = set() |
68 w(u'<ul>\n') |
68 w(u'<ul>\n') |
69 for entity in self.rset.entities(): |
69 for entity in self.rset.entities(): |
70 if entity.eid in done: |
70 if entity.eid in done: |
71 continue |
71 continue |
72 done.add(entity.eid) |
72 done.add(entity.eid) |
73 subform = self.vreg.select_object('forms', 'base', req, entity=entity, |
73 subform = self.vreg.select('forms', 'base', req, entity=entity, |
74 mainform=False) |
74 mainform=False) |
75 form.form_add_subform(subform) |
75 form.form_add_subform(subform) |
76 # don't use outofcontext view or any other that may contain inline edition form |
76 # don't use outofcontext view or any other that may contain inline edition form |
77 w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'), |
77 w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'), |
78 href=entity.absolute_url())) |
78 href=entity.absolute_url())) |
79 w(u'</ul>\n') |
79 w(u'</ul>\n') |
117 form = self._build_attribute_form(entity, value, rtype, role, |
117 form = self._build_attribute_form(entity, value, rtype, role, |
118 reload, row, col, default) |
118 reload, row, col, default) |
119 else: |
119 else: |
120 form = self._build_relation_form(entity, value, rtype, role, |
120 form = self._build_relation_form(entity, value, rtype, role, |
121 row, col, vid, default) |
121 row, col, vid, default) |
122 renderer = self.vreg.select_object('formrenderers', 'base', self.req, |
122 renderer = self.vreg.select('formrenderers', 'base', self.req, |
123 entity=entity, |
123 entity=entity, |
124 display_label=False, display_help=False, |
124 display_label=False, display_help=False, |
125 display_fields=[(rtype, role)], |
125 display_fields=[(rtype, role)], |
126 table_class='', button_bar_class='buttonbar', |
126 table_class='', button_bar_class='buttonbar', |
127 display_progress_div=False) |
127 display_progress_div=False) |
128 self.w(form.form_render(renderer=renderer)) |
128 self.w(form.form_render(renderer=renderer)) |
129 |
129 |
130 def _build_relation_form(self, entity, value, rtype, role, row, col, vid, default): |
130 def _build_relation_form(self, entity, value, rtype, role, row, col, vid, default): |
131 entity = self.entity(row, col) |
131 entity = self.entity(row, col) |
132 divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid)) |
132 divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid)) |
135 onsubmit = ("return inlineValidateRelationForm('%(divid)s-form', '%(rtype)s', " |
135 onsubmit = ("return inlineValidateRelationForm('%(divid)s-form', '%(rtype)s', " |
136 "'%(role)s', '%(eid)s', '%(divid)s', '%(vid)s', '%(default)s');" |
136 "'%(role)s', '%(eid)s', '%(divid)s', '%(vid)s', '%(default)s');" |
137 % event_data) |
137 % event_data) |
138 cancelclick = "cancelInlineEdit(%s,\'%s\',\'%s\')" % ( |
138 cancelclick = "cancelInlineEdit(%s,\'%s\',\'%s\')" % ( |
139 entity.eid, rtype, divid) |
139 entity.eid, rtype, divid) |
140 form = self.vreg.select_object('forms', 'base', self.req, entity=entity, |
140 form = self.vreg.select('forms', 'base', self.req, entity=entity, |
141 domid='%s-form' % divid, cssstyle='display: none', |
141 domid='%s-form' % divid, cssstyle='display: none', |
142 onsubmit=onsubmit, action='#', |
142 onsubmit=onsubmit, action='#', |
143 form_buttons=[SubmitButton(), |
143 form_buttons=[SubmitButton(), |
144 Button(stdmsgs.BUTTON_CANCEL, |
144 Button(stdmsgs.BUTTON_CANCEL, |
145 onclick=cancelclick)]) |
145 onclick=cancelclick)]) |
146 form.append_field(RelationField(name=rtype, role=role, sort=True, |
146 form.append_field(RelationField(name=rtype, role=role, sort=True, |
147 widget=Select(), |
147 widget=Select(), |
148 label=u' ')) |
148 label=u' ')) |
149 self.w(tags.div(value, klass='editableField', id=divid, |
149 self.w(tags.div(value, klass='editableField', id=divid, |
150 ondblclick=self.ondblclick % event_data)) |
150 ondblclick=self.ondblclick % event_data)) |
157 'reload' : dumps(reload), 'default' : default} |
157 'reload' : dumps(reload), 'default' : default} |
158 buttons = [SubmitButton(stdmsgs.BUTTON_OK), |
158 buttons = [SubmitButton(stdmsgs.BUTTON_OK), |
159 Button(stdmsgs.BUTTON_CANCEL, |
159 Button(stdmsgs.BUTTON_CANCEL, |
160 onclick="cancelInlineEdit(%s,\'%s\',\'%s\')" % ( |
160 onclick="cancelInlineEdit(%s,\'%s\',\'%s\')" % ( |
161 eid, rtype, divid))] |
161 eid, rtype, divid))] |
162 form = self.vreg.select_object('forms', 'edition', self.req, self.rset, |
162 form = self.vreg.select('forms', 'edition', self.req, rset=self.rset, |
163 row=row, col=col, form_buttons=buttons, |
163 row=row, col=col, form_buttons=buttons, |
164 domid='%s-form' % divid, action='#', |
164 domid='%s-form' % divid, action='#', |
165 cssstyle='display: none', |
165 cssstyle='display: none', |
166 onsubmit=self.onsubmit % event_data) |
166 onsubmit=self.onsubmit % event_data) |
167 self.w(tags.div(value, klass='editableField', id=divid, |
167 self.w(tags.div(value, klass='editableField', id=divid, |
168 ondblclick=self.ondblclick % event_data)) |
168 ondblclick=self.ondblclick % event_data)) |
169 return form |
169 return form |
170 |
170 |
171 |
171 |
183 self.render_form(entity) |
183 self.render_form(entity) |
184 |
184 |
185 def render_form(self, entity): |
185 def render_form(self, entity): |
186 """fetch and render the form""" |
186 """fetch and render the form""" |
187 self.form_title(entity) |
187 self.form_title(entity) |
188 form = self.vreg.select_object('forms', 'edition', self.req, entity.rset, |
188 form = self.vreg.select('forms', 'edition', self.req, rset=entity.rset, |
189 row=entity.row, col=entity.col, entity=entity, |
189 row=entity.row, col=entity.col, entity=entity, |
190 submitmsg=self.submited_message()) |
190 submitmsg=self.submited_message()) |
191 self.init_form(form, entity) |
191 self.init_form(form, entity) |
192 self.w(form.form_render(formvid=u'edition')) |
192 self.w(form.form_render(formvid=u'edition')) |
193 |
193 |
194 def init_form(self, form, entity): |
194 def init_form(self, form, entity): |
195 """customize your form before rendering here""" |
195 """customize your form before rendering here""" |
302 |
302 |
303 def __init__(self, req, rset, **kwargs): |
303 def __init__(self, req, rset, **kwargs): |
304 kwargs.setdefault('__redirectrql', rset.printable_rql()) |
304 kwargs.setdefault('__redirectrql', rset.printable_rql()) |
305 super(TableEditForm, self).__init__(req, rset, **kwargs) |
305 super(TableEditForm, self).__init__(req, rset, **kwargs) |
306 for row in xrange(len(self.rset)): |
306 for row in xrange(len(self.rset)): |
307 form = self.vreg.select_object('forms', 'edition', self.req, self.rset, |
307 form = self.vreg.select('forms', 'edition', self.req, rset=self.rset, |
308 row=row, attrcategories=('primary',), |
308 row=row, attrcategories=('primary',), |
309 mainform=False) |
309 mainform=False) |
310 # XXX rely on the EntityCompositeFormRenderer to put the eid input |
310 # XXX rely on the EntityCompositeFormRenderer to put the eid input |
311 form.remove_field(form.field_by_name('eid')) |
311 form.remove_field(form.field_by_name('eid')) |
312 self.form_add_subform(form) |
312 self.form_add_subform(form) |
313 |
313 |
314 |
314 |
320 def call(self, **kwargs): |
320 def call(self, **kwargs): |
321 """a view to edit multiple entities of the same type the first column |
321 """a view to edit multiple entities of the same type the first column |
322 should be the eid |
322 should be the eid |
323 """ |
323 """ |
324 #self.form_title(entity) |
324 #self.form_title(entity) |
325 form = self.vreg.select_object('forms', self.id, self.req, self.rset) |
325 form = self.vreg.select('forms', self.id, self.req, rset=self.rset) |
326 self.w(form.form_render()) |
326 self.w(form.form_render()) |
327 |
327 |
328 |
328 |
329 class InlineEntityEditionFormView(FormViewMixIn, EntityView): |
329 class InlineEntityEditionFormView(FormViewMixIn, EntityView): |
330 id = 'inline-edition' |
330 id = 'inline-edition' |
351 entity.eid) |
351 entity.eid) |
352 self.render_form(entity, peid, rtype, role, divonclick=divonclick) |
352 self.render_form(entity, peid, rtype, role, divonclick=divonclick) |
353 |
353 |
354 def render_form(self, entity, peid, rtype, role, **kwargs): |
354 def render_form(self, entity, peid, rtype, role, **kwargs): |
355 """fetch and render the form""" |
355 """fetch and render the form""" |
356 form = self.vreg.select_object('forms', 'edition', self.req, None, |
356 form = self.vreg.select('forms', 'edition', self.req, entity=entity, |
357 entity=entity, form_renderer_id='inline', |
357 form_renderer_id='inline', mainform=False, |
358 mainform=False, copy_nav_params=False) |
358 copy_nav_params=False) |
359 self.add_hiddens(form, entity, peid, rtype, role) |
359 self.add_hiddens(form, entity, peid, rtype, role) |
360 divid = '%s-%s-%s' % (peid, rtype, entity.eid) |
360 divid = '%s-%s-%s' % (peid, rtype, entity.eid) |
361 title = self.schema.rschema(rtype).display_name(self.req, role) |
361 title = self.schema.rschema(rtype).display_name(self.req, role) |
362 removejs = self.removejs % (peid, rtype,entity.eid) |
362 removejs = self.removejs % (peid, rtype,entity.eid) |
363 self.w(form.form_render(divid=divid, title=title, removejs=removejs, |
363 self.w(form.form_render(divid=divid, title=title, removejs=removejs, |