Source code for task_management.models

from django.conf import settings
from django.db.models import (
    CASCADE,
    DO_NOTHING,
    CharField,
    DateField,
    ForeignKey,
    ManyToManyField,
    TextField,
)
from django.urls import reverse_lazy

from abstract.enums import CellSize
from abstract.models import BaseModel


[docs] class Board(BaseModel): """ Model representing a board. """ name = CharField(max_length=255) def __str__(self): """ Return string representation of the board. """ return self.name
[docs] def get_absolute_url(self): """ Return the absolute URL to view the board. """ return reverse_lazy("task_management:boarddetail_view", kwargs={"pk": self.pk})
class Meta: managed = settings.MANAGE_DATABASE db_table = "task_board" verbose_name_plural = "Boards" if not settings.DEFAULT_PERMISSIONS: default_permissions = []
[docs] class List(BaseModel): """ Model representing a list. """ name = CharField(max_length=100) assigned_board = ForeignKey( "task_management.Board", related_name="lists", on_delete=CASCADE ) def __str__(self): """ Return string representation of the list. """ return self.name
[docs] def get_absolute_url(self): """ Return the absolute URL to view the list. """ return reverse_lazy("task_management:listdetail_view", kwargs={"pk": self.pk})
class Meta: managed = settings.MANAGE_DATABASE db_table = "task_list" verbose_name_plural = "Lists" if not settings.DEFAULT_PERMISSIONS: default_permissions = []
[docs] class Task(BaseModel): """ Model representing a task. """ title = CharField(max_length=100) description = TextField(max_length=1000, null=True, blank=True) assigned_list = ForeignKey( "task_management.List", related_name="tasks", on_delete=CASCADE ) assigned_to = ManyToManyField( "user.User", related_name="assigned_tasks", blank=True ) due_date = DateField(null=True, blank=True) def __str__(self): """ Return string representation of the task. """ return self.title
[docs] def get_absolute_url(self): """ Return the absolute URL to view the task. """ return reverse_lazy("task_management:taskdetail_view", kwargs={"pk": self.pk})
class Meta: managed = settings.MANAGE_DATABASE db_table = "task_task" verbose_name_plural = "Tasks" if not settings.DEFAULT_PERMISSIONS: default_permissions = []