diff --git a/taiga/projects/history/freeze_impl.py b/taiga/projects/history/freeze_impl.py index 30dcfc5d..6b41f7ca 100644 --- a/taiga/projects/history/freeze_impl.py +++ b/taiga/projects/history/freeze_impl.py @@ -212,7 +212,9 @@ def userstory_freezer(us) -> dict: "status": us.status_id, "is_closed": us.is_closed, "finish_date": str(us.finish_date), - "order": us.order, + "backlog_order": us.backlog_order, + "sprint_order": us.sprint_order, + "kanban_order": us.kanban_order, "subject": us.subject, "description": us.description, "description_html": mdrender(us.project, us.description), @@ -263,6 +265,8 @@ def task_freezer(task) -> dict: "assigned_to": task.assigned_to_id, "watchers": [x.pk for x in task.watchers.all()], "attachments": extract_attachments(task), + "taskboard_order": task.taskboard_order, + "us_order": task.us_order, "tags": task.tags, "user_story": task.user_story_id, "is_iocaine": task.is_iocaine, diff --git a/taiga/projects/tasks/models.py b/taiga/projects/tasks/models.py index 4aed662f..839285c5 100644 --- a/taiga/projects/tasks/models.py +++ b/taiga/projects/tasks/models.py @@ -55,6 +55,12 @@ class Task(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, models.M verbose_name=_("finished date")) subject = models.TextField(null=False, blank=False, verbose_name=_("subject")) + + us_order = models.IntegerField(null=False, blank=False, default=1, + verbose_name=_("us order")) + taskboard_order = models.IntegerField(null=False, blank=False, default=1, + verbose_name=_("taskboard order")) + description = models.TextField(null=False, blank=True, verbose_name=_("description")) assigned_to = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, default=None, related_name="tasks_assigned_to_me", diff --git a/taiga/projects/userstories/models.py b/taiga/projects/userstories/models.py index 5317a3a1..af50b0bd 100644 --- a/taiga/projects/userstories/models.py +++ b/taiga/projects/userstories/models.py @@ -73,8 +73,14 @@ class UserStory(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, mod points = models.ManyToManyField("projects.Points", null=False, blank=False, related_name="userstories", through="RolePoints", verbose_name=_("points")) - order = models.PositiveSmallIntegerField(null=False, blank=False, default=100, - verbose_name=_("order")) + + backlog_order = models.IntegerField(null=False, blank=False, default=1, + verbose_name=_("backlog order")) + sprint_order = models.IntegerField(null=False, blank=False, default=1, + verbose_name=_("sprint order")) + kanban_order = models.IntegerField(null=False, blank=False, default=1, + verbose_name=_("sprint order")) + created_date = models.DateTimeField(null=False, blank=False, verbose_name=_("created date"), default=timezone.now) @@ -101,7 +107,7 @@ class UserStory(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, mod class Meta: verbose_name = "user story" verbose_name_plural = "user stories" - ordering = ["project", "order", "ref"] + ordering = ["project", "backlog_order", "ref"] #unique_together = ("ref", "project") permissions = ( ("view_userstory", "Can view user story"),