alchemy updated

This commit is contained in:
2024-11-13 14:59:05 +03:00
parent 052d1f7b9c
commit 4199cc16b4
22 changed files with 123 additions and 181 deletions

View File

@@ -13,7 +13,6 @@ from api_validations.validations_request import (
from api_validations.core_response import AlchemyJsonResponse
from api_events.events.abstract_class import MethodToEvent, ActionsSchema
from api_events.events.building.building_build import BuildPatchEventMethods
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject
@@ -35,18 +34,16 @@ class BuildAreaListEventMethods(MethodToEvent):
Build.id == token_dict.selected_occupant.build_id,
*Build.valid_record_args(Build),
).data
build_id_list = [build.id for build in build_ids]
BuildArea.pre_query = BuildArea.filter_all(
BuildArea.build_id.in_(build_id_list),
BuildArea.build_id.in_([build.id for build in build_ids]),
*BuildArea.valid_record_args(BuildArea),
).query
elif isinstance(token_dict, EmployeeTokenObject):
build_ids = Build.select_action(
employee_id=token_dict.selected_company.employee_id
)
build_id_list = [build.id for build in build_ids]
BuildArea.pre_query = BuildArea.filter_all(
BuildArea.build_id.in_(build_id_list),
BuildArea.build_id.in_([build.id for build in build_ids]),
*BuildArea.valid_record_args(BuildArea),
).query
BuildArea.filter_attr = list_options
@@ -54,7 +51,7 @@ class BuildAreaListEventMethods(MethodToEvent):
*BuildArea.valid_record_args(BuildArea),
)
return AlchemyJsonResponse(
completed=True, message="Update Build record", result=records
completed=True, message="List of Build Area", result=records
)
@@ -101,7 +98,7 @@ class BuildAreaCreateEventMethods(MethodToEvent):
created_build_part.save()
return AlchemyJsonResponse(
completed=True,
message="Update Build record",
message="Created Build Area",
result=created_build_part,
)

View File

