diff --git a/opentech/apply/funds/templates/funds/includes/status-block.html b/opentech/apply/funds/templates/funds/includes/status-block.html index 96e9f20edf4cf7a3f0e16bff21adba427acffb3c..782e3d4999225db60eca1efa5a64a33b6493de2e 100644 --- a/opentech/apply/funds/templates/funds/includes/status-block.html +++ b/opentech/apply/funds/templates/funds/includes/status-block.html @@ -1,52 +1,14 @@ <div class="wrapper wrapper--bottom-space"> <section class="section"> - <h4 class="heading heading--normal">By status</h4> + <h4 class="heading heading--normal">By Status</h4> <ul class="status-block"> - <li class="status-block__item"> - <h5 class="status-block__title">Received</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">Internal review</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">In discussion</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">More information</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">Invited for proposal</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">External review</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">Ready for determination</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">Accepted</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> - <li class="status-block__item"> - <h5 class="status-block__title">Dismissed</h5> - <p class="status-block__info">30 Applications</p> - <a class="status-block__link" href="">View</a> - </li> + {% for status, data in status_counts.items %} + <li class="status-block__item"> + <h5 class="status-block__title">{{ data.name }}</h5> + <p class="status-block__info">{{ data.count }} Applications</p> + <a class="status-block__link" href="{% url "funds:submissions:status" status=status %}">View</a> + </li> + {% endfor %} </ul> </section> </div> diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 214436f296f078add7c38b0c598bfef010394c5f..bff504909e79e9fb2c3900294a85e579af155782 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -3,7 +3,7 @@ from copy import copy from django.contrib.auth.decorators import login_required from django.contrib import messages from django.core.exceptions import PermissionDenied -from django.db.models import F, Q +from django.db.models import Count, F, Q from django.http import HttpResponseRedirect, Http404 from django.shortcuts import get_object_or_404 from django.urls import reverse_lazy @@ -154,12 +154,27 @@ class SubmissionOverviewView(AllActivityContextMixin, BaseAdminSubmissionsTable) closed_query = '?round_state=closed' rounds_title = 'All Rounds and Labs' + status_counts = dict( + ApplicationSubmission.objects.current().values('status').annotate( + count=Count('status'), + ).values_list('status', 'count') + ) + + grouped_statuses = { + status: { + 'name': data['name'], + 'count': sum(status_counts.get(status, 0) for status in data['statuses']), + } + for status, data in PHASES_MAPPING.items() + } + return super().get_context_data( open_rounds=open_rounds, open_query=open_query, closed_rounds=closed_rounds, closed_query=closed_query, rounds_title=rounds_title, + status_counts=grouped_statuses, **kwargs, ) diff --git a/opentech/apply/funds/workflow.py b/opentech/apply/funds/workflow.py index b0a965ccab242409cac75da402486072c01eb284..cb5744d5a2480962f84ab8a82375c63375a8cfc3 100644 --- a/opentech/apply/funds/workflow.py +++ b/opentech/apply/funds/workflow.py @@ -752,7 +752,7 @@ PHASES_MAPPING = { 'statuses': phases_matching('internal_review'), }, 'in-discussion': { - 'name': 'In Discussion', + 'name': 'Ready for Discussion', 'statuses': phases_matching('discussion', exclude=[INITIAL_STATE, 'proposal_discussion']), }, 'more-information': { @@ -760,7 +760,7 @@ PHASES_MAPPING = { 'statuses': phases_matching('more_info'), }, 'invited-for-proposal': { - 'name': 'Invited for proposal', + 'name': 'Invited for Proposal', 'statuses': ['draft_proposal'], }, 'external-review': { @@ -768,7 +768,7 @@ PHASES_MAPPING = { 'statuses': phases_matching('external_review'), }, 'ready-for-determination': { - 'name': 'Ready for determination', + 'name': 'Ready for Determination', 'statuses': phases_matching('determination'), }, 'accepted': { diff --git a/opentech/static_src/src/sass/apply/components/_status-block.scss b/opentech/static_src/src/sass/apply/components/_status-block.scss index f8acf13d15c9d67a805d8e570fa3f917e0ae7e53..4184cf264ac021b06c120637f47b522d0813c9d9 100644 --- a/opentech/static_src/src/sass/apply/components/_status-block.scss +++ b/opentech/static_src/src/sass/apply/components/_status-block.scss @@ -18,10 +18,13 @@ border-right: 1px solid $color--light-mid-grey; width: calc(100% / 9); padding: 10px; + display: flex; + align-items: flex-start; + flex-direction: column; } @include media-query(desktop) { - padding: 20px 20px 30px; + padding: 20px 18px 30px; } @include media-query(laptop-short) { @@ -43,16 +46,16 @@ } &__info { - font-size: 14px; + font-size: 13px; color: $color--dark-blue; + + @include media-query(tablet-landscape) { + margin-top: auto; + } } &__title { font-weight: $weight--semibold; - - @include media-query(tablet-landscape) { - height: 55px; - } } &__link { @@ -63,7 +66,6 @@ @include media-query(tablet-landscape) { opacity: 0; pointer-events: none; - height: 55px; #{$root}__item:hover & { opacity: 1;