def view(self, id): from uliweb.utils.generic import DetailView from forms import ApproveEditForm obj = self.model.get(int(id)) helper = ApproveHelper() helper.bind(obj, get_workflow=True) tasks = helper.get_active_tasks() if len(tasks) == 1: task_id = tasks[0].get_unique_id() task_name = tasks[0].get_name() form_cls = ApproveEditForm().get_form(task_name) auto_fill_fields = form_cls.auto_fill_fields fields = form_cls.fields + auto_fill_fields layout = form_cls.layout + auto_fill_fields view = DetailView(self.model, obj=obj, fields=fields, layout=layout) result = view.run() data = {"detailview": result["view"], "obj": result["object"], "workflow": helper.get_workflow()} fields = [{"name": "trans_message", "verbose_name": "流转意见"}] if helper.has_deliver_permission(tasks[0], request.user): next_tasks = tasks[0].get_next_tasks() form = get_deliver_form(tasks[0], next_tasks) data.update( { "deliverform": form, "show_deliver_form": True, "task_desc": tasks[0].get_desc(), "task_name": tasks[0].get_name(), } ) else: data.update( {"show_deliver_form": False, "task_desc": tasks[0].get_desc(), "task_name": tasks[0].get_name()} ) else: if not helper.workflow_is_running(): formClass = "Archiver" else: formClass = obj.task_spec_name form_cls = ApproveEditForm().get_form(formClass) auto_fill_fields = form_cls.auto_fill_fields fields = form_cls.fields + auto_fill_fields layout = form_cls.layout + auto_fill_fields view = DetailView(self.model, obj=obj, fields=fields, layout=layout) result = view.run() data = {"detailview": result["view"], "obj": result["object"], "workflow": helper.get_workflow()} data.update({"show_deliver_form": False, "task_desc": None}) return data