From c50ace771e8f40c9039ea6a8d1d73fd902c54bf3 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 15 Jun 2026 11:23:00 +0100 Subject: [PATCH] Implement hiding and showing functionality for user exams and collections --- AGENTS.md | 36 ++++++- .../atlas/partials/_user_collections.html | 67 +++++++++---- atlas/views.py | 28 +++++- generic/migrations/0033_userhiddenitem.py | 30 ++++++ generic/models.py | 31 ++++++ generic/urls.py | 1 + generic/views.py | 39 ++++++++ rad/tests/test_user_access.py | 99 +++++++++++++++++++ rad/views.py | 54 +++++++--- templates/profile.html | 4 +- templates/user_scores.html | 61 +++++++++--- 11 files changed, 400 insertions(+), 50 deletions(-) create mode 100644 generic/migrations/0033_userhiddenitem.py diff --git a/AGENTS.md b/AGENTS.md index 3c3e0789..5e544f28 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -98,13 +98,39 @@ Instead ## Docker (Dev) +### Start Dev Environment +Start the development server with local configurations: ```bash -# Start dev environment -COMPOSE_ENV=dev docker compose -f docker/docker-compose.dev.yml up -d --build +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml up -d --build +``` -# Run management commands inside the container -docker compose exec web python manage.py migrate -docker compose exec web python manage.py createsuperuser +### Run Django Management Commands inside the Container +Since PostgreSQL and Redis run in docker, run all database/management commands within the web container: +```bash +# Run database migrations +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml exec web python manage.py migrate + +# Generate new migrations +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml exec web python manage.py makemigrations + +# Check if migrations are missing (useful for CI/pre-commit) +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml exec web python manage.py makemigrations --check + +# Run system checks +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml exec web python manage.py check + +# Create a Django superuser +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml exec web python manage.py createsuperuser +``` + +### Runserver and service commands +To restart the web server/runserver or tail the container output: +```bash +# Restart the runserver/web service container +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml restart web + +# View container logs (interactive) +COMPOSE_ENV=dev docker compose -f docker/docker-compose.local.yml -f docker/docker-compose.dev.yml logs -f web ``` Dev server runs on `http://localhost:8080` (nginx → gunicorn/runserver). diff --git a/atlas/templates/atlas/partials/_user_collections.html b/atlas/templates/atlas/partials/_user_collections.html index 9d2141ea..25753304 100644 --- a/atlas/templates/atlas/partials/_user_collections.html +++ b/atlas/templates/atlas/partials/_user_collections.html @@ -5,40 +5,73 @@
Your collections
Available to start
-