List objects now container owner values, saved upon creation, linked to user fk; apps.dashboard.views updated accordingly; 36 UTs passing (2 new)

This commit is contained in:
Disco DeDisco
2026-02-08 22:33:15 -05:00
parent 6c0e9bb6ec
commit 94a161fe09
4 changed files with 41 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
# Generated by Django 6.0 on 2026-02-09 03:29
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dashboard', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='list',
name='owner',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lists', to=settings.AUTH_USER_MODEL),
),
]

View File

@@ -2,6 +2,14 @@ from django.db import models
from django.urls import reverse from django.urls import reverse
class List(models.Model): class List(models.Model):
owner = models.ForeignKey(
"lyric.User",
related_name="lists",
blank=True,
null=True,
on_delete=models.CASCADE,
)
def get_absolute_url(self): def get_absolute_url(self):
return reverse("view_list", args=[self.id]) return reverse("view_list", args=[self.id])

View File

@@ -2,6 +2,7 @@ from django.core.exceptions import ValidationError
from django.db.utils import IntegrityError from django.db.utils import IntegrityError
from django.test import TestCase from django.test import TestCase
from ..models import Item, List from ..models import Item, List
from apps.lyric.models import User
class ItemModelTest(TestCase): class ItemModelTest(TestCase):
def test_default_text(self): def test_default_text(self):
@@ -59,3 +60,11 @@ class ListModelTest(TestCase):
list(list1.item_set.all()), list(list1.item_set.all()),
[item1, item2, item3], [item1, item2, item3],
) )
def test_lists_can_have_owners(self):
user = User.objects.create(email="a@b.cde")
mylist = List.objects.create(owner=user)
self.assertIn(mylist, user.lists.all())
def test_list_owner_is_optional(self):
List.objects.create()

View File

@@ -10,8 +10,9 @@ def new_list(request):
form = ItemForm(data=request.POST) form = ItemForm(data=request.POST)
if form.is_valid(): if form.is_valid():
nulist = List.objects.create() nulist = List.objects.create()
nulist.owner = request.user if request.user.is_authenticated:
nulist.save() nulist.owner = request.user
nulist.save()
form.save(for_list=nulist) form.save(for_list=nulist)
return redirect(nulist) return redirect(nulist)
else: else: