from dataclasses import dataclass from project.main.views.complex_form.state_models import CheckboxState, SelectState @dataclass class ReportsState: enabled: CheckboxState cash_conformity: CheckboxState days_between_cc: SelectState scan_2nd_bardcode: CheckboxState allow_empty_cashbag: CheckboxState reports_builder: CheckboxState tax_reports: CheckboxState transaction_list: CheckboxState reports_generator: CheckboxState technical_center_reports: CheckboxState dispense_list: CheckboxState @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"), days_between_cc=SelectState(value=values.get("days_between_cc")), scan_2nd_bardcode=CheckboxState(checked=values.get("scan_2nd_bardcode") == "on"), allow_empty_cashbag=CheckboxState(checked=values.get("allow_empty_cashbag") == "on"), reports_builder=CheckboxState(checked=values.get("reports_builder") == "on"), tax_reports=CheckboxState(checked=values.get("tax_reports") == "on"), transaction_list=CheckboxState(checked=values.get("transaction_list") == "on"), reports_generator=CheckboxState(checked=values.get("reports_generator") == "on"), technical_center_reports=CheckboxState(checked=values.get("technical_center_reports") == "on"), dispense_list=CheckboxState(checked=values.get("dispense_list") == "on"), ) 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.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 self.tax_reports.enabled = self.enabled.checked self.transaction_list.enabled = self.enabled.checked self.reports_generator.enabled = self.enabled.checked self.technical_center_reports.enabled = self.enabled.checked self.dispense_list.enabled = self.enabled.checked