diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo index 8dfc74b2d..7f7aaf9ee 100644 Binary files a/locale/en/LC_MESSAGES/django.mo and b/locale/en/LC_MESSAGES/django.mo differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 2784d4124..705dc97c8 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -5703,6 +5703,47 @@ msgstr "Task edited" msgid "Taak verwijderd" msgstr "Task deleted" +#: proposals/forms.py:190 +msgid "Je dient een eindverantwoordelijke op te geven." +msgstr "You are required to specify the researcher with final responsibility." + +#: proposals/forms.py:579 +msgid "Nieuwe beoogde startdatum" +msgstr "New intended start date" + +#: proposals/models.py:517 +#: proposals/templates/proposals/vue_templates/proposal_archive_list.html:115 +#: proposals/templates/proposals/vue_templates/proposal_list.html:166 +msgid "Eindverantwoordelijke onderzoeker" +msgstr "Researcher with final responsibility" + +#: proposals/templates/proposals/proposal_update_date_start.html:14 +#: proposals/templates/proposals/proposal_update_date_start.html:28 +msgid "Startdatum aanpassen" +msgstr "Edit start date" + +#: proposals/templates/proposals/proposal_update_date_start.html:17 +msgid "" +"Op deze pagina kan de startdatum worden aangepast van de aanvraag %(title)s " +"(referentienummer %(ref_number)s). Let op! Als de review al " +"is afgerond, wordt de nieuwe startdatum niet automatisch weergegeven in de " +"PDF. Mocht je de PDF opnieuw willen genereren, neem hierover dan contact op " +"met" +msgstr "" +"On this page, the start date of proposal %(title)s (reference number " +"%(ref_number)s) can be edited. Note! If the review has " +"already been concluded, the new start date will not be displayed in the PDF. " +"If you would like the PDF to be generated with the new start date, please " +"reach out to " + +#: reviews/templates/reviews/vue_templates/review_list.html:122 +msgid "Reviewronde beƫindigd: " +msgstr "Reviewing round ended: " + +#: reviews/utils/review_actions.py:304 +msgid "Startdatum wijzigen" +msgstr "Edit start date" + #~ msgid "" #~ "De revisie bevat interventieonderzoek, terwijl de originele aanvraag dat " #~ "niet bevat." diff --git a/proposals/forms.py b/proposals/forms.py index 382492b49..bb860fb6f 100644 --- a/proposals/forms.py +++ b/proposals/forms.py @@ -21,6 +21,7 @@ from .validators import UniqueTitleValidator from .widgets import SelectMultipleUser, SelectUser +from cdh.core.forms import DateField class ProposalForm(UserKwargModelFormMixin, SoftValidationMixin, ConditionalModelForm): @@ -583,6 +584,15 @@ class Meta: 'dmp_file' ] +class ProposalUpdateDateStartForm(forms.ModelForm): + date_start = DateField(label=_('Nieuwe beoogde startdatum')) + + class Meta: + model = Proposal + fields = [ + 'date_start' + ] + class ProposalSubmitForm(forms.ModelForm): class Meta: model = Proposal diff --git a/proposals/templates/proposals/proposal_update_date_start.html b/proposals/templates/proposals/proposal_update_date_start.html new file mode 100644 index 000000000..389eceac6 --- /dev/null +++ b/proposals/templates/proposals/proposal_update_date_start.html @@ -0,0 +1,33 @@ +{% extends "base/base.html" %} + +{% load static %} +{% load i18n %} + +{% block header_title %} + {% trans "Formulieren aanpassen" %} - {{ block.super }} +{% endblock %} + +{% block content %} +
+
+

+ {% trans "Startdatum aanpassen" %} +

+

+ {% blocktrans trimmed with title=proposal.title ref_number=proposal.reference_number %} + Op deze pagina kan de startdatum worden aangepast van de aanvraag {{ title }} + (referentienummer {{ ref_number }}). Let op! Als de review al is afgerond, + wordt de nieuwe startdatum niet automatisch weergegeven in de PDF. Mocht je de PDF + opnieuw willen genereren, neem hierover dan contact op met + {% endblocktrans %} + portalsupport.gw@uu.nl. +

