Skip to content
Snippets Groups Projects
Commit 48ce98d8 authored by Fredrik Jonsson's avatar Fredrik Jonsson Committed by Todd Dembrey
Browse files

Filter the views with submission to review and have been revied to only...

Filter the views with submission to review and have been revied to only submissions with active statuses.
parent a197bfa0
No related branches found
No related tags found
No related merge requests found
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<div class="wrapper wrapper--large wrapper--inner-space-medium"> <div class="wrapper wrapper--large wrapper--inner-space-medium">
<div class="wrapper wrapper--bottom-space"> <div class="wrapper wrapper--bottom-space">
{% include "dashboard/includes/waiting-for-review.html" with in_review_count=in_review_count my_review=my_review display_more=display_more %} {% include "dashboard/includes/waiting-for-review.html" with in_review_count=in_review_count my_review=my_review display_more=display_more active_statuses_filter=active_statuses_filter %}
</div> </div>
{% if closed_rounds or open_rounds %} {% if closed_rounds or open_rounds %}
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
{% if display_more %} {% if display_more %}
<div class="all-submissions-table__more"> <div class="all-submissions-table__more">
<a href="{% url 'apply:submissions:list' %}?reviewers={{ request.user.pk }}">Show all</a> <a href="{% url 'apply:submissions:list' %}?reviewers={{ request.user.pk }}{{ active_statuses_filter }}">Show all</a>
</div> </div>
{% endif %} {% endif %}
...@@ -21,4 +21,4 @@ ...@@ -21,4 +21,4 @@
{# TODO Fill in data and update styles in future ticket #} {# TODO Fill in data and update styles in future ticket #}
<div>{# Since you last logged in #}</div> <div>{# Since you last logged in #}</div>
{% endif %} {% endif %}
\ No newline at end of file
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="wrapper wrapper--large wrapper--inner-space-medium"> <div class="wrapper wrapper--large wrapper--inner-space-medium">
<div class="wrapper wrapper--bottom-space"> <div class="wrapper wrapper--bottom-space">
{% include "dashboard/includes/waiting-for-review.html" with in_review_count=in_review_count my_review=my_review display_more=display_more %} {% include "dashboard/includes/waiting-for-review.html" with in_review_count=in_review_count my_review=my_review display_more=display_more active_statuses_filter=active_statuses_filter %}
</div> </div>
<div class="wrapper wrapper--bottom-space"> <div class="wrapper wrapper--bottom-space">
...@@ -46,4 +46,3 @@ ...@@ -46,4 +46,3 @@
<script src="{% static 'js/apply/submission-filters.js' %}"></script> <script src="{% static 'js/apply/submission-filters.js' %}"></script>
<script src="{% static 'js/apply/submission-tooltips.js' %}"></script> <script src="{% static 'js/apply/submission-tooltips.js' %}"></script>
{% endblock %} {% endblock %}
...@@ -12,6 +12,7 @@ from opentech.apply.funds.tables import ( ...@@ -12,6 +12,7 @@ from opentech.apply.funds.tables import (
SubmissionsTable, SubmissionsTable,
SummarySubmissionsTable, SummarySubmissionsTable,
SummarySubmissionsTableWithRole, SummarySubmissionsTableWithRole,
STATUSES_ACTIVE_FILTER_LIST,
) )
from opentech.apply.utils.views import ViewDispatcher from opentech.apply.utils.views import ViewDispatcher
...@@ -42,7 +43,10 @@ class AdminDashboardView(TemplateView): ...@@ -42,7 +43,10 @@ class AdminDashboardView(TemplateView):
# Staff reviewer's reviewed submissions for 'Previous reviews' block # Staff reviewer's reviewed submissions for 'Previous reviews' block
filterset, my_reviewed_qs, my_reviewed, display_more_reviewed = self.get_my_reviewed(request, qs) filterset, my_reviewed_qs, my_reviewed, display_more_reviewed = self.get_my_reviewed(request, qs)
return render(request, 'dashboard/dashboard.html', { # Filter for all active statuses.
active_statuses_filter = '&status=' + '&status='.join(STATUSES_ACTIVE_FILTER_LIST)
context = {
'open_rounds': open_rounds, 'open_rounds': open_rounds,
'open_query': open_query, 'open_query': open_query,
'closed_rounds': closed_rounds, 'closed_rounds': closed_rounds,
...@@ -54,7 +58,10 @@ class AdminDashboardView(TemplateView): ...@@ -54,7 +58,10 @@ class AdminDashboardView(TemplateView):
'my_reviewed': my_reviewed, 'my_reviewed': my_reviewed,
'display_more_reviewed': display_more_reviewed, 'display_more_reviewed': display_more_reviewed,
'filter': filterset, 'filter': filterset,
}) 'active_statuses_filter': active_statuses_filter,
}
return render(request, 'dashboard/dashboard.html', context)
def get_my_reviews(self, user, qs): def get_my_reviews(self, user, qs):
my_review_qs = qs.in_review_for(user).order_by('-submit_time') my_review_qs = qs.in_review_for(user).order_by('-submit_time')
...@@ -98,6 +105,9 @@ class ReviewerDashboardView(TemplateView): ...@@ -98,6 +105,9 @@ class ReviewerDashboardView(TemplateView):
# Reviewer's reviewed submissions and filters for 'Previous reviews' block # Reviewer's reviewed submissions and filters for 'Previous reviews' block
filterset, my_reviewed_qs, my_reviewed, display_more_reviewed = self.get_my_reviewed(request, qs) filterset, my_reviewed_qs, my_reviewed, display_more_reviewed = self.get_my_reviewed(request, qs)
# Filter for all active statuses.
active_statuses_filter = '&status=' + '&status='.join(STATUSES_ACTIVE_FILTER_LIST)
context = { context = {
'my_review': my_review, 'my_review': my_review,
'in_review_count': my_review_qs.count(), 'in_review_count': my_review_qs.count(),
...@@ -105,6 +115,7 @@ class ReviewerDashboardView(TemplateView): ...@@ -105,6 +115,7 @@ class ReviewerDashboardView(TemplateView):
'my_reviewed': my_reviewed, 'my_reviewed': my_reviewed,
'display_more_reviewed': display_more_reviewed, 'display_more_reviewed': display_more_reviewed,
'filter': filterset, 'filter': filterset,
'active_statuses_filter': active_statuses_filter,
} }
return render(request, 'dashboard/reviewer_dashboard.html', context) return render(request, 'dashboard/reviewer_dashboard.html', context)
......
...@@ -30,7 +30,7 @@ from ..blocks import ApplicationCustomFormFieldsBlock, NAMED_BLOCKS ...@@ -30,7 +30,7 @@ from ..blocks import ApplicationCustomFormFieldsBlock, NAMED_BLOCKS
from ..workflow import ( from ..workflow import (
active_statuses, active_statuses,
DETERMINATION_RESPONSE_PHASES, DETERMINATION_RESPONSE_PHASES,
get_review_statuses, get_review_activ_statuses,
INITIAL_STATE, INITIAL_STATE,
PHASES, PHASES,
review_statuses, review_statuses,
...@@ -81,7 +81,7 @@ class ApplicationSubmissionQueryset(JSONOrderable): ...@@ -81,7 +81,7 @@ class ApplicationSubmissionQueryset(JSONOrderable):
return self.filter(status__in=review_statuses) return self.filter(status__in=review_statuses)
def in_review_for(self, user, assigned=True): def in_review_for(self, user, assigned=True):
user_review_statuses = get_review_statuses(user) user_review_statuses = get_review_activ_statuses(user)
qs = self.filter(Q(status__in=user_review_statuses), ~Q(reviews__author=user) | Q(reviews__is_draft=True)) qs = self.filter(Q(status__in=user_review_statuses), ~Q(reviews__author=user) | Q(reviews__is_draft=True))
if assigned: if assigned:
qs = qs.filter(reviewers=user) qs = qs.filter(reviewers=user)
......
...@@ -15,7 +15,7 @@ from django_tables2.utils import A ...@@ -15,7 +15,7 @@ from django_tables2.utils import A
from wagtail.core.models import Page from wagtail.core.models import Page
from opentech.apply.funds.models import ApplicationSubmission, Round, ScreeningStatus from opentech.apply.funds.models import ApplicationSubmission, Round, ScreeningStatus
from opentech.apply.funds.workflow import STATUSES from opentech.apply.funds.workflow import STATUSES, STATUSES_ACTIVE
from opentech.apply.users.groups import STAFF_GROUP_NAME from opentech.apply.users.groups import STAFF_GROUP_NAME
from opentech.apply.utils.image import generate_image_url from opentech.apply.utils.image import generate_image_url
from opentech.images.models import CustomImage from opentech.images.models import CustomImage
...@@ -23,6 +23,12 @@ from opentech.images.models import CustomImage ...@@ -23,6 +23,12 @@ from opentech.images.models import CustomImage
from .widgets import Select2MultiCheckboxesWidget from .widgets import Select2MultiCheckboxesWidget
STATUSES_ACTIVE_FILTER_LIST = [
slugify(name)
for name, _ in STATUSES_ACTIVE.items()
]
def make_row_class(record): def make_row_class(record):
css_class = 'submission-meta__row' if record.next else 'all-submissions-table__parent' css_class = 'submission-meta__row' if record.next else 'all-submissions-table__parent'
css_class += '' if record.active else ' is-inactive' css_class += '' if record.active else ' is-inactive'
......
...@@ -697,6 +697,24 @@ active_statuses = [ ...@@ -697,6 +697,24 @@ active_statuses = [
if 'accepted' not in status and 'rejected' not in status and 'invited' not in status if 'accepted' not in status and 'rejected' not in status and 'invited' not in status
] ]
STATUSES_ACTIVE = defaultdict(set)
for key, value in PHASES:
if 'accepted' not in value.display_name.lower() and 'dismissed' not in value.display_name.lower() and 'invited' not in value.display_name.lower():
STATUSES_ACTIVE[value.display_name].add(key)
def get_review_activ_statuses(user=None):
reviews = set()
for phase_name, phase in PHASES:
if phase_name in active_statuses:
if user is None:
reviews.add(phase_name)
elif phase.permissions.can_review(user):
reviews.add(phase_name)
return reviews
def get_review_statuses(user=None): def get_review_statuses(user=None):
reviews = set() reviews = set()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment