Source code for shuup.simple_supplier.admin_module.forms
from django import forms
from shuup.admin.form_part import FormPart, TemplatedFormDef
from shuup.core.models import Product, Supplier
from shuup.simple_supplier.module import SimpleSupplierModule
from shuup.simple_supplier.utils import get_stock_adjustment_div, get_stock_information_html
[docs]
class SimpleSupplierForm(forms.Form):
[docs]
def __init__(self, **kwargs):
self.product = kwargs.pop("product")
self.request = kwargs.pop("request")
super().__init__(**kwargs)
self.products = []
self.module_name = SimpleSupplierModule.name
self.supplier_model = Supplier
if self.product:
self._build_fields()
def _build_fields(self):
if self.product.is_variation_parent():
self.products = Product.objects.filter(variation_parent=self.product)
else:
self.products = [self.product]
[docs]
def save(self):
return # No need to save anything since all stock adjustments are made by AJAX.
[docs]
def get_suppliers(self, product):
return Supplier.objects.filter(
shop_products__product=product,
supplier_modules__module_identifier="simple_supplier",
).distinct()
[docs]
def can_manage_stock(self):
return Supplier.objects.filter(
supplier_modules__module_identifier="simple_supplier", stock_managed=True
).exists()
[docs]
def get_stock_information(self, supplier, product):
return get_stock_information_html(supplier, product)
[docs]
def get_stock_adjustment_form(self, supplier, product):
return get_stock_adjustment_div(self.request, supplier, product)
[docs]
class SimpleSupplierFormPart(FormPart):
priority = 15
name = "simple_supplier"
form = SimpleSupplierForm
[docs]
def get_form_defs(self):
if self.object.pk: # Don't yield form if product is in new mode
yield TemplatedFormDef(
name=self.name,
form_class=self.form,
template_name="shuup/simple_supplier/admin/product_form_part.jinja",
required=False,
kwargs={"product": self.object.product, "request": self.request},
)
[docs]
def form_valid(self, form):
return # No need to save anything since all stock adjustments are made by AJAX