From 181745e4d56d07b89ed794a1c7637758d9623166 Mon Sep 17 00:00:00 2001 From: David Slusser Date: Thu, 18 Sep 2025 20:01:05 -0700 Subject: [PATCH] adding enable field for resources --- .../web/migrations/0002_resource_enabled.py | 18 ++++++++++++++++++ src/django_project/web/models.py | 1 + src/django_project/web/views/gui.py | 4 +++- src/django_project/web/views/viewsets.py | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 src/django_project/web/migrations/0002_resource_enabled.py diff --git a/src/django_project/web/migrations/0002_resource_enabled.py b/src/django_project/web/migrations/0002_resource_enabled.py new file mode 100644 index 0000000..80e6e5e --- /dev/null +++ b/src/django_project/web/migrations/0002_resource_enabled.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.4 on 2025-09-19 02:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('web', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='resource', + name='enabled', + field=models.BooleanField(default=True), + ), + ] diff --git a/src/django_project/web/models.py b/src/django_project/web/models.py index 4599aae..751264c 100644 --- a/src/django_project/web/models.py +++ b/src/django_project/web/models.py @@ -22,6 +22,7 @@ class Resource(HandyHelperBaseModel): description: models.TextField = models.TextField(null=True, blank=True) url: models.URLField = models.URLField(max_length=200, null=False) category: ResourceCategory = models.ForeignKey(ResourceCategory, on_delete=models.CASCADE, related_name="resources") + enabled: models.BooleanField = models.BooleanField(default=True) class Meta: ordering: list[str] = ["created_at"] diff --git a/src/django_project/web/views/gui.py b/src/django_project/web/views/gui.py index a4438df..d9315c4 100644 --- a/src/django_project/web/views/gui.py +++ b/src/django_project/web/views/gui.py @@ -35,7 +35,9 @@ class ResourceListPartialView(View): def get(self, request, pk) -> HttpResponse: category: Any = ResourceCategory.objects.get_object_or_none(pk=pk) if category: - resources: BaseManager[Resource] = Resource.objects.filter(category=category) + resources: BaseManager[Resource] = Resource.objects.filter(category=category, enabled=True).order_by( + "created_at" + ) else: resources = Resource.objects.none() color_map: dict[int, str] = { diff --git a/src/django_project/web/views/viewsets.py b/src/django_project/web/views/viewsets.py index 77d1f5b..21648a6 100644 --- a/src/django_project/web/views/viewsets.py +++ b/src/django_project/web/views/viewsets.py @@ -59,7 +59,7 @@ class ResourceViewSet(viewsets.ModelViewSet): filterset_class = ResourceFilterSet def get_queryset(self): - queryset = self.model.objects.all().select_related( + queryset = self.model.objects.filter(enabled=True).select_related( "category", )