From 39d674b4ca7b418c3c0d1255a882e1750f92952d Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Wed, 9 Nov 2016 10:07:49 +0000 Subject: [PATCH] Add missing resource and missing test review secretary settings - Legacy-Id: 12313 --- ietf/group/tests_review.py | 30 ++++++++++++++++++++++++++++++ ietf/group/urls_info_details.py | 2 +- ietf/group/utils.py | 2 +- ietf/group/views_review.py | 2 +- ietf/review/resources.py | 23 ++++++++++++++++++++++- ietf/review/utils.py | 2 +- 6 files changed, 56 insertions(+), 5 deletions(-) diff --git a/ietf/group/tests_review.py b/ietf/group/tests_review.py index f599475c1..c67ef3906 100644 --- a/ietf/group/tests_review.py +++ b/ietf/group/tests_review.py @@ -407,6 +407,36 @@ class ReviewTests(TestCase): self.assertTrue(start_date.isoformat(), msg_content) self.assertTrue(end_date.isoformat(), msg_content) + def test_change_review_secretary_settings(self): + doc = make_test_data() + + review_req = make_review_data(doc) + + secretary = Person.objects.get(user__username="reviewsecretary") + + url = urlreverse(ietf.group.views_review.change_review_secretary_settings, kwargs={ + "acronym": review_req.team.acronym, + }) + + login_testing_unauthorized(self, secretary.user.username, url) + + url = urlreverse(ietf.group.views_review.change_review_secretary_settings, kwargs={ + "group_type": review_req.team.type_id, + "acronym": review_req.team.acronym, + }) + + # get + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + + # set settings + r = self.client.post(url, { + "remind_days_before_deadline": "6" + }) + self.assertEqual(r.status_code, 302) + settings = ReviewSecretarySettings.objects.get(person=secretary, team=review_req.team) + self.assertEqual(settings.remind_days_before_deadline, 6) + def test_review_reminders(self): doc = make_test_data() diff --git a/ietf/group/urls_info_details.py b/ietf/group/urls_info_details.py index 8902bcd3d..16653ae52 100644 --- a/ietf/group/urls_info_details.py +++ b/ietf/group/urls_info_details.py @@ -35,6 +35,6 @@ urlpatterns = patterns('', (r'^reviews/email-assignments/$', views_review.email_open_review_assignments), (r'^reviewers/$', views_review.reviewer_overview), (r'^reviewers/(?P[\w%+-.@]+)/settings/$', views_review.change_reviewer_settings), - (r'^secretarysettings/$', views_review.change_secretary_settings), + (r'^secretarysettings/$', views_review.change_review_secretary_settings), url(r'^email-aliases/$', RedirectView.as_view(pattern_name='ietf.group.views.email',permanent=False),name='old_group_email_aliases'), ) diff --git a/ietf/group/utils.py b/ietf/group/utils.py index 96b114ad6..98c1943f9 100644 --- a/ietf/group/utils.py +++ b/ietf/group/utils.py @@ -217,7 +217,7 @@ def construct_group_menu_context(request, group, selected, group_type, others): actions.append((u"Manage assigned reviews", urlreverse(ietf.group.views_review.manage_review_requests, kwargs=dict(assignment_status="assigned", **kwargs)))) if Role.objects.filter(name="secr", group=group, person__user=request.user).exists(): - actions.append((u"Secretary settings", urlreverse(ietf.group.views_review.change_secretary_settings, kwargs=kwargs))) + actions.append((u"Secretary settings", urlreverse(ietf.group.views_review.change_review_secretary_settings, kwargs=kwargs))) if group.state_id != "conclude" and (is_admin or can_manage): diff --git a/ietf/group/views_review.py b/ietf/group/views_review.py index 80fec0209..c97d7f1c6 100644 --- a/ietf/group/views_review.py +++ b/ietf/group/views_review.py @@ -572,7 +572,7 @@ class ReviewSecretarySettingsForm(forms.ModelForm): @login_required -def change_secretary_settings(request, acronym, group_type=None): +def change_review_secretary_settings(request, acronym, group_type=None): group = get_group_or_404(acronym, group_type) if not group.features.has_reviews: raise Http404 diff --git a/ietf/review/resources.py b/ietf/review/resources.py index 2dffd8677..8bd655d45 100644 --- a/ietf/review/resources.py +++ b/ietf/review/resources.py @@ -9,7 +9,8 @@ from ietf.api import ToOneField # pyflakes:ignore from ietf.review.models import (ReviewerSettings, ReviewRequest, ResultUsedInReviewTeam, TypeUsedInReviewTeam, - UnavailablePeriod, ReviewWish, NextReviewerInTeam) + UnavailablePeriod, ReviewWish, NextReviewerInTeam, + ReviewSecretarySettings) from ietf.person.resources import PersonResource @@ -164,3 +165,23 @@ class TypeUsedInReviewTeamResource(ModelResource): } api.review.register(TypeUsedInReviewTeamResource()) + + +from ietf.person.resources import PersonResource +from ietf.group.resources import GroupResource +class ReviewSecretarySettingsResource(ModelResource): + team = ToOneField(GroupResource, 'team') + person = ToOneField(PersonResource, 'person') + class Meta: + queryset = ReviewSecretarySettings.objects.all() + serializer = api.Serializer() + cache = SimpleCache() + #resource_name = 'reviewsecretarysettings' + filtering = { + "id": ALL, + "remind_days_before_deadline": ALL, + "team": ALL_WITH_RELATIONS, + "person": ALL_WITH_RELATIONS, + } +api.review.register(ReviewSecretarySettingsResource()) + diff --git a/ietf/review/utils.py b/ietf/review/utils.py index af0b1cc1e..d8d5f82aa 100644 --- a/ietf/review/utils.py +++ b/ietf/review/utils.py @@ -886,7 +886,7 @@ def email_secretary_reminder(review_request, secretary_role): subject = "Reminder: deadline for review of {} in {} is {}".format(review_request.doc_id, team.acronym, review_request.deadline.isoformat()) import ietf.group.views_review - settings_url = urlreverse(ietf.group.views_review.change_secretary_settings, kwargs={ "acronym": team.acronym, "group_type": team.type_id }) + settings_url = urlreverse(ietf.group.views_review.change_review_secretary_settings, kwargs={ "acronym": team.acronym, "group_type": team.type_id }) import ietf.doc.views_review request_url = urlreverse(ietf.doc.views_review.review_request, kwargs={ "name": review_request.doc_id, "request_id": review_request.pk })