Sélection fournisseurs depuis détail d'un article
This commit is contained in:
parent
ab9bbac34f
commit
cd436faf9b
1 changed files with 27 additions and 0 deletions
|
@ -548,11 +548,14 @@ class ArticleCreate(SuccessMessageMixin, CreateView):
|
|||
form.add_error(None, 'Permission refusée')
|
||||
return self.form_invalid(form)
|
||||
|
||||
# Save ici pour save le manytomany suppliers
|
||||
article = form.save()
|
||||
# Save des suppliers déjà existant
|
||||
for supplier in form.cleaned_data['suppliers']:
|
||||
SupplierArticle.objects.create(
|
||||
article = article, supplier = supplier)
|
||||
|
||||
# Nouveau supplier
|
||||
supplier_new = form.cleaned_data['supplier_new'].strip()
|
||||
if supplier_new:
|
||||
supplier, created = Supplier.objects.get_or_create(
|
||||
|
@ -585,6 +588,30 @@ class ArticleUpdate(SuccessMessageMixin, UpdateView):
|
|||
if not self.request.user.has_perm('kfet.change_article'):
|
||||
form.add_error(None, 'Permission refusée')
|
||||
return self.form_invalid(form)
|
||||
|
||||
# Save ici pour save le manytomany suppliers
|
||||
article = form.save()
|
||||
# Save des suppliers déjà existant
|
||||
for supplier in form.cleaned_data['suppliers']:
|
||||
if supplier not in article.suppliers.all():
|
||||
SupplierArticle.objects.create(
|
||||
article = article, supplier = supplier)
|
||||
|
||||
# On vire les suppliers désélectionnés
|
||||
for supplier in article.suppliers.all():
|
||||
if supplier not in form.cleaned_data['suppliers']:
|
||||
SupplierArticle.objects.filter(
|
||||
article = article, supplier = supplier).delete()
|
||||
|
||||
# Nouveau supplier
|
||||
supplier_new = form.cleaned_data['supplier_new'].strip()
|
||||
if supplier_new:
|
||||
supplier, created = Supplier.objects.get_or_create(
|
||||
name=supplier_new)
|
||||
if created:
|
||||
SupplierArticle.objects.create(
|
||||
article = article, supplier = supplier)
|
||||
|
||||
# Updating
|
||||
return super(ArticleUpdate, self).form_valid(form)
|
||||
|
||||
|
|
Loading…
Reference in a new issue