From 93d81946d1984b891ef7e908a078c1864889b27b Mon Sep 17 00:00:00 2001 From: Parbhat Puri <parbhatpuri17@gmail.com> Date: Mon, 22 Apr 2019 10:57:56 +0000 Subject: [PATCH] GH-1147: basic template partner and community detail view and edit view for partner --- ...pplicationsubmission_community_detail.html | 26 +++++++++++++++++ .../applicationsubmission_partner_detail.html | 26 +++++++++++++++++ opentech/apply/funds/views.py | 28 +++++++++++-------- 3 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 opentech/apply/funds/templates/funds/applicationsubmission_community_detail.html create mode 100644 opentech/apply/funds/templates/funds/applicationsubmission_partner_detail.html diff --git a/opentech/apply/funds/templates/funds/applicationsubmission_community_detail.html b/opentech/apply/funds/templates/funds/applicationsubmission_community_detail.html new file mode 100644 index 000000000..b10fa17c7 --- /dev/null +++ b/opentech/apply/funds/templates/funds/applicationsubmission_community_detail.html @@ -0,0 +1,26 @@ +{% extends "funds/applicationsubmission_detail.html" %} +{% load static workflow_tags review_tags determination_tags %} + +{% block reviews %} + <div class="sidebar__inner"> + <h5>Reviews & assignees</h5> + + {% include 'funds/includes/review_sidebar.html' %} + + <div class="wrapper wrapper--sidebar-buttons"> + {% include 'review/includes/review_button.html' with submission=object class="button--half-width" %} + </div> + </div> +{% endblock %} + +{% block related %} +{% endblock %} + +{% block extra_js %} + {{ reviewer_form.media.js }} + {{ comment_form.media.js }} + <script src="{% static 'js/apply/tabs.js' %}"></script> + <script src="{% static 'js/apply/toggle-reviewers.js' %}"></script> + <script src="{% static 'js/apply/toggle-sidebar.js' %}"></script> + <script src="{% static 'js/apply/submission-text-cleanup.js' %}"></script> +{% endblock %} diff --git a/opentech/apply/funds/templates/funds/applicationsubmission_partner_detail.html b/opentech/apply/funds/templates/funds/applicationsubmission_partner_detail.html new file mode 100644 index 000000000..b10fa17c7 --- /dev/null +++ b/opentech/apply/funds/templates/funds/applicationsubmission_partner_detail.html @@ -0,0 +1,26 @@ +{% extends "funds/applicationsubmission_detail.html" %} +{% load static workflow_tags review_tags determination_tags %} + +{% block reviews %} + <div class="sidebar__inner"> + <h5>Reviews & assignees</h5> + + {% include 'funds/includes/review_sidebar.html' %} + + <div class="wrapper wrapper--sidebar-buttons"> + {% include 'review/includes/review_button.html' with submission=object class="button--half-width" %} + </div> + </div> +{% endblock %} + +{% block related %} +{% endblock %} + +{% block extra_js %} + {{ reviewer_form.media.js }} + {{ comment_form.media.js }} + <script src="{% static 'js/apply/tabs.js' %}"></script> + <script src="{% static 'js/apply/toggle-reviewers.js' %}"></script> + <script src="{% static 'js/apply/toggle-sidebar.js' %}"></script> + <script src="{% static 'js/apply/submission-text-cleanup.js' %}"></script> +{% endblock %} diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 20291ced2..2d8d39f13 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -480,7 +480,7 @@ class ReviewerSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, Del class PartnerSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, DelegateableView, DetailView): - template_name_suffix = '_reviewer_detail' + template_name_suffix = '_partner_detail' model = ApplicationSubmission form_views = [CommentFormView] @@ -491,15 +491,14 @@ class PartnerSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, Dele if submission.user == request.user: return ApplicantSubmissionDetailView.as_view()(request, *args, **kwargs) # Only allow partners in the submission they are added as partners - if request.user.is_partner: - partner_has_access = submission.partners.filter(pk=request.user.pk).exists() - if not partner_has_access: - raise PermissionDenied + partner_has_access = submission.partners.filter(pk=request.user.pk).exists() + if not partner_has_access: + raise PermissionDenied return super().dispatch(request, *args, **kwargs) class CommunitySubmissionDetailView(ReviewContextMixin, ActivityContextMixin, DelegateableView, DetailView): - template_name_suffix = '_reviewer_detail' + template_name_suffix = '_community_detail' model = ApplicationSubmission form_views = [CommentFormView] @@ -652,11 +651,7 @@ class AdminSubmissionEditView(BaseSubmissionEditView): class ApplicantSubmissionEditView(BaseSubmissionEditView): def dispatch(self, request, *args, **kwargs): submission = self.get_object() - if request.user.is_partner: - partner_has_access = submission.partners.filter(pk=request.user.pk).exists() - if not partner_has_access: - raise PermissionDenied - elif request.user != submission.user: + if request.user != submission.user: raise PermissionDenied return super().dispatch(request, *args, **kwargs) @@ -711,9 +706,20 @@ class ApplicantSubmissionEditView(BaseSubmissionEditView): return HttpResponseRedirect(self.get_success_url()) +@method_decorator(login_required, name='dispatch') +class PartnerSubmissionEditView(ApplicantSubmissionEditView): + def dispatch(self, request, *args, **kwargs): + submission = self.get_object() + partner_has_access = submission.partners.filter(pk=request.user.pk).exists() + if not partner_has_access: + raise PermissionDenied + return super(ApplicantSubmissionEditView, self).dispatch(request, *args, **kwargs) + + class SubmissionEditView(ViewDispatcher): admin_view = AdminSubmissionEditView applicant_view = ApplicantSubmissionEditView + partner_view = PartnerSubmissionEditView @method_decorator(staff_required, name='dispatch') -- GitLab