""" 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 ]