diff --git a/journals/forms.py b/journals/forms.py index fcf4a92ee631e238247104a4cc3c29ea1719a73e..12ec2553258242d43497e4b735ba05d325ccb7ad 100644 --- a/journals/forms.py +++ b/journals/forms.py @@ -93,6 +93,8 @@ class BaseReferenceFormSet(BaseModelFormSet): def __init__(self, *args, **kwargs): self.publication = kwargs.pop('publication') + extra = kwargs.pop('extra') + self.extra = int(extra if extra else '0') kwargs['form_kwargs'] = {'publication': self.publication} super().__init__(*args, **kwargs) @@ -146,7 +148,7 @@ class BaseReferenceFormSet(BaseModelFormSet): self.initial_extra = self.initial_references else: self.initial_extra.extend(self.initial_references) - self.extra = len(self.initial_extra) + self.extra += len(self.initial_extra) class ReferenceForm(forms.ModelForm): diff --git a/journals/templates/journals/update_references.html b/journals/templates/journals/update_references.html index 2c518c321ceeb417bdea231c4f8bd1aa0963d0b4..9d490a4cd1f65184a80d0444f2289ac784daf386 100644 --- a/journals/templates/journals/update_references.html +++ b/journals/templates/journals/update_references.html @@ -4,11 +4,39 @@ {% block pagetitle %}: Update References{% endblock pagetitle %} +{% block breadcrumb %} + <div class="container-outside header"> + <div class="container"> + <nav class="breadcrumb hidden-sm-down"> + <a href="{{publication.get_absolute_url}}" class="breadcrumb-item">{{publication.citation}}</a> + <span class="breadcrumb-item active">Update References</span> + </nav> + </div> + </div> +{% endblock %} + {% block content %} <h1>Update References</h1> -<a href="{% url 'journals:update_references' publication.doi_label %}?prefill=form">Prefill forms (this might take a minute)</a> +<form action="{% url 'journals:update_references' publication.doi_label %}" method="get" class="mb-4"> + + <div class="form-group row"> + <label class="col-form-label col-md-4 text-right" for="id_email">Number of additional empty references</label> + <div class="col-md-8"> + <input class="form-control" name="extra" type="number" value="{{ request.GET.extra|default:'0' }}"> + </div> + </div> + <div class="ml-auto col-md-8 multiple-checkbox"> + <label for="prefiller_checkbox"> + <input type="checkbox" name="prefill" value="form" id="prefiller_checkbox"> + Prefill form with Crossref data (this might take a minute) + </label> + </div> + <input type="submit" class="btn btn-primary" value="Refresh"> +</form> + +<hr> <form action="{% url 'journals:update_references' publication.doi_label %}" method="post" enctype="multipart/form-data"> {% csrf_token %} diff --git a/journals/views.py b/journals/views.py index af3410f00b0ea9e6efe3caf502f93a8bfc766da3..37ee5003c99fb32ea56d4288ec4061042e55e98a 100644 --- a/journals/views.py +++ b/journals/views.py @@ -455,7 +455,9 @@ def update_references(request, doi_label): """ publication = get_object_or_404(Publication, doi_label=doi_label) references = publication.references.all() - formset = ReferenceFormSet(request.POST or None, queryset=references, publication=publication) + + formset = ReferenceFormSet(request.POST or None, queryset=references, publication=publication, + extra=request.GET.get('extra')) if request.GET.get('prefill'): formset.prefill()