Warehouse management
This commit is contained in:
@ -1,4 +1,9 @@
|
||||
from .complex_form.views import RouteModuleHandleView, ComplexFormView, ReportsHandleView
|
||||
from .complex_form.views import (
|
||||
ComplexFormView,
|
||||
ReportsHandleView,
|
||||
RouteModuleHandleView,
|
||||
WarehouseManagementHandleView,
|
||||
)
|
||||
from .filter_list import FilterListView
|
||||
from .form_validation import FormValidationView
|
||||
from .home import HomeView
|
||||
|
||||
@ -19,7 +19,6 @@ class ReportsState:
|
||||
|
||||
@staticmethod
|
||||
def from_form(values: dict[str, str]) -> "ReportsState":
|
||||
print(values)
|
||||
return ReportsState(
|
||||
enabled=CheckboxState(checked=values.get("reports") == "on"),
|
||||
cash_conformity=CheckboxState(checked=values.get("cash_conformity") == "on"),
|
||||
@ -36,7 +35,7 @@ class ReportsState:
|
||||
|
||||
def control_state(self) -> None:
|
||||
self.cash_conformity.enabled = self.enabled.checked
|
||||
self.days_between_cc.enabled = self.cash_conformity.enabled and self.cash_conformity.checked
|
||||
self.days_between_cc.visible = self.cash_conformity.enabled and self.cash_conformity.checked
|
||||
self.scan_2nd_bardcode.enabled = self.cash_conformity.enabled and self.cash_conformity.checked
|
||||
self.allow_empty_cashbag.enabled = self.enabled.checked
|
||||
self.reports_builder.enabled = self.enabled.checked
|
||||
|
||||
@ -7,6 +7,9 @@ from django.views.generic import TemplateView
|
||||
|
||||
from project.main.views.complex_form.reports_state import ReportsState
|
||||
from project.main.views.complex_form.route_module_state import RouteModuleState
|
||||
from project.main.views.complex_form.warehouse_management_state import (
|
||||
WarehouseManagementState,
|
||||
)
|
||||
from project.main.views.demo_view_base import DemoViewBase
|
||||
|
||||
|
||||
@ -14,10 +17,12 @@ from project.main.views.demo_view_base import DemoViewBase
|
||||
class FormState:
|
||||
route_module: RouteModuleState
|
||||
reports: ReportsState
|
||||
warehouse_management: WarehouseManagementState
|
||||
|
||||
def control_state(self) -> None:
|
||||
self.route_module.control_state()
|
||||
self.reports.control_state()
|
||||
self.warehouse_management.control_state()
|
||||
|
||||
|
||||
class ComplexFormView(DemoViewBase):
|
||||
@ -31,6 +36,7 @@ class ComplexFormView(DemoViewBase):
|
||||
state = FormState(
|
||||
route_module=RouteModuleState.from_form(values={}),
|
||||
reports=ReportsState.from_form(values={}),
|
||||
warehouse_management=WarehouseManagementState.from_form(values={}),
|
||||
)
|
||||
state.control_state()
|
||||
|
||||
@ -71,3 +77,17 @@ class ReportsHandleView(TemplateView):
|
||||
"state": state,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class WarehouseManagementHandleView(TemplateView):
|
||||
template_name = "main/complex_form/warehouse_management.html"
|
||||
|
||||
def post(self, request: WSGIRequest, *args, **kwargs) -> HttpResponse:
|
||||
state = WarehouseManagementState.from_form(values=request.POST)
|
||||
state.control_state()
|
||||
|
||||
return self.render_to_response(
|
||||
context={
|
||||
"state": state,
|
||||
}
|
||||
)
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from project.main.views.complex_form.state_models import CheckboxState, SelectState
|
||||
|
||||
|
||||
@dataclass
|
||||
class WarehouseManagementState:
|
||||
product_warehouse: CheckboxState
|
||||
delivery_option: SelectState
|
||||
allow_negative_stock: CheckboxState
|
||||
route_reserve_stock: CheckboxState
|
||||
refill_log: CheckboxState
|
||||
product_order: CheckboxState
|
||||
spare_parts_warehouse: CheckboxState
|
||||
purchase_module: CheckboxState
|
||||
|
||||
@staticmethod
|
||||
def from_form(values: dict[str, str]) -> "WarehouseManagementState":
|
||||
return WarehouseManagementState(
|
||||
product_warehouse=CheckboxState(
|
||||
checked=values.get("product_warehouse") == "on"
|
||||
),
|
||||
delivery_option=SelectState(value=values.get("delivery_option")),
|
||||
allow_negative_stock=CheckboxState(
|
||||
checked=values.get("allow_negative_stock") == "on"
|
||||
),
|
||||
route_reserve_stock=CheckboxState(
|
||||
checked=values.get("route_reserve_stock") == "on"
|
||||
),
|
||||
refill_log=CheckboxState(checked=values.get("refill_log") == "on"),
|
||||
product_order=CheckboxState(checked=values.get("product_order") == "on"),
|
||||
spare_parts_warehouse=CheckboxState(
|
||||
checked=values.get("spare_parts_warehouse") == "on"
|
||||
),
|
||||
purchase_module=CheckboxState(
|
||||
checked=values.get("purchase_module") == "on"
|
||||
),
|
||||
)
|
||||
|
||||
def control_state(self) -> None:
|
||||
self.delivery_option.visible = self.product_warehouse.checked
|
||||
self.allow_negative_stock.visible = self.product_warehouse.checked
|
||||
self.route_reserve_stock.visible = self.product_warehouse.checked
|
||||
self.refill_log.visible = self.product_warehouse.checked
|
||||
self.product_order.visible = self.product_warehouse.checked
|
||||
self.purchase_module.enabled = (
|
||||
self.product_warehouse.checked or self.spare_parts_warehouse.checked
|
||||
)
|
||||
Reference in New Issue
Block a user