diff --git a/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html b/opentech/apply/dashboard/templates/dashboard/applicant_dashboard.html index 122386a8bcd37d53a6cae7b7de0609c86dbdc0ee..1c2441ac97883e465874eb42e7981680b7377671 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 0f8c24e003b6b776791ee9888568d58a07cf612b..70d41e53cb4308ad38bab2dcddbcdc8f43025894 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 f6a585156df768b61e17299bd5780c3d66ff58a3..47b7c0969f733cf1a85b0ae30e2080f06a1c4088 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')