def _do_view(self, env, req, form): data = {'_dgettext': dgettext} form_id = form.resource.id data['page_title'] = get_resource_description(env, form.resource, href=req.href) data['title'] = get_resource_shortname(env, form.resource) # prime list with current state subcontext, author, time = self.get_tracform_meta(form_id)[3:6] author = format_author(self.env, req, author, 'change') if not subcontext == '': data['subcontext'] = subcontext state = self.get_tracform_state(form_id) data['fields'] = self._render_fields(req, form_id, state) history = [{'author': author, 'time': time, 'old_state': state}] # add recorded old_state records = self.get_tracform_history(form_id) for author, time, old_state in records: author = format_author(self.env, req, author, 'change') history.append({'author': author, 'time': time, 'old_state': old_state}) data['history'] = parse_history(history) # show reset button in case of existing data and proper permission data['allow_reset'] = req.perm(form.resource) \ .has_permission('FORM_RESET') and form.has_data add_stylesheet(req, 'tracforms/tracforms.css') return 'form.html', data, None
def _render_fields(self, req, form_id, state): fields = json.loads(state is not None and state or '{}') rendered = [] for name, value in fields.iteritems(): if value == 'on': value = _("checked (checkbox)") elif value == '': value = _("empty (text field)") elif isinstance(value, str): value = "'".join(['', value, '']) else: # Still try to display something useful instead of corrupting # parent page beyond hope of recovery through the web_ui. value = "'".join(['', repr(value), '']) author, time = self.get_tracform_fieldinfo(form_id, name) author = format_author(self.env, req, author, 'value') rendered.append( {'name': name, 'value': value, 'author': tag.span(tag(_("by %(author)s", author=author)), class_='author'), 'time': time}) return rendered
def op_form_updater(self): return format_author(self.formatter.env, self.formatter.req, self.form_updater)
def op_who(self, field): # TRANSLATOR: Default updater name who = self.macro.get_tracform_fieldinfo( self.form_id is not None and self.form_id or self.context, field)[0] or _("unknown") return format_author(self.formatter.env, self.formatter.req, who)