def initialize(self, request): self.check_role(request.user, self.project, [ ('project', 'view'), ('milestone', 'view'), ('userstory', 'view'), ('task', 'view'), ]) self.form = IssueFilterForm(request.GET, project=self.project) self.valid_form = self.form.is_valid() if not self.valid_form: self.tasks = [] self.filter_dict = {} messages.error(request, _("Uops!, something went wrong!")) return milestone = self.form.cleaned_data['milestone'] status = self.form.cleaned_data['status'] order_by = self.form.cleaned_data['order_by'] tags = self.form.cleaned_data['tags'] assigned_to = self.form.cleaned_data['assigned_to'] severity = self.form.cleaned_data['severity'] tasks_and_filters = self.project.tasks.filter(type='bug').\ filter_and_build_filter_dict(milestone, status, tags, assigned_to, severity) self.tasks = tasks_and_filters['list'] self.filter_dict = tasks_and_filters['filters']
class IssueList(GenericView): """ Issues list view. """ template_name = 'issues.html' menu = ['issues'] def get_general_context(self, project): participants = [{ "name": x.get_full_name(), "id": x.id, } for x in project.all_participants] statuses = [{ "name": x[1], "id": x[0] } for x in TASK_STATUS_CHOICES] return { "participants": [{'name': ugettext("Unassigned"), "id":""}] + participants, "statuses": statuses, } def initialize(self, request): self.check_role(request.user, self.project, [ ('project', 'view'), ('milestone', 'view'), ('userstory', 'view'), ('task', 'view'), ]) self.form = IssueFilterForm(request.GET, project=self.project) self.valid_form = self.form.is_valid() if not self.valid_form: self.tasks = [] self.filter_dict = {} messages.error(request, _("Uops!, something went wrong!")) return milestone = self.form.cleaned_data['milestone'] status = self.form.cleaned_data['status'] order_by = self.form.cleaned_data['order_by'] tags = self.form.cleaned_data['tags'] assigned_to = self.form.cleaned_data['assigned_to'] severity = self.form.cleaned_data['severity'] tasks_and_filters = self.project.tasks.filter(type='bug').\ filter_and_build_filter_dict(milestone, status, tags, assigned_to, severity) self.tasks = tasks_and_filters['list'] self.filter_dict = tasks_and_filters['filters'] @login_required def get(self, request, pslug): self.project = get_object_or_404(Project, slug=pslug) self.initialize(request) _aditional_context = self.get_general_context(self.project) if request.is_ajax(): if not self.valid_form: return self.render_to_error(self.form.errors) context = { "tasks": [task.to_dict() for task in self.tasks], 'filter_dict': self.filter_dict, } context.update(_aditional_context) return self.render_json(context, ok=True) context = { 'project': self.project, 'tasks': (task.to_dict() for task in self.tasks), 'filter_dict': self.filter_dict, } context.update(_aditional_context) return self.render_to_response(self.template_name, context)