Skip to content

Commit de62fd7

Browse files
fix: Allow additional draft forms to be added to IPR disclosure edit form (ietf-tools#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
1 parent 364250a commit de62fd7

4 files changed

Lines changed: 24 additions & 32 deletions

File tree

ietf/ipr/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def edit(request, id, updates=None):
296296
ipr = get_object_or_404(IprDisclosureBase, id=id).get_child()
297297
type = class_to_type[ipr.__class__.__name__]
298298

299-
DraftFormset = inlineformset_factory(IprDisclosureBase, IprDocRel, form=DraftForm, can_delete=True, extra=1)
299+
DraftFormset = inlineformset_factory(IprDisclosureBase, IprDocRel, form=DraftForm, can_delete=True, extra=0)
300300

301301
if request.method == 'POST':
302302
form = ipr_form_mapping[ipr.__class__.__name__](request.POST,instance=ipr)
@@ -316,7 +316,7 @@ def edit(request, id, updates=None):
316316
else:
317317
valid_formsets = True
318318

319-
if form.is_valid() and valid_formsets:
319+
if form.is_valid() and valid_formsets:
320320
updates = form.cleaned_data.get('updates')
321321
disclosure = form.save(commit=False)
322322
disclosure.save()

ietf/static/js/ipr-edit.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ $(document)
1818
["for", "id", "name"].forEach(function (at) {
1919
var val = x.attr(at);
2020
if (val && val.match("iprdocrel")) {
21-
x.attr(at, val.replace('-1-', '-' + total + '-'));
21+
x.attr(at, val.replace('__prefix__', total.toString()));
2222
}
2323
});
2424
});
@@ -27,6 +27,8 @@ $(document)
2727
totalField.val(total);
2828

2929
template.before(el);
30+
31+
el.find('.select2-field').each((index, element) => setupSelect2Field($(element)));
3032
});
3133

3234
function updateRevisions() {

ietf/templates/ipr/details_edit.html

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -131,37 +131,13 @@ <h2 class="mt-4">{% cycle section %}. IETF document or other contribution to whi
131131
</p>
132132
{{ draft_formset.management_form }}
133133
{% for draft_form in draft_formset %}
134-
<div class="row draft-row {% if forloop.last %}template d-none{% endif %}">
135-
<label class="col-md-2 fw-bold" for="{{ draft_form.document.id_for_label }}">{{ draft_form.document.label }}</label>
136-
<div class="col-md-6">
137-
{{ draft_form.id }}
138-
{{ draft_form.document }}
139-
{% if draft_form.document.errors %}<div class="alert alert-danger my-3">{{ draft_form.document.errors }}</div>{% endif %}
140-
</div>
141-
<div class="col-md-2">
142-
{% bootstrap_field draft_form.revisions class="form-control" placeholder="Revisions, e.g., 04-07" show_help=False show_label=False %}
143-
<label class="d-none" for="{{ draft_form.revisions.id_for_label }}">{{ draft_form.revisions.label }}</label>
144-
</div>
145-
<div class="col-md-2">
146-
{% bootstrap_field draft_form.sections class="form-control" placeholder="Sections" show_help=False show_label=False %}
147-
<label class="d-none" for="{{ draft_form.sections.id_for_label }}">{{ draft_form.sections.label }}</label>
148-
</div>
134+
<div class="row draft-row">
135+
{% include "ipr/details_edit_draft.html" with draft_form=draft_form only %}
149136
</div>
150137
{% endfor %}
151-
{% comment %}
152-
{% for draft_form in draft_formset %}
153-
<div class="row draft-row {% if forloop.last %}template{% endif %}">
154-
<div class="col-md-2 fw-bold">{% bootstrap_label draft_form.document.label %}</div>
155-
<div class="col-md-6">{% bootstrap_field draft_form.document label_class="d-none" show_help=False %}</div>
156-
<div class="col-md-2">
157-
{% bootstrap_field draft_form.revisions placeholder="Revisions, e.g., 04-07" label_class="d-none" show_help=False %}
158-
</div>
159-
<div class="col-md-2">
160-
{% bootstrap_field draft_form.sections placeholder="Sections" label_class="d-none" show_help=False %}
161-
</div>
162-
</div>
163-
{% endfor %}
164-
{% endcomment %}
138+
<div class="row draft-row template d-none">
139+
{% include "ipr/details_edit_draft.html" with draft_form=draft_formset.empty_form only %}
140+
</div>
165141
<div class="mb-3 row">
166142
<div class="col-md-2"></div>
167143
<div class="col-md-10">
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{% load django_bootstrap5 %}<label class="col-md-2 fw-bold" for="{{ draft_form.document.id_for_label }}">{{ draft_form.document.label }}</label>
2+
<div class="col-md-6">
3+
{{ draft_form.id }}
4+
{{ draft_form.document }}
5+
{% if draft_form.document.errors %}<div class="alert alert-danger my-3">{{ draft_form.document.errors }}</div>{% endif %}
6+
</div>
7+
<div class="col-md-2">
8+
{% bootstrap_field draft_form.revisions class="form-control" placeholder="Revisions, e.g., 04-07" show_help=False show_label=False %}
9+
<label class="d-none" for="{{ draft_form.revisions.id_for_label }}">{{ draft_form.revisions.label }}</label>
10+
</div>
11+
<div class="col-md-2">
12+
{% bootstrap_field draft_form.sections class="form-control" placeholder="Sections" show_help=False show_label=False %}
13+
<label class="d-none" for="{{ draft_form.sections.id_for_label }}">{{ draft_form.sections.label }}</label>
14+
</div>

0 commit comments

Comments
 (0)