diff --git a/opentech/apply/dashboard/views.py b/opentech/apply/dashboard/views.py index cd83dc6828e37c53ee90544e77d2d322a3c9d056..99bce4e6ce3651ff88685f1e20c015b5af33e409 100644 --- a/opentech/apply/dashboard/views.py +++ b/opentech/apply/dashboard/views.py @@ -11,6 +11,7 @@ from opentech.apply.funds.tables import ( SubmissionReviewerFilterAndSearch, SubmissionsTable, SummarySubmissionsTable, + SummarySubmissionsTableWithRole, ) from opentech.apply.utils.views import ViewDispatcher @@ -57,7 +58,7 @@ class AdminDashboardView(TemplateView): def get_my_reviews(self, user, qs): my_review_qs = qs.in_review_for(user).order_by('-submit_time') - my_review_table = SummarySubmissionsTable(my_review_qs[:5], prefix='my-review-') + my_review_table = SummarySubmissionsTableWithRole(my_review_qs[:5], prefix='my-review-') display_more = (my_review_qs.count() > 5) return my_review_qs, my_review_table, display_more diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py index a7cec38541bb032a8d4ffb2d04b2c87efd9783c3..898b0e17b68feafd601e8008d05ee69c02e71a8a 100644 --- a/opentech/apply/funds/models/submissions.py +++ b/opentech/apply/funds/models/submissions.py @@ -101,6 +101,8 @@ class ApplicationSubmissionQueryset(JSONOrderable): activities = self.model.activities.field.model latest_activity = activities.objects.filter(submission=OuterRef('id')).select_related('user') comments = activities.comments.filter(submission=OuterRef('id')).visible_to(user) + roles_for_review = self.model.assigned.field.model.objects.with_roles().filter( + submission=OuterRef('id'), reviewer=user) reviews = self.model.reviews.field.model.objects.filter(submission=OuterRef('id')) @@ -130,6 +132,7 @@ class ApplicationSubmissionQueryset(JSONOrderable): reviews.submitted().values('submission').annotate(calc_recommendation=Sum('recommendation') / Count('recommendation')).values('calc_recommendation'), output_field=IntegerField(), ), + role_assigned=Subquery(roles_for_review[:1].values('role__name')), ).prefetch_related( 'reviews__author' ).select_related( diff --git a/opentech/apply/funds/tables.py b/opentech/apply/funds/tables.py index 620040584ec9b00af6ec9de12566ffe2ba00d095..a48ed7dfb1980d9946f4fd29de8fe525b7f4ca67 100644 --- a/opentech/apply/funds/tables.py +++ b/opentech/apply/funds/tables.py @@ -115,6 +115,14 @@ class SummarySubmissionsTable(BaseAdminSubmissionsTable): orderable = False +class SummarySubmissionsTableWithRole(BaseAdminSubmissionsTable): + """ Adds Role Assigned to the 'Waiting for My Review' table """ + role_assigned = tables.Column(verbose_name="Assigned Role") + + class Meta(BaseAdminSubmissionsTable.Meta): + orderable = False + + def get_used_rounds(request): return Round.objects.filter(submissions__isnull=False).distinct()