diff --git a/commentaries/forms.py b/commentaries/forms.py index e1f29641d8259ca7ae4655ee706520fd5f8a24fe..660d8d74ff21abf19c1fbd24dbe515980fc0e906 100644 --- a/commentaries/forms.py +++ b/commentaries/forms.py @@ -34,6 +34,10 @@ class DOIToQueryForm(forms.Form): def commentary_exists(self, input_doi): return Commentary.objects.filter(pub_DOI=input_doi).exists() + def request_published_article_form_prefill_data(self): + additional_form_data = {'type': 'published', 'pub_DOI': self.cleaned_data['doi']} + return {**self.crossref_data, **additional_form_data} + class IdentifierToQueryForm(forms.Form): identifier = forms.CharField(widget=forms.TextInput( diff --git a/commentaries/test_views.py b/commentaries/test_views.py index 96220a2eb89c2780dbbed7aeb6a1e9a4c3b1916c..2077489c0a13475745c6796199a5621532fd124e 100644 --- a/commentaries/test_views.py +++ b/commentaries/test_views.py @@ -59,8 +59,7 @@ class PrefillUsingDOITest(TestCase): request.user = UserFactory() response = prefill_using_DOI(request) - # Not sure what to test here - raise NotImplementedError + self.assertEqual(response.status_code, 200) class VetCommentaryRequestsTest(TestCase): diff --git a/commentaries/views.py b/commentaries/views.py index 197905b1735089e98ccdff9f2ffd6bab4b4cb157..63f9293afe49a230d702794d2854220bafea067f 100644 --- a/commentaries/views.py +++ b/commentaries/views.py @@ -91,10 +91,8 @@ def prefill_using_DOI(request): doi_query_form = DOIToQueryForm(request.POST) # The form checks if doi is valid and commentary doesn't already exist. if doi_query_form.is_valid(): - doi = doi_query_form.cleaned_data['doi'] - additional_form_data = {'type': 'published', 'pub_DOI': doi} - total_form_data = {**doi_query_form.crossref_data, **additional_form_data} - form = RequestPublishedArticleForm(initial=total_form_data) + prefill_data = doi_query_form.request_published_article_form_prefill_data() + form = RequestPublishedArticleForm(initial=prefill_data) else: form = RequestPublishedArticleForm()