From b936f8d6db46c6037de31b8d1d49a1d603bcd113 Mon Sep 17 00:00:00 2001 From: Parbhat Puri <parbhatpuri17@gmail.com> Date: Fri, 19 Apr 2019 08:52:24 +0000 Subject: [PATCH] GH-1147: Show reviewer's submissions in dashboard --- .../dashboard/applicant_dashboard.html | 2 +- .../dashboard/reviewer_dashboard.html | 35 ++++++++++++++++++- opentech/apply/dashboard/views.py | 19 ++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html b/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html index 122386a8b..1c2441ac9 100644 --- a/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html +++ b/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html @@ -38,7 +38,7 @@ {% endif %} </a> {% endif %} - </div> + </div> {% empty %} No active submissions {% endfor %} diff --git a/opentech/apply/dashboard/templates/dashboard/reviewer_dashboard.html b/opentech/apply/dashboard/templates/dashboard/reviewer_dashboard.html index 0f8c24e00..70d41e53c 100644 --- a/opentech/apply/dashboard/templates/dashboard/reviewer_dashboard.html +++ b/opentech/apply/dashboard/templates/dashboard/reviewer_dashboard.html @@ -1,6 +1,6 @@ {% extends "base-apply.html" %} {% load render_table from django_tables2 %} -{% load static %} +{% load static statusbar_tags workflow_tags %} {% block extra_css %} {{ filter.form.media.css }} @@ -36,6 +36,39 @@ {% endif %} </div> + + <div class="wrapper wrapper--bottom-space"> + <h4 class="heading heading--normal">Your active submissions</h4> + {% for submission in my_submissions %} + <div class="wrapper wrapper--status-bar-outer"> + <div class="wrapper wrapper--status-bar-inner"> + <div> + <h5 class="heading heading--no-margin"><a class="link link--underlined" href="{% url 'funds:submissions:detail' submission.id %}">{{ submission.title }}</a></h5> + <h6 class="heading heading--no-margin heading--submission-meta"><span>Submitted:</span> {{ submission.submit_time.date }} by {{ submission.user.get_full_name }}</h6> + </div> + {% status_bar submission.workflow submission.phase request.user css_class="status-bar--small" %} + </div> + {% if request.user|has_edit_perm:submission %} + <a class="button button--primary" href="{% url 'funds:submissions:edit' submission.id %}"> + {% if submission.status == 'draft_proposal' %} + Start your {{ submission.stage }} application + {% else %} + Edit + {% endif %} + </a> + {% endif %} + </div> + {% empty %} + No active submissions + {% endfor %} + </div> + + {% if my_inactive_submissions_table.data %} + <div class="wrapper wrapper--bottom-space"> + <h4 class="heading heading--normal">Submission history</h4> + {% render_table my_inactive_submissions_table %} + </div> + {% endif %} </div> {% endblock %} diff --git a/opentech/apply/dashboard/views.py b/opentech/apply/dashboard/views.py index f6a585156..47b7c0969 100644 --- a/opentech/apply/dashboard/views.py +++ b/opentech/apply/dashboard/views.py @@ -108,6 +108,9 @@ class ReviewerDashboardView(TemplateView): # Filter for all active statuses. active_statuses_filter = ''.join(f'&status={status}' for status in review_filter_for_user(request.user)) + # Applications by reviewer + my_submissions, my_inactive_submissions_table = self.get_my_submissions(request, qs) + context = { 'my_review': my_review, 'in_review_count': my_review_qs.count(), @@ -116,6 +119,8 @@ class ReviewerDashboardView(TemplateView): 'display_more_reviewed': display_more_reviewed, 'filter': filterset, 'active_statuses_filter': active_statuses_filter, + 'my_submissions': my_submissions, + 'my_inactive_submissions_table': my_inactive_submissions_table, } return render(request, 'dashboard/reviewer_dashboard.html', context) @@ -144,6 +149,20 @@ class ReviewerDashboardView(TemplateView): return filterset, my_reviewed_qs, my_reviewed_table, display_more_reviewed + def get_my_submissions(self, request, qs): + my_submissions = qs.filter( + user=request.user + ).active().current().select_related('draft_revision') + + my_submissions = [ + submission.from_draft() for submission in my_submissions + ] + my_inactive_submissions_qs = qs.filter(user=self.request.user).inactive().current() + my_inactive_submissions_table = ReviewerSubmissionsTable( + my_inactive_submissions_qs, prefix='my-submissions-' + ) + return my_submissions, my_inactive_submissions_table + def get_context_data(self, **kwargs): kwargs = super().get_context_data(**kwargs) search_term = self.request.GET.get('query') -- GitLab