diff -r 547681592765 -r 402e8a8b1d6a web/views/editforms.py --- a/web/views/editforms.py Thu Mar 26 18:58:14 2009 +0100 +++ b/web/views/editforms.py Thu Mar 26 18:59:01 2009 +0100 @@ -7,20 +7,43 @@ """ __docformat__ = "restructuredtext en" +from copy import copy + from simplejson import dumps -from cubicweb.selectors import match_kwargs, one_line_rset, non_final_entity +from logilab.mtconverter import html_escape + +from cubicweb import typed_eid +from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity, + specified_etype_implements, yes) +from cubicweb.rtags import RelationTags from cubicweb.utils import make_uid from cubicweb.view import EntityView from cubicweb.common import tags -from cubicweb.web import stdmsgs -from cubicweb.web.form import MultipleFieldsForm, EntityFieldsForm, FormMixIn, FormRenderer +from cubicweb.web import INTERNAL_FIELD_VALUE, stdmsgs, formwidgets +from cubicweb.web.form import CompositeForm, EntityFieldsForm, FormMixIn from cubicweb.web.formfields import guess_field +from cubicweb.web.formrenderers import (FormRenderer, EntityFormRenderer, + EntityCompositeFormRenderer, + EntityInlinedFormRenderer) +_ = unicode -_ = unicode +def relation_id(eid, rtype, role, reid): + """return an identifier for a relation between two entities""" + if role == 'subject': + return u'%s:%s:%s' % (eid, rtype, reid) + return u'%s:%s:%s' % (reid, rtype, eid) + +def toggable_relation_link(eid, nodeid, label='x'): + """return javascript snippet to delete/undelete a relation between two + entities + """ + js = u"javascript: togglePendingDelete('%s', %s);" % (nodeid, html_escape(dumps(eid))) + return u'[%s]' % (js, nodeid, label) class DeleteConfForm(EntityView): + """form used to confirm deletion of some entities""" id = 'deleteconf' title = _('delete') domid = 'deleteconf' @@ -37,19 +60,18 @@ % _('this action is not reversible!')) # XXX above message should have style of a warning w(u'

%s

\n' % _('Do you want to delete the following element(s) ?')) - form = MultipleFieldsForm(req, domid='deleteconf', action=self.build_url('edit'), + form = CompositeForm(req, domid='deleteconf', action=self.build_url('edit'), onsubmit=self.onsubmit, copy_nav_params=True) + # XXX tabindex form.buttons.append(form.button_delete(label=stdmsgs.YES)) form.buttons.append(form.button_cancel(label=stdmsgs.NO)) done = set() w(u'