Reports
This commit is contained in:
@ -1,13 +1,29 @@
|
|||||||
{% extends "main/base/layout.html" %}
|
{% extends "main/base/layout.html" %}
|
||||||
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form
|
<form class="row">
|
||||||
hx-post="{{ url("complex-form-handle") }}"
|
<div
|
||||||
hx-trigger="change"
|
class="col"
|
||||||
hx-target="#complex-form-content"
|
hx-post="{{ url("complex-form-handle-route-module") }}"
|
||||||
>
|
hx-trigger="change"
|
||||||
<div id="complex-form-content">
|
hx-target="#route-module-content"
|
||||||
{% include "main/complex_form/route_module.html" %}
|
>
|
||||||
|
<div id="route-module-content">
|
||||||
|
{% set state = form_state.route_module %}
|
||||||
|
{% include "main/complex_form/route_module.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="col"
|
||||||
|
hx-post="{{ url("complex-form-handle-reports") }}"
|
||||||
|
hx-trigger="change"
|
||||||
|
hx-target="#reports-content"
|
||||||
|
>
|
||||||
|
<div id="reports-content">
|
||||||
|
{% set state = form_state.reports %}
|
||||||
|
{% include "main/complex_form/reports.html" %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
86
project/main/templates/main/complex_form/reports.html
Normal file
86
project/main/templates/main/complex_form/reports.html
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
{% from "main/components/inputs.html" import checkbox, select %}
|
||||||
|
|
||||||
|
{% set indent_1 = "ms-4" %}
|
||||||
|
{% set indent_2 = "ms-5" %}
|
||||||
|
|
||||||
|
<div class="card p-3">
|
||||||
|
{{ checkbox(
|
||||||
|
title="Enable Reports",
|
||||||
|
name="reports",
|
||||||
|
state=state.enabled
|
||||||
|
) }}
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Allow empty cashbag",
|
||||||
|
name="allow_empty_cashbag",
|
||||||
|
state=state.allow_empty_cashbag
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Reports builder",
|
||||||
|
name="reports_builder",
|
||||||
|
state=state.reports_builder
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Tax reports",
|
||||||
|
name="tax_reports",
|
||||||
|
state=state.tax_reports
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Transaction list",
|
||||||
|
name="transaction_list",
|
||||||
|
state=state.transaction_list
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Reports generator",
|
||||||
|
name="reports_generator",
|
||||||
|
state=state.reports_generator
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Technical center reports",
|
||||||
|
name="technical_center_reports",
|
||||||
|
state=state.technical_center_reports
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Dispense list",
|
||||||
|
name="dispense_list",
|
||||||
|
state=state.dispense_list
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Cash conformity",
|
||||||
|
name="cash_conformity",
|
||||||
|
state=state.cash_conformity
|
||||||
|
) }}
|
||||||
|
{{ checkbox(
|
||||||
|
title="Scan 2nd barcode",
|
||||||
|
name="scan_2nd_bardcode",
|
||||||
|
state=state.scan_2nd_bardcode,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
{{ select(
|
||||||
|
title="Days between CC",
|
||||||
|
name="days_between_cc",
|
||||||
|
options={
|
||||||
|
"1": "1",
|
||||||
|
"2": "2",
|
||||||
|
"3": "3",
|
||||||
|
"4": "4",
|
||||||
|
"5": "5",
|
||||||
|
"6": "6",
|
||||||
|
"7": "7",
|
||||||
|
"8": "8",
|
||||||
|
"9": "9",
|
||||||
|
"14": "14",
|
||||||
|
"30": "30",
|
||||||
|
"31": "31",
|
||||||
|
"60": "60",
|
||||||
|
"90": "90",
|
||||||
|
"365": "365",
|
||||||
|
},
|
||||||
|
state=state.days_between_cc,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
|
||||||
|
</div>
|
||||||
@ -3,84 +3,102 @@
|
|||||||
{% set indent_1 = "ms-4" %}
|
{% set indent_1 = "ms-4" %}
|
||||||
{% set indent_2 = "ms-5" %}
|
{% set indent_2 = "ms-5" %}
|
||||||
|
|
||||||
{% set state = form_state.route_module %}
|
<div class="card p-3">
|
||||||
|
{{ checkbox(
|
||||||
|
title="Enable Route module",
|
||||||
|
name="route_module",
|
||||||
|
state=state.enabled
|
||||||
|
) }}
|
||||||
|
|
||||||
{{ checkbox(
|
<hr>
|
||||||
title="Route module",
|
|
||||||
name="route_module",
|
|
||||||
state=state.enabled
|
|
||||||
) }}
|
|
||||||
{{ checkbox(
|
|
||||||
title="Smart routing",
|
|
||||||
name="smart_routing",
|
|
||||||
state=state.smart_routing,
|
|
||||||
cls=indent_1
|
|
||||||
) }}
|
|
||||||
{{ checkbox(
|
|
||||||
title="Predictive pickup",
|
|
||||||
name="predictive_pickup",
|
|
||||||
state=state.predictive_pickup,
|
|
||||||
cls=indent_2
|
|
||||||
) }}
|
|
||||||
{{ checkbox(
|
|
||||||
title="Automatic planning",
|
|
||||||
name="automatic_planning",
|
|
||||||
state=state.automatic_planning,
|
|
||||||
cls=indent_2
|
|
||||||
) }}
|
|
||||||
{{ checkbox(
|
|
||||||
title="Geo routing",
|
|
||||||
name="geo_routing",
|
|
||||||
state=state.geo_routing,
|
|
||||||
cls=indent_1
|
|
||||||
) }}
|
|
||||||
|
|
||||||
{{ select(
|
{{ checkbox(
|
||||||
title="Packing model",
|
title="Smart routing",
|
||||||
name="packing_model",
|
name="smart_routing",
|
||||||
options={
|
state=state.smart_routing
|
||||||
"": "No packing model",
|
) }}
|
||||||
"per_route": "Packing model per route",
|
|
||||||
"per_machine": "Packing model per machine",
|
|
||||||
},
|
|
||||||
state=state.packing_model,
|
|
||||||
cls=indent_1
|
|
||||||
) }}
|
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Predictive pickup",
|
||||||
|
name="predictive_pickup",
|
||||||
|
state=state.predictive_pickup,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
|
||||||
{{ checkbox(
|
{{ checkbox(
|
||||||
title="Prekitting to box",
|
title="Automatic planning",
|
||||||
name="prekitting_to_box",
|
name="automatic_planning",
|
||||||
state=state.prekitting_to_box,
|
state=state.automatic_planning,
|
||||||
cls=indent_2
|
cls=indent_1
|
||||||
) }}
|
) }}
|
||||||
{{ checkbox(
|
|
||||||
title="Prekitting to pallet",
|
{{ checkbox(
|
||||||
name="prekitting_to_pallet",
|
title="Geo routing",
|
||||||
state=state.prekitting_to_pallet,
|
name="geo_routing",
|
||||||
cls=indent_2
|
state=state.geo_routing
|
||||||
) }}
|
) }}
|
||||||
{{ checkbox(
|
|
||||||
title="Real time stock",
|
{{ checkbox(
|
||||||
name="real_time_stock",
|
title="Warehouse",
|
||||||
state=state.real_time_stock,
|
name="warehouse",
|
||||||
cls=indent_2
|
state=state.warehouse
|
||||||
) }}
|
) }}
|
||||||
{{ checkbox(
|
|
||||||
title="Warehouse",
|
{{ checkbox(
|
||||||
name="warehouse",
|
title="End warehouse tracking",
|
||||||
state=state.warehouse,
|
name="end_warehouse_tracking",
|
||||||
cls=indent_1
|
state=state.end_warehouse_tracking,
|
||||||
) }}
|
cls=indent_1
|
||||||
{{ checkbox(
|
) }}
|
||||||
title="End warehouse tracking",
|
|
||||||
name="end_warehouse_tracking",
|
{{ checkbox(
|
||||||
state=state.end_warehouse_tracking,
|
title="Pick&Pack application",
|
||||||
cls=indent_2
|
name="pick_and_pack_application",
|
||||||
) }}
|
state=state.pick_and_pack_application,
|
||||||
{{ checkbox(
|
cls=indent_1
|
||||||
title="Custom forms in routing",
|
) }}
|
||||||
name="custom_forms_in_routing",
|
|
||||||
state=state.custom_forms_in_routing,
|
{{ checkbox(
|
||||||
cls=indent_1
|
title="Custom forms in routing",
|
||||||
) }}
|
name="custom_forms_in_routing",
|
||||||
|
state=state.custom_forms_in_routing
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Money bag tracking",
|
||||||
|
name="money_bag_tracking",
|
||||||
|
state=state.money_bag_tracking
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ select(
|
||||||
|
title="Packing model",
|
||||||
|
name="packing_model",
|
||||||
|
options={
|
||||||
|
"": "No packing model",
|
||||||
|
"per_route": "Packing model per route",
|
||||||
|
"per_machine": "Packing model per machine",
|
||||||
|
},
|
||||||
|
state=state.packing_model
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Prekitting to box",
|
||||||
|
name="prekitting_to_box",
|
||||||
|
state=state.prekitting_to_box,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Prekitting to pallet",
|
||||||
|
name="prekitting_to_pallet",
|
||||||
|
state=state.prekitting_to_pallet,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ checkbox(
|
||||||
|
title="Real time stock",
|
||||||
|
name="real_time_stock",
|
||||||
|
state=state.real_time_stock,
|
||||||
|
cls=indent_1
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
{% if state.visible %}
|
{% if state.visible %}
|
||||||
{% set id = random_id() %}
|
{% set id = random_id() %}
|
||||||
|
|
||||||
<div class="form-check {{ cls }}">
|
<div class="form-check {{ cls }} mb-2">
|
||||||
<input
|
<input
|
||||||
class="form-check-input"
|
class="form-check-input"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
@ -22,15 +22,20 @@
|
|||||||
{% macro select(title, name, options, state, cls="") %}
|
{% macro select(title, name, options, state, cls="") %}
|
||||||
{% if state.visible %}
|
{% if state.visible %}
|
||||||
<div class="{{ cls }}">
|
<div class="{{ cls }}">
|
||||||
|
{% if title %}
|
||||||
|
<label class="form-label {% if not state.enabled %}text-secondary{% endif %}">
|
||||||
|
{{ title }}
|
||||||
|
</label>
|
||||||
|
{% endif %}
|
||||||
<select
|
<select
|
||||||
name="{{ name }}"
|
name="{{ name }}"
|
||||||
class="form-select form-select-sm"
|
class="form-select mb-2"
|
||||||
|
{% if not state.enabled %}disabled{% endif %}
|
||||||
>
|
>
|
||||||
{% for value, title in options.items() %}
|
{% for value, title in options.items() %}
|
||||||
<option
|
<option
|
||||||
value="{{ value }}"
|
value="{{ value }}"
|
||||||
{% if value == state.value %}selected {% endif %}
|
{% if value == state.value %}selected{% endif %}
|
||||||
{% if not state.enabled %}disabled {% endif %}
|
|
||||||
>
|
>
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from .complex_form.views import ComplexFormHandleView, ComplexFormView
|
from .complex_form.views import RouteModuleHandleView, ComplexFormView, ReportsHandleView
|
||||||
from .filter_list import FilterListView
|
from .filter_list import FilterListView
|
||||||
from .form_validation import FormValidationView
|
from .form_validation import FormValidationView
|
||||||
from .home import HomeView
|
from .home import HomeView
|
||||||
|
|||||||
47
project/main/views/complex_form/reports_state.py
Normal file
47
project/main/views/complex_form/reports_state.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
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
|
||||||
92
project/main/views/complex_form/route_module_state.py
Normal file
92
project/main/views/complex_form/route_module_state.py
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from project.main.views.complex_form.state_models import CheckboxState, SelectState
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class RouteModuleState:
|
||||||
|
enabled: CheckboxState
|
||||||
|
smart_routing: CheckboxState
|
||||||
|
predictive_pickup: CheckboxState
|
||||||
|
automatic_planning: CheckboxState
|
||||||
|
geo_routing: CheckboxState
|
||||||
|
packing_model: SelectState
|
||||||
|
prekitting_to_box: CheckboxState
|
||||||
|
prekitting_to_pallet: CheckboxState
|
||||||
|
real_time_stock: CheckboxState
|
||||||
|
warehouse: CheckboxState
|
||||||
|
end_warehouse_tracking: CheckboxState
|
||||||
|
pick_and_pack_application: CheckboxState
|
||||||
|
custom_forms_in_routing: CheckboxState
|
||||||
|
money_bag_tracking: CheckboxState
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def from_form(values: dict[str, str]) -> "RouteModuleState":
|
||||||
|
return RouteModuleState(
|
||||||
|
enabled=CheckboxState(checked=values.get("route_module") == "on"),
|
||||||
|
smart_routing=CheckboxState(checked=values.get("smart_routing") == "on"),
|
||||||
|
predictive_pickup=CheckboxState(
|
||||||
|
checked=values.get("predictive_pickup") == "on"
|
||||||
|
),
|
||||||
|
automatic_planning=CheckboxState(
|
||||||
|
checked=values.get("automatic_planning") == "on"
|
||||||
|
),
|
||||||
|
geo_routing=CheckboxState(checked=values.get("geo_routing") == "on"),
|
||||||
|
packing_model=SelectState(value=values.get("packing_model")),
|
||||||
|
prekitting_to_box=CheckboxState(
|
||||||
|
checked=values.get("prekitting_to_box") == "on"
|
||||||
|
),
|
||||||
|
prekitting_to_pallet=CheckboxState(
|
||||||
|
checked=values.get("prekitting_to_pallet") == "on"
|
||||||
|
),
|
||||||
|
real_time_stock=CheckboxState(
|
||||||
|
checked=values.get("real_time_stock") == "on"
|
||||||
|
),
|
||||||
|
warehouse=CheckboxState(checked=values.get("warehouse") == "on"),
|
||||||
|
end_warehouse_tracking=CheckboxState(
|
||||||
|
checked=values.get("end_warehouse_tracking") == "on"
|
||||||
|
),
|
||||||
|
pick_and_pack_application=CheckboxState(
|
||||||
|
checked=values.get("pick_and_pack_application") == "on"
|
||||||
|
),
|
||||||
|
custom_forms_in_routing=CheckboxState(
|
||||||
|
checked=values.get("custom_forms_in_routing") == "on"
|
||||||
|
),
|
||||||
|
money_bag_tracking=CheckboxState(
|
||||||
|
checked=values.get("money_bag_tracking") == "on"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
def control_state(self) -> None:
|
||||||
|
self.smart_routing.enabled = self.enabled.checked
|
||||||
|
self.geo_routing.enabled = self.enabled.checked
|
||||||
|
self.warehouse.enabled = self.enabled.checked
|
||||||
|
self.custom_forms_in_routing.enabled = self.enabled.checked
|
||||||
|
|
||||||
|
self.predictive_pickup.visible = (
|
||||||
|
self.smart_routing.checked and self.smart_routing.enabled
|
||||||
|
)
|
||||||
|
self.automatic_planning.visible = (
|
||||||
|
self.smart_routing.checked and self.smart_routing.enabled
|
||||||
|
)
|
||||||
|
self.end_warehouse_tracking.visible = (
|
||||||
|
self.warehouse.checked and self.warehouse.enabled
|
||||||
|
)
|
||||||
|
self.pick_and_pack_application.visible = (
|
||||||
|
self.warehouse.checked and self.warehouse.enabled
|
||||||
|
)
|
||||||
|
|
||||||
|
if not self.enabled.checked:
|
||||||
|
self.packing_model.value = None
|
||||||
|
|
||||||
|
self.packing_model.enabled = self.enabled.checked
|
||||||
|
self.prekitting_to_box.visible = (
|
||||||
|
self.packing_model.enabled and self.packing_model.value
|
||||||
|
)
|
||||||
|
self.prekitting_to_pallet.visible = (
|
||||||
|
self.packing_model.enabled and self.packing_model.value
|
||||||
|
)
|
||||||
|
self.real_time_stock.visible = (
|
||||||
|
self.packing_model.enabled and self.packing_model.value
|
||||||
|
)
|
||||||
|
self.money_bag_tracking.enabled = self.enabled.checked
|
||||||
@ -13,55 +13,3 @@ class SelectState:
|
|||||||
value: str = None
|
value: str = None
|
||||||
visible: bool = True
|
visible: bool = True
|
||||||
enabled: bool = True
|
enabled: bool = True
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class RouteModuleState:
|
|
||||||
enabled: CheckboxState
|
|
||||||
smart_routing: CheckboxState
|
|
||||||
predictive_pickup: CheckboxState
|
|
||||||
automatic_planning: CheckboxState
|
|
||||||
geo_routing: CheckboxState
|
|
||||||
packing_model: SelectState
|
|
||||||
prekitting_to_box: CheckboxState
|
|
||||||
prekitting_to_pallet: CheckboxState
|
|
||||||
real_time_stock: CheckboxState
|
|
||||||
warehouse: CheckboxState
|
|
||||||
end_warehouse_tracking: CheckboxState
|
|
||||||
custom_forms_in_routing: CheckboxState
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def from_form(values: dict[str, str]) -> "RouteModuleState":
|
|
||||||
return RouteModuleState(
|
|
||||||
enabled=CheckboxState(checked=values.get("route_module") == "on"),
|
|
||||||
smart_routing=CheckboxState(checked=values.get("smart_routing") == "on"),
|
|
||||||
predictive_pickup=CheckboxState(
|
|
||||||
checked=values.get("predictive_pickup") == "on"
|
|
||||||
),
|
|
||||||
automatic_planning=CheckboxState(
|
|
||||||
checked=values.get("automatic_planning") == "on"
|
|
||||||
),
|
|
||||||
geo_routing=CheckboxState(checked=values.get("geo_routing") == "on"),
|
|
||||||
packing_model=SelectState(value=values.get("packing_model")),
|
|
||||||
prekitting_to_box=CheckboxState(
|
|
||||||
checked=values.get("prekitting_to_box") == "on"
|
|
||||||
),
|
|
||||||
prekitting_to_pallet=CheckboxState(
|
|
||||||
checked=values.get("prekitting_to_pallet") == "on"
|
|
||||||
),
|
|
||||||
real_time_stock=CheckboxState(
|
|
||||||
checked=values.get("real_time_stock") == "on"
|
|
||||||
),
|
|
||||||
warehouse=CheckboxState(checked=values.get("warehouse") == "on"),
|
|
||||||
end_warehouse_tracking=CheckboxState(
|
|
||||||
checked=values.get("end_warehouse_tracking") == "on"
|
|
||||||
),
|
|
||||||
custom_forms_in_routing=CheckboxState(
|
|
||||||
checked=values.get("custom_forms_in_routing") == "on"
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class FormState:
|
|
||||||
route_module: RouteModuleState
|
|
||||||
|
|||||||
@ -1,43 +1,23 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
from project.main.views.complex_form.state_models import CheckboxState, FormState, SelectState, RouteModuleState
|
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.demo_view_base import DemoViewBase
|
from project.main.views.demo_view_base import DemoViewBase
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class FormState:
|
||||||
|
route_module: RouteModuleState
|
||||||
|
reports: ReportsState
|
||||||
|
|
||||||
|
def control_state(self) -> None:
|
||||||
# def control_state(state: FormState) -> None:
|
self.route_module.control_state()
|
||||||
# state.smart_routing.enabled = state.route_module.checked
|
self.reports.control_state()
|
||||||
# state.geo_routing.enabled = state.route_module.checked
|
|
||||||
# state.warehouse.enabled = state.route_module.checked
|
|
||||||
# state.custom_forms_in_routing.enabled = state.route_module.checked
|
|
||||||
#
|
|
||||||
# state.predictive_pickup.visible = (
|
|
||||||
# state.smart_routing.checked and state.smart_routing.enabled
|
|
||||||
# )
|
|
||||||
# state.automatic_planning.visible = (
|
|
||||||
# state.smart_routing.checked and state.smart_routing.enabled
|
|
||||||
# )
|
|
||||||
# # state.prekitting_to_box.visible = (
|
|
||||||
# # state.use_packing_model_per_route.enabled
|
|
||||||
# # and state.use_packing_model_per_route.checked
|
|
||||||
# # )
|
|
||||||
# # state.prekitting_to_pallet.visible = (
|
|
||||||
# # state.use_packing_model_per_route.enabled
|
|
||||||
# # and state.use_packing_model_per_route.checked
|
|
||||||
# # )
|
|
||||||
# # state.real_time_stock.visible = (
|
|
||||||
# # state.use_packing_model_per_route.enabled
|
|
||||||
# # and state.use_packing_model_per_route.checked
|
|
||||||
# # )
|
|
||||||
# state.end_warehouse_tracking.visible = state.warehouse.checked
|
|
||||||
#
|
|
||||||
# print(state)
|
|
||||||
# print("-" * 100)
|
|
||||||
|
|
||||||
|
|
||||||
class ComplexFormView(DemoViewBase):
|
class ComplexFormView(DemoViewBase):
|
||||||
@ -49,9 +29,10 @@ class ComplexFormView(DemoViewBase):
|
|||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
|
|
||||||
state = FormState(
|
state = FormState(
|
||||||
route_module=RouteModuleState.from_form(values={})
|
route_module=RouteModuleState.from_form(values={}),
|
||||||
|
reports=ReportsState.from_form(values={}),
|
||||||
)
|
)
|
||||||
# control_state(state)
|
state.control_state()
|
||||||
|
|
||||||
context.update(
|
context.update(
|
||||||
{
|
{
|
||||||
@ -64,19 +45,29 @@ class ComplexFormView(DemoViewBase):
|
|||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
class ComplexFormHandleView(TemplateView):
|
class RouteModuleHandleView(TemplateView):
|
||||||
template_name = "main/complex_form/route_module.html"
|
template_name = "main/complex_form/route_module.html"
|
||||||
|
|
||||||
def post(self, request: WSGIRequest, *args, **kwargs) -> HttpResponse:
|
def post(self, request: WSGIRequest, *args, **kwargs) -> HttpResponse:
|
||||||
print(request.POST)
|
state = RouteModuleState.from_form(values=request.POST)
|
||||||
state = FormState(
|
state.control_state()
|
||||||
route_module=RouteModuleState.from_form(values=request.POST),
|
|
||||||
)
|
|
||||||
# state = route_module_form_to_state(values=request.POST)
|
|
||||||
# control_state(state)
|
|
||||||
|
|
||||||
return self.render_to_response(
|
return self.render_to_response(
|
||||||
context={
|
context={
|
||||||
"form_state": state,
|
"state": state,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ReportsHandleView(TemplateView):
|
||||||
|
template_name = "main/complex_form/reports.html"
|
||||||
|
|
||||||
|
def post(self, request: WSGIRequest, *args, **kwargs) -> HttpResponse:
|
||||||
|
state = ReportsState.from_form(values=request.POST)
|
||||||
|
state.control_state()
|
||||||
|
|
||||||
|
return self.render_to_response(
|
||||||
|
context={
|
||||||
|
"state": state,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@ -8,6 +8,7 @@ urlpatterns = [
|
|||||||
path("filter-list", views.FilterListView.as_view(), name="filter-list"),
|
path("filter-list", views.FilterListView.as_view(), name="filter-list"),
|
||||||
path("form-validation", views.FormValidationView.as_view(), name="form-validation"),
|
path("form-validation", views.FormValidationView.as_view(), name="form-validation"),
|
||||||
path("complex-form", views.ComplexFormView.as_view(), name="complex-form"),
|
path("complex-form", views.ComplexFormView.as_view(), name="complex-form"),
|
||||||
path("complex-form/handle", views.ComplexFormHandleView.as_view(), name="complex-form-handle"),
|
path("complex-form/handle/route-module", views.RouteModuleHandleView.as_view(), name="complex-form-handle-route-module"),
|
||||||
|
path("complex-form/handle/reports", views.ReportsHandleView.as_view(), name="complex-form-handle-reports"),
|
||||||
path("table-inline-edit", views.TableInlineEditView.as_view(), name="table-inline-edit"),
|
path("table-inline-edit", views.TableInlineEditView.as_view(), name="table-inline-edit"),
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user