Files
django-htmx-presenatation/project/main/views/complex_form/reports_state.py
2024-04-07 00:08:09 +02:00

47 lines
2.3 KiB
Python

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":
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.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
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