def feedback_view_by_item(project, request): items = project.items_distributed() feedback_controller = FormController(project.feedback_form) summaries = [] for item in items: widget_summaries = [] for widget in project.feedback_form.widgets: widget_controller = widget_controller_factory(widget) widget_summaries.append({ 'title':widget.label, 'summary':widget_controller.render_feedback_for_item(item, request) }) summaries.append({ 'title':item.title, 'widgets':widget_summaries }) return dict( project=project, summaries=summaries, menu=project_menu(project, request, 'feedback') )
def record(project, request): form_controller = FormController(project.item_form) record_id = request.matchdict.get("record_id", None) if record_id is not None: record = project.get_item(record_id) else: record = None if record and not record.reviewed: record.reviewed = True if request.method == "POST": title = request.params.get("title", "").strip() submit = request.params.get("submit", "") if not title and submit.find("finish") >= 0: return HTTPFound(location=route_url("project:feedback_form", request, project_id=project.id)) elif not title: request.session.flash("%s Name or Title is required!" % project.item_name, "errors") elif title: form_controller = FormController(project.item_form) form_controller.validate_from_request(request) if form_controller.errors: request.session.flash("There was a problem with your submission", "errors") else: request.session.flash("%s saved!" % title, "messages") if record is None: record = ItemRecord(project, title) record.title = title form_controller.populate_record_from_request(record, request) session = DBSession() session.add(record) session.flush() if submit.find("add") >= 0: route = "project:record:add" elif submit.find("finish") >= 0: route = "project:feedback_form" else: route = "project:record" return HTTPFound(location=route_url(route, request, project_id=project.id, record_id=record.id)) return dict( project=project, menu=project_menu(project, request, "records"), form_widgets=form_controller.render_widgets(request, record), record=record, )
def feedback_view_by_widget(project, request): items = project.items_distributed() summaries = [] for widget in project.feedback_form.widgets: widget_controller = widget_controller_factory(widget) summaries.append(dict( title=widget.label, summary=widget_controller.render_feedback_for_items(items, request) )) return dict( project=project, summaries=summaries, menu=project_menu(project, request, 'feedback') )
def record_collect_settings(project, request): return dict( project=project, menu=project_menu(project, request, 'records'), )
def record_import(project, request): return dict(project=project, menu=project_menu(project, request, "records"))