Ejemplo n.º 1
0
    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']
Ejemplo n.º 2
0
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)