Fix: сохранение даты и табличной части заказа (корректный префикс formset items-N)

Made-with: Cursor
This commit is contained in:
2026-02-26 13:17:09 +00:00
parent a2577ed3eb
commit 319f38ea05
4 changed files with 24 additions and 12 deletions

View File

@@ -65,7 +65,7 @@ class CustomerOrderCreate(LoginRequiredMixin, CreateView):
logger.info("Создан заказ клиента %s", self.object)
messages.success(self.request, "Заказ создан.")
return redirect(self.success_url)
return self.render_to_response(self.get_context_data(form=form))
return self.render_to_response(self.get_context_data(form=form, formset=formset))
def get(self, request, *args, **kwargs):
self.object = None
@@ -95,7 +95,7 @@ class CustomerOrderUpdate(LoginRequiredMixin, UpdateView):
logger.info("Обновлён заказ клиента %s", self.object)
messages.success(self.request, "Заказ сохранён.")
return redirect(self.success_url)
return self.render_to_response(self.get_context_data(form=form))
return self.render_to_response(self.get_context_data(form=form, formset=formset))
class CustomerOrderDelete(LoginRequiredMixin, DeleteView):
@@ -134,7 +134,7 @@ class SupplierOrderCreate(LoginRequiredMixin, CreateView):
logger.info("Создан заказ поставщику %s", self.object)
messages.success(self.request, "Заказ создан.")
return redirect(self.success_url)
return self.render_to_response(self.get_context_data(form=form))
return self.render_to_response(self.get_context_data(form=form, formset=formset))
def get(self, request, *args, **kwargs):
self.object = None
@@ -164,7 +164,7 @@ class SupplierOrderUpdate(LoginRequiredMixin, UpdateView):
logger.info("Обновлён заказ поставщику %s", self.object)
messages.success(self.request, "Заказ сохранён.")
return redirect(self.success_url)
return self.render_to_response(self.get_context_data(form=form))
return self.render_to_response(self.get_context_data(form=form, formset=formset))
class SupplierOrderDelete(LoginRequiredMixin, DeleteView):

View File

@@ -157,11 +157,11 @@
row.querySelectorAll('input, select').forEach(function(el) {
var n = el.getAttribute('name');
if (n && n.indexOf(prefix) === 0) {
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '\\d+'), prefix + i));
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '-\\d+'), prefix + '-' + i));
}
var id = el.getAttribute('id');
if (id) {
el.setAttribute('id', id.replace(new RegExp(prefix + '\\d+'), prefix + i));
el.setAttribute('id', id.replace(new RegExp(prefix + '-\\d+'), prefix + '-' + i));
}
});
});
@@ -188,8 +188,8 @@
clone.querySelectorAll('input, select').forEach(function(el) {
var name = el.getAttribute('name');
if (name && name.indexOf(prefix) === 0) {
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '-\\d+-'), prefix + '-' + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '-\\d+'), prefix + '-' + nextIndex));
}
if (el.name && el.name.indexOf('-DELETE') !== -1) {
el.checked = false;

View File

@@ -162,11 +162,11 @@
row.querySelectorAll('input, select').forEach(function(el) {
var n = el.getAttribute('name');
if (n && n.indexOf(prefix) === 0) {
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '\\d+'), prefix + i));
el.setAttribute('name', n.replace(new RegExp('^' + prefix + '-\\d+'), prefix + '-' + i));
}
var id = el.getAttribute('id');
if (id) {
el.setAttribute('id', id.replace(new RegExp(prefix + '\\d+'), prefix + i));
el.setAttribute('id', id.replace(new RegExp(prefix + '-\\d+'), prefix + '-' + i));
}
});
});
@@ -193,8 +193,8 @@
clone.querySelectorAll('input, select').forEach(function(el) {
var name = el.getAttribute('name');
if (name && name.indexOf(prefix) === 0) {
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '\\d+-'), prefix + nextIndex + '-'));
el.setAttribute('name', name.replace(new RegExp('^' + prefix + '-\\d+-'), prefix + '-' + nextIndex + '-'));
el.setAttribute('id', (el.getAttribute('id') || '').replace(new RegExp(prefix + '-\\d+'), prefix + '-' + nextIndex));
}
if (el.name && el.name.indexOf('-id') !== -1) {
el.value = '';