97 lines
4.3 KiB
Python
97 lines
4.3 KiB
Python
"""
|
|
Project: PARTS Website
|
|
Author: Edward Middleton-Smith
|
|
Precision And Research Technology Systems Limited
|
|
|
|
Technology: View Models
|
|
Feature: Dog Calendar Entries View Model
|
|
|
|
Description:
|
|
Data model for dog calendar entries view
|
|
"""
|
|
|
|
# internal
|
|
from business_objects.dog.calendar_entry import Calendar_Entry #, Parameters_Calendar_Entry
|
|
from business_objects.dog.calendar_entry_type import Calendar_Entry_Type
|
|
from datastores.datastore_dog import DataStore_Dog
|
|
from models.model_view_dog_base import Model_View_Dog_Base
|
|
from forms.dog.calendar_entry import Filters_Calendar_Entry
|
|
# from routes import bp_home
|
|
from helpers.helper_app import Helper_App
|
|
import lib.argument_validation as av
|
|
|
|
# external
|
|
from datetime import datetime
|
|
from pydantic import BaseModel
|
|
from typing import ClassVar
|
|
|
|
class Model_View_Dog_Calendar_Entry(Model_View_Dog_Base):
|
|
FLAG_IS_CALENDAR_ENTRY_TYPE_BILL: ClassVar[str] = Calendar_Entry.FLAG_IS_CALENDAR_ENTRY_TYPE_BILL
|
|
calendar_entries: list = None
|
|
form_filters: Filters_Calendar_Entry = None
|
|
form_filters_old: Filters_Calendar_Entry
|
|
|
|
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_CALENDAR_ENTRIES):
|
|
_m = 'Model_View_Dog_Calendar_Entry.__init__'
|
|
Helper_App.console_log(f'{_m}\nstarting...')
|
|
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
|
self._title = 'Overdue Bills'
|
|
self.form_filters = form_filters_old
|
|
datastore = DataStore_Dog()
|
|
|
|
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
|
# parameters_filter_calendar_entry = Parameters_Calendar_Entry.from_form_filters_calendar_entry(self.form_filters)
|
|
# Helper_App.console_log(f'Query args: {parameters_filter_calendar_entry}')
|
|
# self.calendar_entrys, errors = datastore.get_many_calendar_entry(parameters_filter_calendar_entry)
|
|
id_calendar_entry_type_bill = 1
|
|
calendar_entry_types = {
|
|
id_calendar_entry_type_bill: Calendar_Entry_Type.from_json({
|
|
Calendar_Entry_Type.ATTR_ID_CALENDAR_ENTRY_TYPE: id_calendar_entry_type_bill
|
|
, Calendar_Entry_Type.FLAG_CODE: 'BILL'
|
|
, Calendar_Entry_Type.FLAG_NAME: 'Bill'
|
|
, Calendar_Entry_Type.FLAG_ACTIVE: True
|
|
})
|
|
}
|
|
|
|
bill_1 = Calendar_Entry.from_json({
|
|
Calendar_Entry.ATTR_ID_CALENDAR_ENTRY: 1
|
|
, Calendar_Entry_Type.ATTR_ID_CALENDAR_ENTRY_TYPE: id_calendar_entry_type_bill
|
|
, Calendar_Entry.FLAG_NAME: 'Client 1, monthly: July'
|
|
, Calendar_Entry.FLAG_PRICE: 200
|
|
, Calendar_Entry.FLAG_DATE_FROM: datetime(2025, 7, 26, 12, 0, 0)
|
|
, Calendar_Entry.FLAG_DATE_TO: datetime(2025, 7, 26, 12, 0, 0)
|
|
, Calendar_Entry.FLAG_ACTIVE: True
|
|
})
|
|
bill_1.calendar_entry_type = calendar_entry_types[id_calendar_entry_type_bill]
|
|
bill_1.is_calendar_entry_type_bill = True
|
|
|
|
bill_2 = Calendar_Entry.from_json({
|
|
Calendar_Entry.ATTR_ID_CALENDAR_ENTRY: 1
|
|
, Calendar_Entry_Type.ATTR_ID_CALENDAR_ENTRY_TYPE: id_calendar_entry_type_bill
|
|
, Calendar_Entry.FLAG_NAME: 'Client 2, monthly: July'
|
|
, Calendar_Entry.FLAG_PRICE: 200
|
|
, Calendar_Entry.FLAG_DATE_FROM: datetime(2025, 7, 25, 11, 0, 0)
|
|
, Calendar_Entry.FLAG_DATE_TO: datetime(2025, 7, 25, 11, 0, 0)
|
|
, Calendar_Entry.FLAG_ACTIVE: True
|
|
})
|
|
bill_2.calendar_entry_type = calendar_entry_types[id_calendar_entry_type_bill]
|
|
bill_2.is_calendar_entry_type_bill = True
|
|
|
|
bill_3 = Calendar_Entry.from_json({
|
|
Calendar_Entry.ATTR_ID_CALENDAR_ENTRY: 1
|
|
, Calendar_Entry_Type.ATTR_ID_CALENDAR_ENTRY_TYPE: id_calendar_entry_type_bill
|
|
, Calendar_Entry.FLAG_NAME: 'Client 3, monthly: July'
|
|
, Calendar_Entry.FLAG_PRICE: 200
|
|
, Calendar_Entry.FLAG_DATE_FROM: datetime(2025, 7, 23, 9, 0, 0)
|
|
, Calendar_Entry.FLAG_DATE_TO: datetime(2025, 7, 23, 9, 0, 0)
|
|
, Calendar_Entry.FLAG_ACTIVE: True
|
|
})
|
|
bill_3.calendar_entry_type = calendar_entry_types[id_calendar_entry_type_bill]
|
|
bill_3.is_calendar_entry_type_bill = True
|
|
|
|
self.calendar_entries = [
|
|
bill_1
|
|
, bill_2
|
|
, bill_3
|
|
]
|