diff --git a/goals/templates/goals/reports.html b/goals/templates/goals/reports.html new file mode 100644 index 0000000..0ed03ed --- /dev/null +++ b/goals/templates/goals/reports.html @@ -0,0 +1,58 @@ +{% extends 'subjects/view.html' %} + +{% load static i18n pagination permissions_tags subject_counter %} +{% load django_bootstrap_breadcrumbs %} + +{% block style %} + {{block.super}} +{% endblock %} + +{% block javascript%} + {{ block.super }} +{% endblock%} + +{% block breadcrumbs %} + {{ block.super }} + {% breadcrumb topic 'subjects:topic_view' subject.slug topic.slug %} + {% breadcrumb goal 'goals:submit' goal.slug %} + + {% trans 'Reports: Answered' as bread %} + {% breadcrumb bread 'goals:answered_reports' goal.slug %} +{% endblock %} + +{% block content %} + {% resource_permissions request.user goal as has_resource_permissions %} + + {% if goal.visible %} +
+
+ {% elif has_resource_permissions %} + +{% endblock %} \ No newline at end of file diff --git a/goals/urls.py b/goals/urls.py index fdd0b9f..2165c46 100644 --- a/goals/urls.py +++ b/goals/urls.py @@ -11,4 +11,5 @@ urlpatterns = [ url(r'^view/(?P[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), url(r'^submit/(?P[\w_-]+)/$', views.SubmitView.as_view(), name = 'submit'), url(r'^update_submit/(?P[\w_-]+)/$', views.UpdateSubmit.as_view(), name = 'update_submit'), + url(r'^answered_reports/(?P[\w_-]+)/$', views.AnsweredReport.as_view(), name = 'answered_reports'), ] diff --git a/goals/views.py b/goals/views.py index 63948af..9b5dc5c 100644 --- a/goals/views.py +++ b/goals/views.py @@ -13,6 +13,45 @@ from topics.models import Topic from .forms import GoalsForm, MyGoalsForm, InlinePendenciesFormset, InlineGoalItemFormset from .models import Goals, MyGoals +class AnsweredReport(LoginRequiredMixin, generic.ListView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'goals/reports.html' + model = MyGoals + context_object_name = 'answered' + + def get_queryset(self): + slug = self.kwargs.get('slug', '') + goal = get_object_or_404(Goals, slug = slug) + + goals = MyGoals.objects.filter(item__goal = goal) + + return goals + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + goals = get_object_or_404(Goals, slug = slug) + + if not has_resource_permissions(request.user, goals): + return redirect(reverse_lazy('subjects:home')) + + return super(AnsweredReport, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(AnsweredReport, self).get_context_data(**kwargs) + + slug = self.kwargs.get('slug', '') + goals = get_object_or_404(Goals, slug = slug) + + context['title'] = _("Reports: Answered") + + context['goal'] = goals + context['topic'] = goals.topic + context['subject'] = goals.topic.subject + + return context + class InsideView(LoginRequiredMixin, generic.ListView): login_url = reverse_lazy("users:login") redirect_field_name = 'next' diff --git a/topics/templates/resources/list.html b/topics/templates/resources/list.html index 2db64ad..f613253 100644 --- a/topics/templates/resources/list.html +++ b/topics/templates/resources/list.html @@ -29,6 +29,9 @@ -- libgit2 0.21.2