diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index c81fe00..68c9a5c 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -2,7 +2,7 @@ name: CI Pipeline on: push: - branches: [main, develop, feature/tests-and-ci, feature/multi-admin-roles] + branches: [main, develop, feature/tests-and-ci, feature/multi-admin-roles, fix/seo-improvements] pull_request: branches: [main] diff --git a/backend/app/__pycache__/__init__.cpython-312 - Copy.pyc b/backend/app/__pycache__/__init__.cpython-312 - Copy.pyc deleted file mode 100644 index f2d8ded..0000000 Binary files a/backend/app/__pycache__/__init__.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/__init__.cpython-312.pyc b/backend/app/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3743842..0000000 Binary files a/backend/app/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/auth.cpython-312.pyc b/backend/app/__pycache__/auth.cpython-312.pyc deleted file mode 100644 index 7c01d5e..0000000 Binary files a/backend/app/__pycache__/auth.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/config.cpython-312 - Copy.pyc b/backend/app/__pycache__/config.cpython-312 - Copy.pyc deleted file mode 100644 index c96e43d..0000000 Binary files a/backend/app/__pycache__/config.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/config.cpython-312.pyc b/backend/app/__pycache__/config.cpython-312.pyc deleted file mode 100644 index e68e6b6..0000000 Binary files a/backend/app/__pycache__/config.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/database.cpython-312 - Copy.pyc b/backend/app/__pycache__/database.cpython-312 - Copy.pyc deleted file mode 100644 index 9a04cdf..0000000 Binary files a/backend/app/__pycache__/database.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/database.cpython-312.pyc b/backend/app/__pycache__/database.cpython-312.pyc deleted file mode 100644 index 9a04cdf..0000000 Binary files a/backend/app/__pycache__/database.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/log_parser.cpython-312.pyc b/backend/app/__pycache__/log_parser.cpython-312.pyc deleted file mode 100644 index c66f89b..0000000 Binary files a/backend/app/__pycache__/log_parser.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/main.cpython-312 - Copy.pyc b/backend/app/__pycache__/main.cpython-312 - Copy.pyc deleted file mode 100644 index a1fc247..0000000 Binary files a/backend/app/__pycache__/main.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/main.cpython-312.pyc b/backend/app/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 8e89514..0000000 Binary files a/backend/app/__pycache__/main.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/models.cpython-312 - Copy.pyc b/backend/app/__pycache__/models.cpython-312 - Copy.pyc deleted file mode 100644 index 2d459cc..0000000 Binary files a/backend/app/__pycache__/models.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/models.cpython-312.pyc b/backend/app/__pycache__/models.cpython-312.pyc deleted file mode 100644 index 6fb50ac..0000000 Binary files a/backend/app/__pycache__/models.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/schemas.cpython-312.pyc b/backend/app/__pycache__/schemas.cpython-312.pyc deleted file mode 100644 index 5a3da62..0000000 Binary files a/backend/app/__pycache__/schemas.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/theme_export.cpython-312.pyc b/backend/app/__pycache__/theme_export.cpython-312.pyc deleted file mode 100644 index 06d0e08..0000000 Binary files a/backend/app/__pycache__/theme_export.cpython-312.pyc and /dev/null differ diff --git a/backend/app/__pycache__/user_models.cpython-312 - Copy.pyc b/backend/app/__pycache__/user_models.cpython-312 - Copy.pyc deleted file mode 100644 index ed7c844..0000000 Binary files a/backend/app/__pycache__/user_models.cpython-312 - Copy.pyc and /dev/null differ diff --git a/backend/app/__pycache__/user_models.cpython-312.pyc b/backend/app/__pycache__/user_models.cpython-312.pyc deleted file mode 100644 index ed7c844..0000000 Binary files a/backend/app/__pycache__/user_models.cpython-312.pyc and /dev/null differ diff --git a/backend/app/main.py b/backend/app/main.py index 10ca14f..a551719 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -78,6 +78,11 @@ def _migrate_add_missing_columns(sync_conn): ("station_config", "color_black", sa.String(7), "#1a1816"), # Multi-admin support: password_hash (nullable — existing rows stay NULL) ("users", "password_hash", sa.String(255), None), + # Social media columns + ("station_config", "social_facebook", sa.String(500), ""), + ("station_config", "social_twitter", sa.String(500), ""), + ("station_config", "social_instagram", sa.String(500), ""), + ("station_config", "social_youtube", sa.String(500), ""), ] # Determine dialect diff --git a/backend/app/models.py b/backend/app/models.py index 8954944..8b26604 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -97,6 +97,12 @@ class StationConfig(Base): # Donation donation_url = Column(String(500), nullable=False, default="") + # Social media + social_facebook = Column(String(500), nullable=False, default="") + social_twitter = Column(String(500), nullable=False, default="") + social_instagram = Column(String(500), nullable=False, default="") + social_youtube = Column(String(500), nullable=False, default="") + # Stream stream_url = Column(String(500), nullable=False, default="") stream_metadata_url = Column(String(500), nullable=False, default="") diff --git a/backend/app/schemas.py b/backend/app/schemas.py index 3ac4a84..bccb55b 100644 --- a/backend/app/schemas.py +++ b/backend/app/schemas.py @@ -78,6 +78,11 @@ class StationConfigResponse(BaseModel): play_store_icon_url: str play_store_url: str app_store_embed_html: str + # Social media + social_facebook: str + social_twitter: str + social_instagram: str + social_youtube: str # Page content hero_subtitle: str about_intro: str @@ -129,6 +134,11 @@ class StationConfigUpdate(BaseModel): play_store_icon_url: Optional[str] = None play_store_url: Optional[str] = None app_store_embed_html: Optional[str] = None + # Social media + social_facebook: Optional[str] = None + social_twitter: Optional[str] = None + social_instagram: Optional[str] = None + social_youtube: Optional[str] = None # Page content hero_subtitle: Optional[str] = None about_intro: Optional[str] = None diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..27c712f --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,7 @@ +User-agent: * +Allow: / + +Disallow: /admin +Disallow: /login + +Sitemap: https://kmountainflower.org/sitemap.xml diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..d7169f9 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,28 @@ + + + + https://kmountainflower.org/ + daily + 1.0 + + + https://kmountainflower.org/about + weekly + 0.8 + + + https://kmountainflower.org/schedule + weekly + 0.8 + + + https://kmountainflower.org/events + daily + 0.8 + + + https://kmountainflower.org/contact + monthly + 0.5 + + diff --git a/src/app/about/about.component.html b/src/app/about/about.component.html index eb67bd5..931389e 100644 --- a/src/app/about/about.component.html +++ b/src/app/about/about.component.html @@ -3,7 +3,7 @@
-