+
{% csrf_token %} + {{ form.as_table }}
+ + + {% trans "Terug naar de vorige pagina" %} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/proposals/urls.py b/proposals/urls.py index d7dcd56e5..8b42ab94c 100644 --- a/proposals/urls.py +++ b/proposals/urls.py @@ -15,7 +15,8 @@ ProposalSubmitPreApproved, ProposalUpdatePreApproved, \ ProposalUsersOnlyArchiveView, \ ProposalCopyAmendment, ProposalsPublicArchiveView, \ - ProposalUpdateDataManagement, TranslatedConsentFormsView + ProposalUpdateDataManagement, TranslatedConsentFormsView, \ + ProposalUpdateDateStart from .views.study_views import StudyStart, StudyConsent from .views.wmo_views import WmoCreate, WmoUpdate, \ @@ -84,6 +85,8 @@ name='data_management'), path('update_data_management//', ProposalUpdateDataManagement.as_view(), name='update_data_management'), + path('update_date_start//', ProposalUpdateDateStart.as_view(), + name='update_date_start'), path('submit//', include([ path('', ProposalSubmit.as_view(), name='submit'), diff --git a/proposals/views/proposal_views.py b/proposals/views/proposal_views.py index 2c767133b..ad3fa98ec 100644 --- a/proposals/views/proposal_views.py +++ b/proposals/views/proposal_views.py @@ -28,7 +28,8 @@ from ..forms import ProposalConfirmationForm, ProposalCopyForm, \ ProposalDataManagementForm, ProposalForm, ProposalStartPracticeForm, \ ProposalSubmitForm, RevisionProposalCopyForm, AmendmentProposalCopyForm, \ - ProposalUpdateDataManagementForm, TranslatedConsentForms + ProposalUpdateDataManagementForm, ProposalUpdateDateStartForm, \ + TranslatedConsentForms from ..models import Proposal, Wmo from ..utils import generate_pdf, generate_ref_number from proposals.mixins import ProposalMixin, ProposalContextMixin, \ @@ -376,7 +377,19 @@ class ProposalUpdateDataManagement(GroupRequiredMixin, generic.UpdateView): def get_success_url(self): """Continue to the URL specified in the 'next' POST parameter""" return reverse('reviews:detail', args=[self.object.latest_review().pk]) + +class ProposalUpdateDateStart(GroupRequiredMixin, generic.UpdateView): + """ + Allows the secretary to change the date_start on the Proposal level + """ + model = Proposal + template_name = 'proposals/proposal_update_date_start.html' + form_class = ProposalUpdateDateStartForm + group_required = settings.GROUP_SECRETARY + def get_success_url(self): + """Continue to the URL specified in the 'next' POST parameter""" + return reverse('reviews:detail', args=[self.object.latest_review().pk]) class ProposalSubmit(ProposalContextMixin, AllowErrorsOnBackbuttonMixin, UpdateView, ): model = Proposal diff --git a/reviews/api/views.py b/reviews/api/views.py index 9d8953025..37d5aa0a8 100644 --- a/reviews/api/views.py +++ b/reviews/api/views.py @@ -360,6 +360,8 @@ def get_context(self): 'CLOSED': Review.CLOSED, 'GO': Review.GO, 'GO_POST_HOC': Review.GO_POST_HOC, + 'REVISION': Review.REVISION, + } context['current_user_pk'] = self.request.user.pk diff --git a/reviews/templates/reviews/vue_templates/review_list.html b/reviews/templates/reviews/vue_templates/review_list.html index f56929f52..b9f90fcea 100644 --- a/reviews/templates/reviews/vue_templates/review_list.html +++ b/reviews/templates/reviews/vue_templates/review_list.html @@ -118,6 +118,12 @@

{{ review.get_stage_display }} {% endverbatim %} +
+ {% trans "Reviewronde beƫindigd: " %} + {% verbatim %} + {{ review.date_end | date("DD-MM-YYYY") }} + {% endverbatim %} +
diff --git a/reviews/utils/review_actions.py b/reviews/utils/review_actions.py index a9d61bc2c..41801ca66 100644 --- a/reviews/utils/review_actions.py +++ b/reviews/utils/review_actions.py @@ -22,6 +22,7 @@ def __init__(self, review, user): DiscontinueReview(review, user), SendConfirmation(review, user), ChangeArchiveStatus(review, user), + ChangeDateStart(review, user), ] self.ufl_actions = [] @@ -281,4 +282,24 @@ def description(self): return _('Verberg aanvraag uit het archief') else: return _('Plaats aanvraag in het archief.') + +class ChangeDateStart(ReviewAction): + + def is_available(self): + + user = self.user + + user_groups = user.groups.values_list("name", flat=True) + if not settings.GROUP_SECRETARY in user_groups: + return False + + return True + + def action_url(self): + + return reverse('proposals:update_date_start', args=(self.review.proposal.pk,)) + + def description(self): + + return _('Startdatum wijzigen')