Spaces:
Sleeping
Sleeping
Commit
·
e38718a
1
Parent(s):
37de7f1
code cleanup
Browse files
dam_helper/local_storage/entities.py
CHANGED
@@ -96,3 +96,10 @@ class ContractorDetails(SavedDetails):
|
|
96 |
if self.contractor_name is not None:
|
97 |
answers[Questions.COMPANY_NAME] = self.contractor_name
|
98 |
return answers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
if self.contractor_name is not None:
|
97 |
answers[Questions.COMPANY_NAME] = self.contractor_name
|
98 |
return answers
|
99 |
+
|
100 |
+
|
101 |
+
detail_classes = {
|
102 |
+
DetailsType.LOCATION_DETAILS: LocationDetails,
|
103 |
+
DetailsType.PERSONAL_DETAILS: PersonalDetails,
|
104 |
+
DetailsType.CONTRACTOR_DETAILS: ContractorDetails
|
105 |
+
}
|
dam_helper/local_storage/enums.py
DELETED
File without changes
|
dam_helper/local_storage/ls_manager.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
from streamlit_local_storage import LocalStorage
|
2 |
|
3 |
-
from dam_helper.local_storage.entities import SavedDetails, PersonalDetails, LocationDetails, ContractorDetails
|
|
|
4 |
from dam_helper.enums.enums import DetailsType
|
5 |
|
6 |
|
@@ -12,34 +13,17 @@ class LocalStorageManager:
|
|
12 |
for detail_type in DetailsType.values():
|
13 |
detail = self.ls.getItem(detail_type.name).get(key)
|
14 |
if detail:
|
15 |
-
|
16 |
-
|
17 |
-
elif detail_type.value == DetailsType.LOCATION_DETAILS.value:
|
18 |
-
return LocationDetails(**detail)
|
19 |
-
elif detail_type.value == DetailsType.CONTRACTOR_DETAILS.value:
|
20 |
-
return ContractorDetails(**detail)
|
21 |
return None
|
22 |
return None
|
23 |
|
24 |
def save_details(self, details: SavedDetails):
|
25 |
-
|
26 |
-
type_ = DetailsType.PERSONAL_DETAILS
|
27 |
-
elif isinstance(details, LocationDetails):
|
28 |
-
type_ = DetailsType.LOCATION_DETAILS
|
29 |
-
elif isinstance(details, ContractorDetails):
|
30 |
-
type_ = DetailsType.CONTRACTOR_DETAILS
|
31 |
-
else:
|
32 |
-
raise ValueError("Unexpected type: {}", type(details))
|
33 |
-
existing_data = (self.ls.getItem(type_.name) or {})
|
34 |
existing_data[details.key] = details.to_json()
|
35 |
-
self.ls.setItem(type_.name, existing_data, type_.name)
|
36 |
|
37 |
def get_details(self, type_: DetailsType) -> list[SavedDetails]:
|
38 |
-
|
39 |
-
cls = PersonalDetails
|
40 |
-
elif type_.value == DetailsType.LOCATION_DETAILS.value:
|
41 |
-
cls = LocationDetails
|
42 |
-
else:
|
43 |
-
cls = ContractorDetails
|
44 |
details = self.ls.getItem(type_.name) or {}
|
45 |
return [cls(**v) for k,v in details.items()]
|
|
|
1 |
from streamlit_local_storage import LocalStorage
|
2 |
|
3 |
+
from dam_helper.local_storage.entities import SavedDetails, PersonalDetails, LocationDetails, ContractorDetails, \
|
4 |
+
detail_classes
|
5 |
from dam_helper.enums.enums import DetailsType
|
6 |
|
7 |
|
|
|
13 |
for detail_type in DetailsType.values():
|
14 |
detail = self.ls.getItem(detail_type.name).get(key)
|
15 |
if detail:
|
16 |
+
cls = detail_classes[detail_type]
|
17 |
+
cls(**detail)
|
|
|
|
|
|
|
|
|
18 |
return None
|
19 |
return None
|
20 |
|
21 |
def save_details(self, details: SavedDetails):
|
22 |
+
existing_data = (self.ls.getItem(details.type_.name) or {})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
existing_data[details.key] = details.to_json()
|
24 |
+
self.ls.setItem(details.type_.name, existing_data, details.type_.name)
|
25 |
|
26 |
def get_details(self, type_: DetailsType) -> list[SavedDetails]:
|
27 |
+
cls = detail_classes[type_]
|
|
|
|
|
|
|
|
|
|
|
28 |
details = self.ls.getItem(type_.name) or {}
|
29 |
return [cls(**v) for k,v in details.items()]
|
dam_helper/ui_manager/ui_manager.py
CHANGED
@@ -8,7 +8,8 @@ from dam_helper.email_manager.email_manager import EmailManager
|
|
8 |
from dam_helper.enums.enums import Steps, DetailsType, Questions as Q
|
9 |
from dam_helper.form.form import work_categories, build_form_data_from_answers, write_pdf_form
|
10 |
from dam_helper.llm_manager.llm_parser import LlmParser
|
11 |
-
from dam_helper.local_storage.entities import PersonalDetails, LocationDetails, ContractorDetails, SavedDetails
|
|
|
12 |
from dam_helper.local_storage.ls_manager import LocalStorageManager
|
13 |
from dam_helper.prompts.prompts_manager import PromptsManager
|
14 |
from dam_helper.repository import Model, ModelRoles
|
@@ -228,12 +229,7 @@ class UIManager:
|
|
228 |
|
229 |
@st.dialog("Add new")
|
230 |
def add_new_detail_dialog(self, type_: DetailsType):
|
231 |
-
|
232 |
-
new_item = ContractorDetails()
|
233 |
-
elif type_.name == DetailsType.PERSONAL_DETAILS.name:
|
234 |
-
new_item = PersonalDetails()
|
235 |
-
else:
|
236 |
-
new_item = LocationDetails()
|
237 |
with st.form("new item", border=False):
|
238 |
fields_labels = new_item.widget_labels()
|
239 |
for k, v in fields_labels.items():
|
|
|
8 |
from dam_helper.enums.enums import Steps, DetailsType, Questions as Q
|
9 |
from dam_helper.form.form import work_categories, build_form_data_from_answers, write_pdf_form
|
10 |
from dam_helper.llm_manager.llm_parser import LlmParser
|
11 |
+
from dam_helper.local_storage.entities import PersonalDetails, LocationDetails, ContractorDetails, SavedDetails, \
|
12 |
+
detail_classes
|
13 |
from dam_helper.local_storage.ls_manager import LocalStorageManager
|
14 |
from dam_helper.prompts.prompts_manager import PromptsManager
|
15 |
from dam_helper.repository import Model, ModelRoles
|
|
|
229 |
|
230 |
@st.dialog("Add new")
|
231 |
def add_new_detail_dialog(self, type_: DetailsType):
|
232 |
+
new_item = detail_classes[type_]()
|
|
|
|
|
|
|
|
|
|
|
233 |
with st.form("new item", border=False):
|
234 |
fields_labels = new_item.widget_labels()
|
235 |
for k, v in fields_labels.items():
|