About {{ config().name_primary }} {{ config().name_secondary }}

+

About {{ config().name_primary }} {{ config().name_secondary }}

{{ config().about_intro }}

@@ -73,7 +73,7 @@ @if (config().donation_url) {

Become a Member

{{ config().about_donation_text }}

diff --git a/src/app/contact/contact.component.html b/src/app/contact/contact.component.html index 0ece1c3..c137437 100644 --- a/src/app/contact/contact.component.html +++ b/src/app/contact/contact.component.html @@ -2,7 +2,7 @@
-

Get in Touch

+

Get in Touch

Have a song request, want to volunteer, or just want to say hello? We'd love to hear from you. diff --git a/src/app/events/events.component.html b/src/app/events/events.component.html index 2c9fb72..42ec0d7 100644 --- a/src/app/events/events.component.html +++ b/src/app/events/events.component.html @@ -2,7 +2,7 @@

-

Upcoming Events

+

Upcoming Events

{{ config().events_intro }}

@@ -29,7 +29,7 @@ @if (event.rsvp_url) { RSVP → } @else { - Learn More → + Learn More → }
diff --git a/src/app/footer/footer.component.html b/src/app/footer/footer.component.html index ec17f37..d272a6f 100644 --- a/src/app/footer/footer.component.html +++ b/src/app/footer/footer.component.html @@ -35,18 +35,26 @@ @if (config().donation_url) {
  • Become a Member
  • } -
  • Volunteer
  • -
  • Corporate Giving
  • -
  • Planned Giving
  • +
  • Volunteer
  • +
  • Corporate Giving
  • +
  • Planned Giving
  • diff --git a/src/app/interfaces/station-config.ts b/src/app/interfaces/station-config.ts index 9d7b60c..131d2ff 100644 --- a/src/app/interfaces/station-config.ts +++ b/src/app/interfaces/station-config.ts @@ -23,6 +23,11 @@ export interface StationConfig { play_store_icon_url: string; play_store_url: string; app_store_embed_html: string; + // Social media + social_facebook: string; + social_twitter: string; + social_instagram: string; + social_youtube: string; // Page content hero_subtitle: string; about_intro: string; diff --git a/src/app/schedule/schedule.component.html b/src/app/schedule/schedule.component.html index 7e2694b..9641c9f 100644 --- a/src/app/schedule/schedule.component.html +++ b/src/app/schedule/schedule.component.html @@ -2,7 +2,7 @@
    -

    Program Schedule

    +

    Program Schedule

    {{ config().schedule_intro }}