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
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):
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.test import TestCase
from ..models import Item, List
from apps.lyric.models import User
class ItemModelTest(TestCase):
def test_default_text(self):
@@ -59,3 +60,11 @@ class ListModelTest(TestCase):
list(list1.item_set.all()),
[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,6 +10,7 @@ def new_list(request):
form = ItemForm(data=request.POST)
if form.is_valid():
nulist = List.objects.create()
if request.user.is_authenticated:
nulist.owner = request.user
nulist.save()
form.save(for_list=nulist)