Coverage for tasks/models.py: 100.00%
28 statements
« prev ^ index » next coverage.py v7.9.0, created at 2025-06-12 14:44 -0700
« prev ^ index » next coverage.py v7.9.0, created at 2025-06-12 14:44 -0700
1from django.contrib.auth import get_user_model
2from django.db import models
3from django.urls import reverse
4from django.utils import timezone
7def one_week_hence():
8 return timezone.now() + timezone.timedelta(days=7)
11class ToDoList(models.Model):
12 title = models.CharField(max_length=100, unique=True)
13 date = models.DateTimeField(auto_now_add=True)
14 owner = models.ForeignKey(
15 get_user_model(),
16 default=1,
17 on_delete=models.CASCADE,
18 )
20 class Meta:
21 ordering = ["date"]
23 def __str__(self):
24 return self.title 1b
26 def get_absolute_url(self):
27 return reverse("list", args=[self.id]) 1c
30class ToDoItem(models.Model):
31 title = models.CharField(max_length=100)
32 description = models.TextField(blank=True)
33 created_date = models.DateTimeField(auto_now_add=True)
34 due_date = models.DateTimeField(default=one_week_hence)
35 todo_list = models.ForeignKey(
36 ToDoList,
37 on_delete=models.CASCADE,
38 )
40 class Meta:
41 ordering = ["due_date"]
43 def __str__(self):
44 return f"{self.title}: due {self.due_date}" 1d
46 def get_absolute_url(self):
47 return reverse("item-update", args=[str(self.todo_list.id), str(self.id)]) 1e