Unit Tests / test (push) Successful in 3s
## 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
54 lines
2.2 KiB
Python
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
|
|
|
|
|
|
|
|
]
|
|
|