Feat(UI): Blog with article page and Newsletter signup form.
This commit is contained in:
@@ -111,6 +111,8 @@ class Model_View_Base(BaseModel, ABC):
|
||||
ENDPOINT_PAGE_ACCESSIBILITY_STATEMENT: ClassVar[str] = 'routes_legal.accessibility_statement'
|
||||
ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER: ClassVar[str] = 'routes_core_apply_founding_partner.apply_founding_partner'
|
||||
ENDPOINT_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = 'routes_core_apply_founding_partner.apply_founding_partner_success'
|
||||
# ENDPOINT_PAGE_BLOG_NEWSLETTER: ClassVar[str] = 'routes_blog.blog_newsletter'
|
||||
ENDPOINT_PAGE_BLOG_NEWSLETTER_SUCCESS: ClassVar[str] = 'routes_blog.blog_newsletter_success'
|
||||
ENDPOINT_PAGE_CONTACT: ClassVar[str] = 'routes_core_contact.contact'
|
||||
ENDPOINT_PAGE_CONTACT_SUCCESS: ClassVar[str] = 'routes_core_contact.contact_success'
|
||||
ENDPOINT_PAGE_DATA_RETENTION_SCHEDULE: ClassVar[str] = 'routes_legal.retention_schedule'
|
||||
@@ -273,12 +275,14 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_PAGE_ADMIN_HOME: ClassVar[str] = '/admin'
|
||||
HASH_PAGE_APPLY_FOUNDING_PARTNER: ClassVar[str] = '/apply-founding-partner'
|
||||
HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = '/apply-founding-partner-success'#
|
||||
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-solo-to-multi-trainer-success'
|
||||
HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS: ClassVar[str] = '/blog/article/the-science-behind-dog-training-assessments-how-to-track-real-progress'
|
||||
HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_TRAINER_NEEDS_A_COMMAND_DICTIONARY: ClassVar[str] = '/blog/article/why-every-professional-trainer-needs-a-command-dictionary-in-2025'
|
||||
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_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'
|
||||
HASH_PAGE_BLOG_CATEGORY_TRAINING_TECHNIQUES: ClassVar[str] = '/blog/category/training-techniques'
|
||||
HASH_PAGE_BLOG_HOME: ClassVar[str] = '/blog/home'
|
||||
HASH_PAGE_BLOG_NEWSLETTER_SUCCESS: ClassVar[str] = '/blog/newsletter-success'
|
||||
HASH_PAGE_CONTACT: ClassVar[str] = '/contact'
|
||||
HASH_PAGE_CONTACT_SUCCESS: ClassVar[str] = '/contact-success'
|
||||
HASH_PAGE_DATA_RETENTION_SCHEDULE: ClassVar[str] = '/retention-schedule'
|
||||
@@ -302,6 +306,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_PAGE_USER_COMPANY: ClassVar[str] = '/user/company'
|
||||
HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login'
|
||||
HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout'
|
||||
HASH_POST_BLOG_NEWSLETTER: ClassVar[str] = '/blog/post-newletter-form'
|
||||
# HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment'
|
||||
HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE: ClassVar[str] = '/dog/save-assessment-distraction-and-response'
|
||||
HASH_SAVE_DOG_BUTTON_ICON: ClassVar[str] = '/dog/save-button-icon'
|
||||
|
||||
@@ -11,6 +11,8 @@ Data model for home view
|
||||
"""
|
||||
|
||||
# internal
|
||||
# from forms.project_hub.contact import Form_Contact
|
||||
from forms.project_hub.newsletter import Form_Newsletter
|
||||
from models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
@@ -18,8 +20,12 @@ from typing import ClassVar
|
||||
|
||||
|
||||
class Model_View_Blog_Home(Model_View_Base):
|
||||
HASH_POST_NEWSLETTER_FORM: ClassVar[str] = '/blog/post-newsletter-form'
|
||||
ID_NEWSLETTER_FORM: ClassVar[str] = 'form_newsletter'
|
||||
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_BLOG_HOME):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
form_newsletter: Form_Newsletter
|
||||
|
||||
def __init__(self, form_newsletter, hash_page_current=Model_View_Base.HASH_PAGE_BLOG_HOME):
|
||||
super().__init__(hash_page_current = hash_page_current, form_newsletter = form_newsletter)
|
||||
self._title = 'Blog Home'
|
||||
|
||||
Reference in New Issue
Block a user