Files
scha/schasite/urls.py
T
westfarn 04c3ac913c
Unit Tests / test (push) Successful in 3s
SEO enhancement and agentic browsing updates (#18) (#27)
## Summary
Closes #18.

- Add per-page titles, meta descriptions, Open Graph/Twitter tags, and canonical URLs on public `base2.html` pages
- Improve semantic structure: skip link, primary nav ARIA, single `<main id="main-content">`, heading hierarchy, descriptive image alts
- Publish `/robots.txt`, `/sitemap.xml`, and `/llms.txt` (linked from site head via `rel="alternate"`)
- Agentic/a11y fixes: membership checkbox label associations, ZIP `name` attribute, layout stability (image aspect-ratio / min-height), footer year without `document.write`
- WebMCP deferred — membership + Stripe checkout remain standard HTML/Stripe flows; no audit flag justified custom MCP surface yet

## Lighthouse / agentic notes
Baseline Lighthouse runs still need Chrome Canary export on staging/prod. Structural SEO/a11y items from the ticket are implemented so follow-up audits can capture before/after scores.

Expected audit wins vs prior minimal `charset`+`viewport` head:
- SEO: unique titles/descriptions, crawl directives, sitemap
- Agentic/a11y: landmarks, labels, CLS-oriented image sizing

## Test plan
- [x] `uv run python manage.py test schasite` (34 passed)
- [ ] Spot-check Home/About/Calendar/Dues/Membership/Board/Links in browser
- [ ] Confirm `/robots.txt`, `/sitemap.xml`, `/llms.txt` on deployed host
- [ ] Run Lighthouse SEO + Agentic browsing on key pages and note before/after pass ratio on the issue

Reviewed-on: #27
2026-07-14 05:19:28 -07:00

54 lines
2.2 KiB
Python

from django.urls import path
from django.conf import settings
from . import views
if settings.DEBUG:
authenticated_views = [
path('login/',views.login, name="login"),
path('set_password/',views.set_password, name="set_password"),
path('password_reset/',views.password_reset, name="password_reset"),
path('signup/',views.signup, name="signup"),
path('directory/',views.member_directory, name="directory"),
path('dashboard/',views.member_dashboard, name="dashboard"),
path('posts/',views.member_posts, name="posts"),
path('posts_create/',views.member_posts_create, name="posts_create"),
path('posts/<int:post_id>',views.member_posts_detail, name="posts_detail"),
path('profile/',views.profile, name="profile"),
]
else:
authenticated_views = []
urlpatterns = authenticated_views + [
# path("", views.index, name="index"),
# path("useful_links", views.useful_links, name="useful_links"),
# path("about_us", views.about_us, name="about_us"),
# path("calendar", views.calendar, name="calendar"),
# path("newsletters", views.newsletters, name="newsletters"),
# path("dues", views.dues, name="dues"),
# path("membership_form", views.membership_form, name="membership_form"),
# path("scha_board", views.scha_board, name="scha_board"),
# updated UI urls
path("", views.index2, name="index2"),
path("about_us", views.about_us2, name="about_us2"),
path("calendar", views.calendar2, name="calendar2"),
path("newsletters", views.newsletters2, name="newsletters2"),
path("dues", views.dues2, name="dues2"),
path("membership_form", views.membership_form2, name="membership_form2"),
path("scha_board", views.scha_board2, name="scha_board2"),
path("useful_links", views.useful_links2, name="useful_links2"),
path("robots.txt", views.robots_txt, name="robots_txt"),
path("sitemap.xml", views.sitemap_xml, name="sitemap_xml"),
path("llms.txt", views.llms_txt, name="llms_txt"),
# stripe specific urls below
path("config/", views.stripe_config),
path("create-checkout-session/", views.create_checkout_session),
# authenticated views
]