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 )