@@ -14,6 +14,7 @@ from api_validations.validations_request import (
from api_validations.core_response import AlchemyJsonResponse
from api_events.events.abstract_class import MethodToEvent, ActionsSchema
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject
from databases.sql_models.identity.identity import Addresses
class BuildSitesListEventMethods(MethodToEvent):
@@ -30,22 +31,28 @@ class BuildSitesListEventMethods(MethodToEvent):
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
):
if isinstance(token_dict, OccupantTokenObject):
build_ids = Build.filter_all(
occupants_build = Build.filter_one(
Build.id == token_dict.selected_occupant.build_id,
*Build.valid_record_args(Build),
).data
build_id_list = [build.id for build in build_ids]
BuildSites.pre_query = BuildSites.filter_all(
BuildSites.build_id.in_(build_id_list),
BuildSites.address_id == occupants_build.address_id,
*BuildSites.valid_record_args(BuildSites),
).query
elif isinstance(token_dict, EmployeeTokenObject):
build_ids = Build.select_action(
employees_build = Build.select_action(
employee_id=token_dict.selected_company.employee_id
)
build_id_list = [build.id for build in build_ids]
employees_build_list = [build.address_id for build in employees_build.all()]
if not employees_build_list:
BuildSites.raise_http_exception(
status_code="HTTP_404_NOT_FOUND",
error_case="NOT_FOUND",
message="Employee has no build sites registered",
data={},
)
BuildSites.pre_query = BuildSites.filter_all(
BuildSites.build_id.in_(build_id_list),
BuildSites.address_id.in_(employees_build_list)
*BuildSites.valid_record_args(BuildSites),
).query
BuildSites.filter_attr = list_options

View File

@@ -38,11 +38,11 @@ class CompanyListEventMethods(MethodToEvent):
]
)
elif isinstance(token_dict, OccupantTokenObject):
Companies.pre_query = Companies.filter_active(
Companies.pre_query = Companies.filter_all(
Companies.id == token_dict.selected_occupant.responsible_company_id
).query
Companies.filter_attr = list_options
records = Companies.filter_active(
records = Companies.filter_all(
*Companies.valid_record_args(Companies)
)
return AlchemyJsonResponse(

View File

@@ -30,8 +30,9 @@ class DepartmentListEventMethods(MethodToEvent):
token_dict: EmployeeTokenObject,
):
Departments.filter_attr = list_options
records = Departments.filter_active(
records = Departments.filter_all(
Departments.company_id == token_dict.selected_company.company_id,
*Departments.valid_record_args(Departments)
)
return AlchemyJsonResponse(
completed=True,

View File

@@ -64,9 +64,10 @@ class DutiesGetByUUIDEventMethods(MethodToEvent):
status_code=status.HTTP_404_NOT_FOUND,
)
records = Duties.filter_active(
records = Duties.filter_all(
Duties.duties_id == duty.id,
Duties.company_id == token_dict.selected_company.company_id,
*Duties.valid_record_args(Duties)
)
if not records.data:
return JSONResponse(

View File

@@ -28,9 +28,7 @@ class DutyListEventMethods(MethodToEvent):
token_dict: EmployeeTokenObject,
):
Duty.filter_attr = list_options
records = Duty.filter_active(
*Duty.valid_record_args(Duty)
)
records = Duty.filter_all(system=True)
return AlchemyJsonResponse(
completed=True,
message="Duty list is brought successfully",

View File

@@ -29,9 +29,14 @@ class EmployeeListEventMethods(MethodToEvent):
list_options: ListOptions,
token_dict: EmployeeTokenObject,
):
employees_staff = Staff.filter_all(
Staff.duties_id.in_(token_dict.duty_id_list),
*Staff.valid_record_args(Staff),
).data
Employees.filter_attr = list_options
records = Employees.filter_active(
Employees.company_id == token_dict.selected_company.company_id,
records = Employees.filter_all(
Employees.staff_id.in_([staff.id for staff in employees_staff]),
*Employees.valid_record_args(Employees),
)
return AlchemyJsonResponse(
completed=True,
@@ -210,7 +215,7 @@ class Employee2PeopleEmployEventMethods(MethodToEvent):
detail="People record not found",
)
find_one_employee = Employees.filter_active(
find_one_employee = Employees.filter_all(
Employees.staff_id == selected_staff.id,
*Employees.valid_record_args(Employees),
).data

View File

@@ -25,7 +25,7 @@ class StaffListEventMethods(MethodToEvent):
@classmethod
def staff_list(cls, list_options: ListOptions, token_dict: EmployeeTokenObject):
Staff.filter_attr = list_options
records = Staff.filter_active(
records = Staff.filter_all(
*Staff.valid_record_args(Staff)
)
return AlchemyJsonResponse(

View File

@@ -27,7 +27,6 @@ from api_validations.validations_request import (
InsertBuildDecisionBookItems,
ListDecisionBook,
)
from service_app_test.test_application.evyos.datas.company_employee_data import list_options
class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
@@ -59,7 +58,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
Build.uu_id == decision_book.build_decision_book_uu_id,
],
)
reachable_building = Build.filter_active()
reachable_building = Build.filter_all()
if not reachable_building.data:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -73,7 +72,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
],
filter_expr=[Companies.id == decision_book.company_id],
)
reachable_companies = Companies.filter_active()
reachable_companies = Companies.filter_all()
if not reachable_companies.data:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -82,7 +81,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
BuildDecisionBookItems.filter_attr = BuildDecisionBookItems.FilterModel(
**data.dump()
)
records = BuildDecisionBookItems.filter_active(
records = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.build_decision_book_id == decision_book.id
)
return AlchemyJsonResponse(
@@ -105,7 +104,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):
# occupant_id=token_dict.occupant_list["occupant_id"]
# )
# BuildDecisionBookItems.filter_attr = list_options
# records = BuildDecisionBookItems.filter_active(
# records = BuildDecisionBookItems.filter_all(
# *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
# )
# return return_json_response_from_alchemy(response=records, pagination=list_options)
@@ -176,9 +175,10 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
debit_start_date: str = None,
debit_end_date: str = None,
):
build_parts_list = BuildParts.filter_active(
build_parts_list = BuildParts.filter_all(
BuildParts.human_livable == True,
BuildParts.build_id == build_id,
*BuildParts.valid_record_args(BuildParts)
)
book_payment_dict = dict(
payment_plan_time_periods=str(data_info_type.key),
@@ -335,8 +335,9 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent):
decision_book=decision_book,
token_dict=token_dict,
)
book_items = BuildDecisionBookItems.filter_active(
book_items = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.build_decision_book_id == decision_book.id,
*BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
)
data_dict["item_order"] = int(book_items.count) + 1

View File

@@ -34,12 +34,14 @@ class DecisionBookDecisionBookItemsDebitsListEventMethods(MethodToEvent):
decision_book_id: str,
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
):
BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_active(
BuildDecisionBookItems.decision_book_id == decision_book_id
BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.decision_book_id == decision_book_id,
*BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
).query
BuildDecisionBookItems.filter_attr = None
records = BuildDecisionBookItems.filter_active(
BuildDecisionBookItems.decision_book_id == decision_book_id
records = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.decision_book_id == decision_book_id,
*BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
)
return AlchemyJsonResponse(
completed=True,
@@ -89,12 +91,14 @@ class DecisionBookDecisionBookItemsDebitsCreateEventMethods(MethodToEvent):
decision_book_items_debits["confirmed_by"] = None
decision_book_items_debits["deleted_at"] = None
decision_book_items_debits["deleted_by"] = None
BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_active(
BuildDecisionBookItems.decision_book_id == decision_book_id
BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.decision_book_id == decision_book_id,
*BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
).query
BuildDecisionBookItems.filter_attr = None
records = BuildDecisionBookItems.filter_active(
BuildDecisionBookItems.decision_book_id == decision_book_id
records = BuildDecisionBookItems.filter_all(
BuildDecisionBookItems.decision_book_id == decision_book_id,
*BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems)
)
return AlchemyJsonResponse(
completed=True,

View File

@@ -384,7 +384,7 @@ DecisionBookPersonAssignOccupantEventMethod = (
# Build.id == decision_book.build_id,
# ],
# )
# reachable_building = Build.filter_active()
# reachable_building = Build.filter_all()
# if not reachable_building.data:
# raise HTTPException(
# status_code=status.HTTP_404_NOT_FOUND,
@@ -398,7 +398,7 @@ DecisionBookPersonAssignOccupantEventMethod = (
# ],
# filter_expr=[Companies.id == decision_book.resp_company_id],
# )
# reachable_companies = Companies.filter_active()
# reachable_companies = Companies.filter_all()
# if not reachable_companies.data:
# raise HTTPException(
# status_code=status.HTTP_404_NOT_FOUND,
@@ -410,7 +410,7 @@ DecisionBookPersonAssignOccupantEventMethod = (
# status_code=status.HTTP_404_NOT_FOUND,
# detail=f"No person is match with given UUID {data.person_uu_id}",
# )
# management_typecode = ApiEnumDropdown.filter_active(
# management_typecode = ApiEnumDropdown.filter_all(
# ApiEnumDropdown.uu_id == data.management_typecode_uu_id,
# ApiEnumDropdown.enum_class.in_("BuildManagementType", "BuildDuesTypes"),
# )