--- a/web/views/editforms.py Wed Sep 23 19:26:38 2009 +0200
+++ b/web/views/editforms.py Wed Sep 23 19:40:19 2009 +0200
@@ -59,11 +59,11 @@
def __init__(self, *args, **kwargs):
super(DeleteConfForm, self).__init__(*args, **kwargs)
done = set()
- for entity in self.rset.entities():
+ for entity in self.cw_rset.entities():
if entity.eid in done:
continue
done.add(entity.eid)
- subform = self.vreg['forms'].select('base', self.req, entity=entity,
+ subform = self._cw.vreg['forms'].select('base', self._cw, entity=entity,
mainform=False)
self.form_add_subform(subform)
@@ -78,16 +78,16 @@
def call(self, onsubmit=None):
"""ask for confirmation before real deletion"""
- req, w = self.req, self.w
+ req, w = self._cw, self.w
_ = req._
w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n'
% _('this action is not reversible!'))
# XXX above message should have style of a warning
w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?'))
- form = self.vreg['forms'].select(self.id, req, rset=self.rset,
+ form = self._cw.vreg['forms'].select(self.__regid__, req, rset=self.cw_rset,
onsubmit=onsubmit)
w(u'<ul>\n')
- for entity in self.rset.entities():
+ for entity in self.cw_rset.entities():
# don't use outofcontext view or any other that may contain inline edition form
w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'),
href=entity.absolute_url()))
@@ -124,11 +124,11 @@
return self._one_rvid
def _build_landing_zone(self, lzone):
- return lzone or self._defaultlandingzone % {'msg' : xml_escape(self.req._(self._landingzonemsg))}
+ return lzone or self._defaultlandingzone % {'msg' : xml_escape(self._cw._(self._landingzonemsg))}
def _build_renderer(self, entity, rtype, role):
- return self.vreg['formrenderers'].select(
- 'base', self.req, entity=entity, display_label=False,
+ return self._cw.vreg['formrenderers'].select(
+ 'base', self._cw, entity=entity, display_label=False,
display_help=False, display_fields=[(rtype, role)], table_class='',
button_bar_class='buttonbar', display_progress_div=False)
@@ -142,8 +142,8 @@
onsubmit %= event_data
cancelclick = "hideInlineEdit(%s,\'%s\',\'%s\')" % (entity.eid, rtype,
divid)
- form = self.vreg['forms'].select(
- formid, self.req, entity=entity, domid='%s-form' % divid,
+ form = self._cw.vreg['forms'].select(
+ formid, self._cw, entity=entity, domid='%s-form' % divid,
cssstyle='display: none', onsubmit=onsubmit, action='#',
form_buttons=[SubmitButton(), Button(stdmsgs.BUTTON_CANCEL,
onclick=cancelclick)],
@@ -162,9 +162,10 @@
assert rtype
assert role in ('subject', 'object')
if default is None:
- default = xml_escape(self.req._('<no value>'))
- entity = self.rset.get_entity(row, col)
- rschema = entity.schema.rschema(rtype)
+ default = xml_escape(self._cw._('<no value>'))
+ schema = self._cw.vreg.schema
+ entity = self.cw_rset.get_entity(row, col)
+ rschema = schema.rschema(rtype)
lzone = self._build_landing_zone(landing_zone)
# compute value, checking perms, build form
if rschema.is_final():
@@ -185,7 +186,7 @@
return
rset = entity.related(rtype, role)
if rset:
- value = self.view(rvid, rset)
+ value = self._cw.view(rvid, rset)
else:
value = default
onsubmit = ("return inlineValidateRelationForm('%(rtype)s', '%(role)s', '%(eid)s', "
@@ -193,15 +194,15 @@
form = self._build_form(
entity, rtype, role, 'base', default, onsubmit, reload,
dict(vid=rvid, role=role, lzone=lzone))
- field = guess_field(entity.e_schema, entity.schema.rschema(rtype), role)
+ field = guess_field(entity.e_schema, schema.rschema(rtype), role)
form.append_field(field)
self.relation_form(lzone, value, form,
self._build_renderer(entity, rtype, role))
def should_edit_attribute(self, entity, rschema, role, form):
rtype = str(rschema)
- ttype = rschema.targets(entity.id, role)[0]
- afs = uicfg.autoform_section.etype_get(entity.id, rtype, role, ttype)
+ ttype = rschema.targets(entity.__regid__, role)[0]
+ afs = uicfg.autoform_section.etype_get(entity.__regid__, rtype, role, ttype)
if not (afs in self.attrcategories and entity.has_perm('update')):
self.w(entity.printable_value(rtype))
return False
@@ -213,10 +214,10 @@
return True
def should_edit_relation(self, entity, rschema, role, rvid):
- if ((role == 'subject' and not rschema.has_perm(self.req, 'add',
+ if ((role == 'subject' and not rschema.has_perm(self._cw, 'add',
fromeid=entity.eid))
or
- (role == 'object' and not rschema.has_perm(self.req, 'add',
+ (role == 'object' and not rschema.has_perm(self._cw, 'add',
toeid=entity.eid))):
self.wview(rvid, entity.related(str(rschema), role), 'null')
return False
@@ -296,7 +297,7 @@
def render_form(self, entity):
"""fetch and render the form"""
self.form_title(entity)
- form = self.vreg['forms'].select('edition', self.req, rset=entity.rset,
+ form = self._cw.vreg['forms'].select('edition', self._cw, rset=entity.rset,
row=entity.row, col=entity.col, entity=entity,
submitmsg=self.submited_message())
self.init_form(form, entity)
@@ -308,13 +309,13 @@
def form_title(self, entity):
"""the form view title"""
- ptitle = self.req._(self.title)
+ ptitle = self._cw._(self.title)
self.w(u'<div class="formTitle"><span>%s %s</span></div>' % (
entity.dc_type(), ptitle and '(%s)' % ptitle))
def submited_message(self):
"""return the message that will be displayed on successful edition"""
- return self.req._('entity edited')
+ return self._cw._('entity edited')
class CreationFormView(EditionFormView):
@@ -328,41 +329,40 @@
"""creation view for an entity"""
# at this point we know etype is a valid entity type, thanks to our
# selector
- etype = kwargs.pop('etype', self.req.form.get('etype'))
- entity = self.vreg['etypes'].etype_class(etype)(self.req)
- self.initialize_varmaker()
- entity.eid = self.varmaker.next()
+ etype = kwargs.pop('etype', self._cw.form.get('etype'))
+ entity = self._cw.vreg['etypes'].etype_class(etype)(self._cw)
+ entity.eid = self._cw.varmaker.next()
self.render_form(entity)
def form_title(self, entity):
"""the form view title"""
- if '__linkto' in self.req.form:
- if isinstance(self.req.form['__linkto'], list):
+ if '__linkto' in self._cw.form:
+ if isinstance(self._cw.form['__linkto'], list):
# XXX which one should be considered (case: add a ticket to a
# version in jpl)
- rtype, linkto_eid, role = self.req.form['__linkto'][0].split(':')
+ rtype, linkto_eid, role = self._cw.form['__linkto'][0].split(':')
else:
- rtype, linkto_eid, role = self.req.form['__linkto'].split(':')
- linkto_rset = self.req.eid_rset(linkto_eid)
+ rtype, linkto_eid, role = self._cw.form['__linkto'].split(':')
+ linkto_rset = self._cw.eid_rset(linkto_eid)
linkto_type = linkto_rset.description[0][0]
if role == 'subject':
- title = self.req.__('creating %s (%s %s %s %%(linkto)s)' % (
+ title = self._cw.__('creating %s (%s %s %s %%(linkto)s)' % (
entity.e_schema, entity.e_schema, rtype, linkto_type))
else:
- title = self.req.__('creating %s (%s %%(linkto)s %s %s)' % (
+ title = self._cw.__('creating %s (%s %%(linkto)s %s %s)' % (
entity.e_schema, linkto_type, rtype, entity.e_schema))
- msg = title % {'linkto' : self.view('incontext', linkto_rset)}
+ msg = title % {'linkto' : self._cw.view('incontext', linkto_rset)}
self.w(u'<div class="formTitle notransform"><span>%s</span></div>' % msg)
else:
super(CreationFormView, self).form_title(entity)
def url(self):
"""return the url associated with this view"""
- return self.create_url(self.req.form.get('etype'))
+ return self.create_url(self._cw.form.get('etype'))
def submited_message(self):
"""return the message that will be displayed on successful edition"""
- return self.req._('entity created')
+ return self._cw._('entity created')
class CopyFormView(EditionFormView):
@@ -379,10 +379,9 @@
entity.complete()
self.newentity = copy(entity)
self.copying = entity
- self.initialize_varmaker()
- self.newentity.eid = self.varmaker.next()
+ self.newentity.eid = self._cw.varmaker.next()
self.w(u'<script type="text/javascript">updateMessage("%s");</script>\n'
- % self.req._(self.warning_message))
+ % self._cw._(self.warning_message))
super(CopyFormView, self).render_form(self.newentity)
del self.newentity
@@ -401,7 +400,7 @@
def submited_message(self):
"""return the message that will be displayed on successful edition"""
- return self.req._('entity copied')
+ return self._cw._('entity copied')
class TableEditForm(forms.CompositeForm):
@@ -414,9 +413,9 @@
def __init__(self, req, rset, **kwargs):
kwargs.setdefault('__redirectrql', rset.printable_rql())
super(TableEditForm, self).__init__(req, rset=rset, **kwargs)
- for row in xrange(len(self.rset)):
- form = self.vreg['forms'].select('edition', self.req,
- rset=self.rset, row=row,
+ for row in xrange(len(self.cw_rset)):
+ form = self._cw.vreg['forms'].select('edition', self._cw,
+ rset=self.cw_rset, row=row,
attrcategories=('primary',),
mainform=False)
# XXX rely on the EntityCompositeFormRenderer to put the eid input
@@ -434,7 +433,7 @@
should be the eid
"""
#self.form_title(entity)
- form = self.vreg['forms'].select(self.id, self.req, rset=self.rset)
+ form = self._cw.vreg['forms'].select(self.__regid__, self._cw, rset=self.cw_rset)
self.w(form.form_render())
@@ -448,9 +447,9 @@
insertions of <div class="section"> between each row of
the resultset
"""
- rset = self.rset
+ rset = self.cw_rset
for i in xrange(len(rset)):
- self.wview(self.id, rset, row=i, **kwargs)
+ self.wview(self.__regid__, rset, row=i, **kwargs)
def cell_call(self, row, col, peid, rtype, role, i18nctx, **kwargs):
"""
@@ -458,7 +457,7 @@
:param rtype: the relation bridging `etype` and `peid`
:param role: the role played by the `peid` in the relation
"""
- entity = self.rset.get_entity(row, col)
+ entity = self.cw_rset.get_entity(row, col)
divonclick = "restoreInlinedEntity('%s', '%s', '%s')" % (peid, rtype,
entity.eid)
self.render_form(entity, peid, rtype, role, i18nctx,
@@ -466,21 +465,21 @@
def render_form(self, entity, peid, rtype, role, i18nctx, **kwargs):
"""fetch and render the form"""
- form = self.vreg['forms'].select('edition', self.req, entity=entity,
+ form = self._cw.vreg['forms'].select('edition', self._cw, entity=entity,
form_renderer_id='inline',
mainform=False, copy_nav_params=False)
self.add_hiddens(form, entity, peid, rtype, role)
divid = '%s-%s-%s' % (peid, rtype, entity.eid)
- title = self.req.pgettext(i18nctx, 'This %s' % entity.e_schema)
+ title = self._cw.pgettext(i18nctx, 'This %s' % entity.e_schema)
removejs = self.removejs % (peid, rtype, entity.eid)
countkey = '%s_count' % rtype
try:
- self.req.data[countkey] += 1
+ self._cw.data[countkey] += 1
except:
- self.req.data[countkey] = 1
+ self._cw.data[countkey] = 1
self.w(form.form_render(divid=divid, title=title, removejs=removejs,
i18nctx=i18nctx,
- counter=self.req.data[countkey], **kwargs))
+ counter=self._cw.data[countkey], **kwargs))
def add_hiddens(self, form, entity, peid, rtype, role):
# to ease overriding (see cubes.vcsfile.views.forms for instance)
@@ -492,7 +491,7 @@
return True
# are we regenerating form because of a validation error ?
if form.form_previous_values:
- cdvalues = self.req.list_form_param(eid_param(rtype, peid),
+ cdvalues = self._cw.list_form_param(eid_param(rtype, peid),
form.form_previous_values)
if unicode(entity.eid) not in cdvalues:
return False
@@ -513,11 +512,10 @@
:param role: the role played by the `peid` in the relation
"""
try:
- cls = self.vreg['etypes'].etype_class(etype)
+ cls = self._cw.vreg['etypes'].etype_class(etype)
except:
- self.w(self.req._('no such entity type %s') % etype)
+ self.w(self._cw._('no such entity type %s') % etype)
return
- self.initialize_varmaker()
- entity = cls(self.req)
- entity.eid = self.varmaker.next()
+ entity = cls(self._cw)
+ entity.eid = self._cw.varmaker.next()
self.render_form(entity, peid, rtype, role, i18nctx, **kwargs)