From 7429bd9beedf3ff99c46d82ee3bc68604e3ac37e Mon Sep 17 00:00:00 2001 From: sosokker Date: Tue, 21 Nov 2023 01:24:53 +0700 Subject: [PATCH] Add KanbanTaskOrder to track order of task in list --- .../boards/migrations/0002_kanbantaskorder.py | 23 +++++++++++++++++++ backend/boards/models.py | 16 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 backend/boards/migrations/0002_kanbantaskorder.py diff --git a/backend/boards/migrations/0002_kanbantaskorder.py b/backend/boards/migrations/0002_kanbantaskorder.py new file mode 100644 index 0000000..2926da5 --- /dev/null +++ b/backend/boards/migrations/0002_kanbantaskorder.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.6 on 2023-11-20 18:24 + +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('boards', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='KanbanTaskOrder', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('todo_order', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), blank=True, default=list, size=None)), + ('list_board', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='boards.listboard')), + ], + ), + ] diff --git a/backend/boards/models.py b/backend/boards/models.py index de2d107..3a2663a 100644 --- a/backend/boards/models.py +++ b/backend/boards/models.py @@ -1,3 +1,4 @@ +from django.contrib.postgres.fields import ArrayField from django.db import models from users.models import CustomUser @@ -18,6 +19,20 @@ class Board(models.Model): return f"{self.name}" +class KanbanTaskOrder(models.Model): + """ + Model to store the order of Todo tasks in a Kanban board. + + :param list_board: The list board that the order belongs to. + :param todo_order: ArrayField to store the order of Todo IDs. + """ + list_board = models.OneToOneField('ListBoard', on_delete=models.CASCADE) + todo_order = ArrayField(models.PositiveIntegerField(), blank=True, default=list) + + def __str__(self): + return f"Order for {self.list_board}" + + class ListBoard(models.Model): """ List inside a Kanban board. @@ -32,3 +47,4 @@ class ListBoard(models.Model): def __str__(self) -> str: return f"{self.name}" +