Feat: New blog article page.

This commit is contained in:
2025-08-16 16:01:06 +01:00
parent b1d34d951a
commit 39ec0cb7e8
58 changed files with 3504 additions and 2310 deletions

View File

@@ -277,6 +277,7 @@ class Model_View_Base(BaseModel, ABC):
HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = '/apply-founding-partner-success'#
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-25-to-100-plus-clients'
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-solo-to-multi-trainer-success'
HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR: ClassVar[str] = '/blog/article/the-hidden-costs-of-spreadsheet-dog-training-why-uk-trainers-are-losing-2000-plus-pounds-per-year'
HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS: ClassVar[str] = '/blog/article/the-science-behind-dog-training-assessments-how-to-track-real-progress'
HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025: ClassVar[str] = '/blog/article/why-every-professional-trainer-needs-a-command-dictionary-in-2025'
HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH: ClassVar[str] = '/blog/category/marketing-and-growth'

View File

@@ -88,6 +88,8 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
self.form_filters = form_filters_old
datastore_dog = DataStore_Dog()
datastore_user = DataStore_User()
user_session = datastore_dog.get_user_session()
# Assessments + filters
parameters_filter_lighting_level = Parameters_Lighting_Level.get_default()
@@ -95,7 +97,7 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
if len(self.filter_lighting_levels) > 0:
self.form_filters.id_lighting_level.choices += [(str(lighting_level.id_lighting_level), lighting_level.name) for lighting_level in self.filter_lighting_levels]
parameters_filter_location = Parameters_Location.get_default()
parameters_filter_location = Parameters_Location.get_default(user_session.id_user)
self.filter_locations, errors = datastore_dog.get_many_location(parameters_filter_location)
if len(self.filter_locations) > 0:
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
@@ -120,14 +122,14 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
self.assessments, errors = datastore_dog.get_many_assessment(parameters_filter_assessment)
# Distractions + filters
parameters_filter_distraction_type = Parameters_Distraction_Type.get_default()
parameters_filter_distraction_type = Parameters_Distraction_Type.get_default(user_session.id_user)
self.filter_distraction_types, errors = datastore_dog.get_many_distraction_type(parameters_filter_distraction_type)
"""
if len(self.filter_distraction_types) > 0:
self.form_filters.id_distraction_type.choices += [(str(distraction_type.id_type), distraction_type.name) for distraction_type in self.filter_distraction_types]
"""
parameters_filter_distraction_intensity_level = Parameters_Distraction_Intensity_Level.get_default()
parameters_filter_distraction_intensity_level = Parameters_Distraction_Intensity_Level.get_default(user_session.id_user)
self.filter_distraction_intensity_levels, errors = datastore_dog.get_many_distraction_intensity_level(parameters_filter_distraction_intensity_level)
"""
if len(self.filter_distraction_intensity_levels) > 0:
@@ -138,7 +140,7 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
distractions, errors = datastore_dog.get_many_distraction(parameters_filter_distraction)
# Assessment Command Modality Links + filters
parameters_filter_command = Parameters_Command.get_default()
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
self.filter_command_categories, self.filter_commands, errors = datastore_dog.get_many_command(parameters_filter_command)
"""
if len(self.filter_command_categories) > 0:
@@ -169,14 +171,14 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
assessment_command_modality_links, errors = datastore_dog.get_many_assessment_command_modality_link(parameters_filter_assessment_command_modality_link)
# Assessment Responses and filters
parameters_filter_response_quality_metric = Parameters_Response_Quality_Metric.get_default()
parameters_filter_response_quality_metric = Parameters_Response_Quality_Metric.get_default(user_session.id_user)
self.filter_response_quality_metrics, errors = datastore_dog.get_many_response_quality_metric(parameters_filter_response_quality_metric)
"""
if len(self.filter_response_quality_metrics) > 0:
self.form_filters.id_response_quality_metric.choices += [(str(response_quality_metric.id_response_quality_metric), response_quality_metric.name) for response_quality_metric in self.filter_response_quality_metrics]
"""
parameters_filter_obedience_level = Parameters_Obedience_Level.get_default()
parameters_filter_obedience_level = Parameters_Obedience_Level.get_default(user_session.id_user)
self.filter_obedience_levels, errors = datastore_dog.get_many_obedience_level(parameters_filter_obedience_level)
"""
if len(self.filter_obedience_levels) > 0:

View File

@@ -38,8 +38,10 @@ class Model_View_Dog_Command(Model_View_Dog_Base):
self._title = 'Command'
self.form_filters = form_filters_old
datastore = DataStore_Dog()
user_session = datastore.get_user_session()
parameters_filter_command = Parameters_Command.get_default()
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
self.filter_command_categories, filter_commands, errors = datastore.get_many_command(parameters_filter_command)
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]

View File

@@ -49,8 +49,10 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
self._title = 'Command Button Link'
self.form_filters = form_filters_old
datastore = DataStore_Dog()
user_session = datastore.get_user_session()
parameters_filter_command = Parameters_Command.get_default()
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
if len(self.filter_command_categories) > 0:
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
@@ -61,7 +63,7 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
Helper_App.console_log(f'sorted filter commands: {sorted_filter_commands}')
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in sorted_filter_commands] # .sort(key = lambda command: command[1])
parameters_filter_button_shape = Parameters_Button_Shape.get_default()
parameters_filter_button_shape = Parameters_Button_Shape.get_default(user_session.id_user)
self.filter_button_shapes, errors = datastore.get_many_button_shape(parameters_filter_button_shape)
if len(self.filter_button_shapes) > 0:
self.form_filters.id_button_shape.choices += [(str(button_shape.id_button_shape), button_shape.name) for button_shape in self.filter_button_shapes]
@@ -76,7 +78,7 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
if len(self.filter_button_icons) > 0:
self.form_filters.id_button_icon.choices += [(str(button_icon.id_button_icon), button_icon.name) for button_icon in self.filter_button_icons]
parameters_filter_location = Parameters_Location.get_default()
parameters_filter_location = Parameters_Location.get_default(user_session.id_user)
self.filter_locations, errors = datastore.get_many_location(parameters_filter_location)
if len(self.filter_locations) > 0:
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]

View File

@@ -43,12 +43,13 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
self._title = 'Dog Command Link'
self.form_filters = form_filters_old
datastore = DataStore_Dog()
parameters_filter_dog = Parameters_Dog.get_default()
user_session = datastore.get_user_session()
parameters_filter_dog = Parameters_Dog.get_default(user_session.id_user)
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
if len(self.filter_dogs) > 0:
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
parameters_filter_command = Parameters_Command.get_default()
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
if len(self.filter_command_categories) > 0:
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]