fix: Allow additional draft forms to be added to IPR disclosure edit form (#4952)

* chore: Remove commented-out template content

* fix: Correctly number newly added draft_form inputs on IPR edit form

* fix: Initialize select2 when adding a new field instance
This commit is contained in:
Jennifer Richards 2023-01-06 17:24:08 -04:00 committed by GitHub
parent 364250a291
commit de62fd72d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 32 deletions

View file

@ -296,7 +296,7 @@ def edit(request, id, updates=None):
ipr = get_object_or_404(IprDisclosureBase, id=id).get_child()
type = class_to_type[ipr.__class__.__name__]
DraftFormset = inlineformset_factory(IprDisclosureBase, IprDocRel, form=DraftForm, can_delete=True, extra=1)
DraftFormset = inlineformset_factory(IprDisclosureBase, IprDocRel, form=DraftForm, can_delete=True, extra=0)
if request.method == 'POST':
form = ipr_form_mapping[ipr.__class__.__name__](request.POST,instance=ipr)
@ -316,7 +316,7 @@ def edit(request, id, updates=None):
else:
valid_formsets = True
if form.is_valid() and valid_formsets:
if form.is_valid() and valid_formsets:
updates = form.cleaned_data.get('updates')
disclosure = form.save(commit=False)
disclosure.save()

View file

@ -18,7 +18,7 @@ $(document)
["for", "id", "name"].forEach(function (at) {
var val = x.attr(at);
if (val && val.match("iprdocrel")) {
x.attr(at, val.replace('-1-', '-' + total + '-'));
x.attr(at, val.replace('__prefix__', total.toString()));
}
});
});
@ -27,6 +27,8 @@ $(document)
totalField.val(total);
template.before(el);
el.find('.select2-field').each((index, element) => setupSelect2Field($(element)));
});
function updateRevisions() {

View file

@ -131,37 +131,13 @@
</p>
{{ draft_formset.management_form }}
{% for draft_form in draft_formset %}
<div class="row draft-row {% if forloop.last %}template d-none{% endif %}">
<label class="col-md-2 fw-bold" for="{{ draft_form.document.id_for_label }}">{{ draft_form.document.label }}</label>
<div class="col-md-6">
{{ draft_form.id }}
{{ draft_form.document }}
{% if draft_form.document.errors %}<div class="alert alert-danger my-3">{{ draft_form.document.errors }}</div>{% endif %}
</div>
<div class="col-md-2">
{% bootstrap_field draft_form.revisions class="form-control" placeholder="Revisions, e.g., 04-07" show_help=False show_label=False %}
<label class="d-none" for="{{ draft_form.revisions.id_for_label }}">{{ draft_form.revisions.label }}</label>
</div>
<div class="col-md-2">
{% bootstrap_field draft_form.sections class="form-control" placeholder="Sections" show_help=False show_label=False %}
<label class="d-none" for="{{ draft_form.sections.id_for_label }}">{{ draft_form.sections.label }}</label>
</div>
<div class="row draft-row">
{% include "ipr/details_edit_draft.html" with draft_form=draft_form only %}
</div>
{% endfor %}
{% comment %}
{% for draft_form in draft_formset %}
<div class="row draft-row {% if forloop.last %}template{% endif %}">
<div class="col-md-2 fw-bold">{% bootstrap_label draft_form.document.label %}</div>
<div class="col-md-6">{% bootstrap_field draft_form.document label_class="d-none" show_help=False %}</div>
<div class="col-md-2">
{% bootstrap_field draft_form.revisions placeholder="Revisions, e.g., 04-07" label_class="d-none" show_help=False %}
</div>
<div class="col-md-2">
{% bootstrap_field draft_form.sections placeholder="Sections" label_class="d-none" show_help=False %}
</div>
</div>
{% endfor %}
{% endcomment %}
<div class="row draft-row template d-none">
{% include "ipr/details_edit_draft.html" with draft_form=draft_formset.empty_form only %}
</div>
<div class="mb-3 row">
<div class="col-md-2"></div>
<div class="col-md-10">

View file

@ -0,0 +1,14 @@
{% load django_bootstrap5 %}<label class="col-md-2 fw-bold" for="{{ draft_form.document.id_for_label }}">{{ draft_form.document.label }}</label>
<div class="col-md-6">
{{ draft_form.id }}
{{ draft_form.document }}
{% if draft_form.document.errors %}<div class="alert alert-danger my-3">{{ draft_form.document.errors }}</div>{% endif %}
</div>
<div class="col-md-2">
{% bootstrap_field draft_form.revisions class="form-control" placeholder="Revisions, e.g., 04-07" show_help=False show_label=False %}
<label class="d-none" for="{{ draft_form.revisions.id_for_label }}">{{ draft_form.revisions.label }}</label>
</div>
<div class="col-md-2">
{% bootstrap_field draft_form.sections class="form-control" placeholder="Sections" show_help=False show_label=False %}
<label class="d-none" for="{{ draft_form.sections.id_for_label }}">{{ draft_form.sections.label }}</label>
</div>