Skip to content

Repository files navigation

djangocms-ndthemev4

Django 6.1 + django CMS 5.1 base template with Notre Dame Web Theme v4 integration (in progress).

Editor guide

End-user documentation for content editors (how to edit pages, widgets, events, archive, site settings, and more) lives in the GitHub Wiki:

https://github.com/ND-DAC-DOME/djangocms-nd-webthemev4/wiki

Quick start (Docker)

Requires Docker Desktop running.

docker compose -f local.yml build
docker compose -f local.yml up

App: http://localhost:8000
Mailhog: http://localhost:8025

Create a superuser:

docker compose -f local.yml run --rm django python manage.py createsuperuser

Database

PostgreSQL 17 (Compose service postgres). SQLite is not used.

DATABASE_URL is required and is assembled by the Django entrypoint from POSTGRES_* in .envs/.local/.postgres.

Quick start (local venv against Compose Postgres)

docker compose -f local.yml up -d postgres redis
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements/local.txt
export DATABASE_URL=postgres://debug:debug@127.0.0.1:5432/djangocms_ndthemev4
# Publish Postgres to the host first (see local.yml ports) or use Docker-only workflow above.
python manage.py migrate

Stack

  • Local: django, postgres, mailhog, redis, celeryworker, celerybeat
  • Production: nginx, django, postgres, redis, celeryworker, celerybeat
  • Optional Okta via OKTA_AUTH=True

Okta (OIDC)

Setting OKTA_AUTH=True swaps allauth for mozilla_django_oidc (app, SessionRefresh middleware, /oidc/ urls, samplecms.auth.NDOIDCAuthBackend). These env vars are then required:

Variable Required Default
OIDC_RP_CLIENT_ID yes
OIDC_RP_CLIENT_SECRET yes
OIDC_BASE_URL no ND Okta authorization server
LOGIN_REDIRECT_URL / LOGOUT_REDIRECT_URL no /
DJANGO_OIDC_CREATE_USER no False
DJANGO_OIDC_RENEW_ID_TOKEN_EXPIRY_SECONDS no 900

mozilla-django-oidc ships in requirements/production.txt only, so install it into the local venv before enabling OKTA_AUTH outside of production.

M6 goirish demo site (local QA)

Reset the database and seed a full browsable demo site:

docker compose -f local.yml down -v
docker compose -f local.yml up -d
docker compose -f local.yml exec django python manage.py migrate
docker compose -f local.yml exec django python manage.py goirish --fresh --demo-superuser

Demo login: admin / changeme

goirish creates Home (NDT banner + stats), News/Events/People landings with sample content, About, Archive, and the plugin/component showcase pages. Use --no-showcases for a faster seed, or --combined for a single News & Events landing page.

Re-run on an existing database with --fresh to wipe pages and rebuild.

M4 plugin showcase (local QA)

After goirish, the plugin review pages are included automatically. To rebuild showcases only:

docker compose -f local.yml exec django python manage.py seed_plugin_showcase

Pages:

Re-run safely; showcase placeholders are cleared and rebuilt each time.

M5 component showcase (local QA)

The component review page is included in goirish. To rebuild it only:

docker compose -f local.yml exec django python manage.py seed_components_showcase

Page:

Re-run safely; the showcase placeholder is cleared and rebuilt each time.

M5 component plugins — full stable NDT4 Components library:

Category Plugins
NDT / Content Accordion (+ item), Notice, Heading, Quote, Stat list (+ stat), Tabs (+ panel), List (+ item), Table, Timeline (+ item), FAQ (+ item), Dialog, Footnote list (+ item), Button, Byline, Icon, Sticker, Social share, Video button
NDT / Layout Banner (+ image, accordion panel, cards, gallery child), Page header, Nav anchor (+ item), Pagination (+ item), Button group/list (+ item), Icon button, Lede button
NDT / Cards Card list, Card grid; Default, News, Event, Featured, People, Media mention, Media mention (quoted), Byline item
NDT / Media Gallery (+ item), Image single, Image multiple (+ item), Video, Avatar
NDT / Forms Form (+ field), Search form

P0 chrome (template-level, not duplicate plugins): breadcrumb, page title placeholder, primary/sidebar navigation, site header/footer.

Deferred (Storybook coming or unstable): Banner group, button group border/active variants, news card image-right.

After adding new plugin classes, restart the Django container so they register in the plugin pool.

Theme assets (NDT 4.0)

  • CSS: https://conductor.nd.edu/stylesheets/themes/ndt/4.0/ndt.css
  • JS: https://conductor.nd.edu/javascripts/themes/ndt/4.0/ndt.js
  • Docs: https://webtheme.nd.edu/

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages