web/views/editforms.py
changeset 2572 58556f9317c9
parent 2538 6f8ffaa2a700
child 2576 4ed80b85a22a
equal deleted inserted replaced
2568:87f99ad0d3a8 2572:58556f9317c9
    41         nodeid, xml_escape(dumps(eid)))
    41         nodeid, xml_escape(dumps(eid)))
    42     return u'[<a class="handle" href="%s" id="handle%s">%s</a>]' % (
    42     return u'[<a class="handle" href="%s" id="handle%s">%s</a>]' % (
    43         js, nodeid, label)
    43         js, nodeid, label)
    44 
    44 
    45 
    45 
    46 class DeleteConfForm(FormViewMixIn, EntityView):
    46 class DeleteConfForm(forms.CompositeForm):
       
    47     id = 'deleteconf'
       
    48     __select__ = non_final_entity()
       
    49 
       
    50     domid = 'deleteconf'
       
    51     copy_nav_params = True
       
    52     form_buttons = [Button(stdmsgs.YES, cwaction='delete'),
       
    53                     Button(stdmsgs.NO, cwaction='cancel')]
       
    54     @property
       
    55     def action(self):
       
    56         return self.build_url('edit')
       
    57 
       
    58     def __init__(self, *args, **kwargs):
       
    59         super(DeleteConfForm, self).__init__(*args, **kwargs)
       
    60         done = set()
       
    61         for entity in self.rset.entities():
       
    62             if entity.eid in done:
       
    63                 continue
       
    64             done.add(entity.eid)
       
    65             subform = self.vreg.select('forms', 'base', self.req, entity=entity,
       
    66                                        mainform=False)
       
    67             self.form_add_subform(subform)
       
    68 
       
    69 
       
    70 class DeleteConfFormView(FormViewMixIn, EntityView):
    47     """form used to confirm deletion of some entities"""
    71     """form used to confirm deletion of some entities"""
    48     id = 'deleteconf'
    72     id = 'deleteconf'
    49     title = _('delete')
    73     title = _('delete')
    50     # don't use navigation, all entities asked to be deleted should be displayed
    74     # don't use navigation, all entities asked to be deleted should be displayed
    51     # else we will only delete the displayed page
    75     # else we will only delete the displayed page
    57         _ = req._
    81         _ = req._
    58         w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n'
    82         w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n'
    59           % _('this action is not reversible!'))
    83           % _('this action is not reversible!'))
    60         # XXX above message should have style of a warning
    84         # 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) ?'))
    85         w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?'))
    62         form = self.vreg.select('forms', 'composite', req, domid='deleteconf',
    86         form = self.vreg.select('forms', 'composite', req, onsubmit=onsubmit)
    63                                 copy_nav_params=True,
       
    64                                 action=self.build_url('edit'), onsubmit=onsubmit,
       
    65                                 form_buttons=[Button(stdmsgs.YES, cwaction='delete'),
       
    66                                               Button(stdmsgs.NO, cwaction='cancel')])
       
    67         done = set()
       
    68         w(u'<ul>\n')
    87         w(u'<ul>\n')
    69         for entity in self.rset.entities():
    88         for entity in self.rset.entities():
    70             if entity.eid in done:
       
    71                 continue
       
    72             done.add(entity.eid)
       
    73             subform = self.vreg.select('forms', 'base', req, entity=entity,
       
    74                                        mainform=False)
       
    75             form.form_add_subform(subform)
       
    76             # don't use outofcontext view or any other that may contain inline edition form
    89             # 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'),
    90             w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'),
    78                                       href=entity.absolute_url()))
    91                                       href=entity.absolute_url()))
    79         w(u'</ul>\n')
    92         w(u'</ul>\n')
    80         w(form.form_render())
    93         w(form.form_render())