|
|
@ -1,18 +1,29 @@
|
|
|
|
document.addEventListener('DOMContentLoaded', function(){
|
|
|
|
document.addEventListener('DOMContentLoaded', function(){
|
|
|
|
var button = document.getElementById('add_line');
|
|
|
|
var button = document.getElementById('add_line');
|
|
|
|
var formContainer = document.getElementById('formset-container');
|
|
|
|
var formContainer = document.getElementById('formset-container');
|
|
|
|
var totalForms = document.getElementById('id_form-TOTAL_FORMS');
|
|
|
|
var totalForms = document.getElementById('id_saleline_set-TOTAL_FORMS');
|
|
|
|
button.addEventListener('click', function(){
|
|
|
|
button.addEventListener('click', function(){
|
|
|
|
// Clonar un formulario vacío
|
|
|
|
|
|
|
|
var newForm = formContainer.querySelector('.form-container').cloneNode(true);
|
|
|
|
var newForm = formContainer.querySelector('.form-container').cloneNode(true);
|
|
|
|
// Obtener el número actual de formularios
|
|
|
|
|
|
|
|
var formCount = parseInt(totalForms.value);
|
|
|
|
var formCount = parseInt(totalForms.value);
|
|
|
|
// Actualizar los atributos de los nuevos campos del formulario
|
|
|
|
|
|
|
|
var regex = new RegExp('__prefix__', 'g');
|
|
|
|
var regex = new RegExp('__prefix__', 'g');
|
|
|
|
newForm.innerHTML = newForm.innerHTML.replace(regex, formCount);
|
|
|
|
newForm.innerHTML = newForm.innerHTML.replace(regex, formCount);
|
|
|
|
// Añadir el nuevo formulario al contenedor
|
|
|
|
|
|
|
|
|
|
|
|
var fields = newForm.querySelectorAll('[id^="id_saleline_set-"], [name^="saleline_set-"]');
|
|
|
|
|
|
|
|
fields.forEach(function(field) {
|
|
|
|
|
|
|
|
var oldId = field.id;
|
|
|
|
|
|
|
|
var oldName = field.name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (oldId) {
|
|
|
|
|
|
|
|
var newId = oldId.replace(/-\d+-/, '-' + formCount + '-');
|
|
|
|
|
|
|
|
field.id = newId;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (oldName) {
|
|
|
|
|
|
|
|
var newName = oldName.replace(/-\d+-/, '-' + formCount + '-');
|
|
|
|
|
|
|
|
field.name = newName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
formContainer.appendChild(newForm);
|
|
|
|
formContainer.appendChild(newForm);
|
|
|
|
// Incrementar el total de formularios
|
|
|
|
|
|
|
|
totalForms.value = formCount + 1;
|
|
|
|
totalForms.value = formCount + 1;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|