chore: delete deprecated tables (#5833)
* migration: external source and id for issues * fix: cleaning up deprecated favorite tables * fix: removing deprecated models --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
This commit is contained in:
parent
6e63af7ca9
commit
cc613e57c9
9 changed files with 197 additions and 225 deletions
|
|
@ -0,0 +1,187 @@
|
||||||
|
# Generated by Django 4.2.16 on 2024-10-15 11:31
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("db", "0080_fileasset_draft_issue_alter_fileasset_entity_type"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="globalview",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="globalview",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="globalview",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name="issueviewfavorite",
|
||||||
|
unique_together=None,
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="project",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="user",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="view",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="issueviewfavorite",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name="modulefavorite",
|
||||||
|
unique_together=None,
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="module",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="project",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="user",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="modulefavorite",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="issue",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="page",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="project",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pageblock",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name="pagefavorite",
|
||||||
|
unique_together=None,
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="page",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="project",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="user",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="pagefavorite",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name="projectfavorite",
|
||||||
|
unique_together=None,
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="projectfavorite",
|
||||||
|
name="created_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="projectfavorite",
|
||||||
|
name="project",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="projectfavorite",
|
||||||
|
name="updated_by",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="projectfavorite",
|
||||||
|
name="user",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="projectfavorite",
|
||||||
|
name="workspace",
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="issuetype",
|
||||||
|
name="external_id",
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="issuetype",
|
||||||
|
name="external_source",
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True),
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="CycleFavorite",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="GlobalView",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="IssueViewFavorite",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="ModuleFavorite",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="PageBlock",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="PageFavorite",
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name="ProjectFavorite",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -2,7 +2,7 @@ from .analytic import AnalyticView
|
||||||
from .api import APIActivityLog, APIToken
|
from .api import APIActivityLog, APIToken
|
||||||
from .asset import FileAsset
|
from .asset import FileAsset
|
||||||
from .base import BaseModel
|
from .base import BaseModel
|
||||||
from .cycle import Cycle, CycleFavorite, CycleIssue, CycleUserProperties
|
from .cycle import Cycle, CycleIssue, CycleUserProperties
|
||||||
from .dashboard import Dashboard, DashboardWidget, Widget
|
from .dashboard import Dashboard, DashboardWidget, Widget
|
||||||
from .deploy_board import DeployBoard
|
from .deploy_board import DeployBoard
|
||||||
from .draft import DraftIssue, DraftIssueAssignee, DraftIssueLabel, DraftIssueModule, DraftIssueCycle
|
from .draft import DraftIssue, DraftIssueAssignee, DraftIssueLabel, DraftIssueModule, DraftIssueCycle
|
||||||
|
|
@ -39,7 +39,6 @@ from .issue import (
|
||||||
)
|
)
|
||||||
from .module import (
|
from .module import (
|
||||||
Module,
|
Module,
|
||||||
ModuleFavorite,
|
|
||||||
ModuleIssue,
|
ModuleIssue,
|
||||||
ModuleLink,
|
ModuleLink,
|
||||||
ModuleMember,
|
ModuleMember,
|
||||||
|
|
@ -52,7 +51,6 @@ from .notification import (
|
||||||
)
|
)
|
||||||
from .page import (
|
from .page import (
|
||||||
Page,
|
Page,
|
||||||
PageFavorite,
|
|
||||||
PageLabel,
|
PageLabel,
|
||||||
PageLog,
|
PageLog,
|
||||||
ProjectPage,
|
ProjectPage,
|
||||||
|
|
@ -61,7 +59,6 @@ from .page import (
|
||||||
from .project import (
|
from .project import (
|
||||||
Project,
|
Project,
|
||||||
ProjectBaseModel,
|
ProjectBaseModel,
|
||||||
ProjectFavorite,
|
|
||||||
ProjectIdentifier,
|
ProjectIdentifier,
|
||||||
ProjectMember,
|
ProjectMember,
|
||||||
ProjectMemberInvite,
|
ProjectMemberInvite,
|
||||||
|
|
@ -72,7 +69,7 @@ from .session import Session
|
||||||
from .social_connection import SocialLoginConnection
|
from .social_connection import SocialLoginConnection
|
||||||
from .state import State
|
from .state import State
|
||||||
from .user import Account, Profile, User
|
from .user import Account, Profile, User
|
||||||
from .view import IssueView, IssueViewFavorite
|
from .view import IssueView
|
||||||
from .webhook import Webhook, WebhookLog
|
from .webhook import Webhook, WebhookLog
|
||||||
from .workspace import (
|
from .workspace import (
|
||||||
Team,
|
Team,
|
||||||
|
|
@ -87,7 +84,7 @@ from .workspace import (
|
||||||
|
|
||||||
from .importer import Importer
|
from .importer import Importer
|
||||||
|
|
||||||
from .page import Page, PageLog, PageFavorite, PageLabel
|
from .page import Page, PageLog, PageLabel
|
||||||
|
|
||||||
from .estimate import Estimate, EstimatePoint
|
from .estimate import Estimate, EstimatePoint
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -127,33 +127,6 @@ class CycleIssue(ProjectBaseModel):
|
||||||
return f"{self.cycle}"
|
return f"{self.cycle}"
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class CycleFavorite(ProjectBaseModel):
|
|
||||||
"""_summary_
|
|
||||||
CycleFavorite (model): To store all the cycle favorite of the user
|
|
||||||
"""
|
|
||||||
|
|
||||||
user = models.ForeignKey(
|
|
||||||
settings.AUTH_USER_MODEL,
|
|
||||||
on_delete=models.CASCADE,
|
|
||||||
related_name="cycle_favorites",
|
|
||||||
)
|
|
||||||
cycle = models.ForeignKey(
|
|
||||||
"db.Cycle", on_delete=models.CASCADE, related_name="cycle_favorites"
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ["cycle", "user"]
|
|
||||||
verbose_name = "Cycle Favorite"
|
|
||||||
verbose_name_plural = "Cycle Favorites"
|
|
||||||
db_table = "cycle_favorites"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return user and the cycle"""
|
|
||||||
return f"{self.user.email} <{self.cycle.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
class CycleUserProperties(ProjectBaseModel):
|
class CycleUserProperties(ProjectBaseModel):
|
||||||
cycle = models.ForeignKey(
|
cycle = models.ForeignKey(
|
||||||
"db.Cycle",
|
"db.Cycle",
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ class IssueType(BaseModel):
|
||||||
is_default = models.BooleanField(default=False)
|
is_default = models.BooleanField(default=False)
|
||||||
is_active = models.BooleanField(default=True)
|
is_active = models.BooleanField(default=True)
|
||||||
level = models.PositiveIntegerField(default=0)
|
level = models.PositiveIntegerField(default=0)
|
||||||
|
external_source = models.CharField(max_length=255, null=True, blank=True)
|
||||||
|
external_id = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "Issue Type"
|
verbose_name = "Issue Type"
|
||||||
|
|
|
||||||
|
|
@ -100,9 +100,9 @@ class Module(ProjectBaseModel):
|
||||||
unique_together = ["name", "project", "deleted_at"]
|
unique_together = ["name", "project", "deleted_at"]
|
||||||
constraints = [
|
constraints = [
|
||||||
models.UniqueConstraint(
|
models.UniqueConstraint(
|
||||||
fields=['name', 'project'],
|
fields=["name", "project"],
|
||||||
condition=Q(deleted_at__isnull=True),
|
condition=Q(deleted_at__isnull=True),
|
||||||
name='module_unique_name_project_when_deleted_at_null'
|
name="module_unique_name_project_when_deleted_at_null",
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
verbose_name = "Module"
|
verbose_name = "Module"
|
||||||
|
|
@ -191,33 +191,6 @@ class ModuleLink(ProjectBaseModel):
|
||||||
return f"{self.module.name} {self.url}"
|
return f"{self.module.name} {self.url}"
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class ModuleFavorite(ProjectBaseModel):
|
|
||||||
"""_summary_
|
|
||||||
ModuleFavorite (model): To store all the module favorite of the user
|
|
||||||
"""
|
|
||||||
|
|
||||||
user = models.ForeignKey(
|
|
||||||
settings.AUTH_USER_MODEL,
|
|
||||||
on_delete=models.CASCADE,
|
|
||||||
related_name="module_favorites",
|
|
||||||
)
|
|
||||||
module = models.ForeignKey(
|
|
||||||
"db.Module", on_delete=models.CASCADE, related_name="module_favorites"
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ["module", "user"]
|
|
||||||
verbose_name = "Module Favorite"
|
|
||||||
verbose_name_plural = "Module Favorites"
|
|
||||||
db_table = "module_favorites"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return user and the module"""
|
|
||||||
return f"{self.user.email} <{self.module.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
class ModuleUserProperties(ProjectBaseModel):
|
class ModuleUserProperties(ProjectBaseModel):
|
||||||
module = models.ForeignKey(
|
module = models.ForeignKey(
|
||||||
"db.Module",
|
"db.Module",
|
||||||
|
|
|
||||||
|
|
@ -119,86 +119,6 @@ class PageLog(BaseModel):
|
||||||
return f"{self.page.name} {self.entity_name}"
|
return f"{self.page.name} {self.entity_name}"
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class PageBlock(ProjectBaseModel):
|
|
||||||
page = models.ForeignKey(
|
|
||||||
"db.Page", on_delete=models.CASCADE, related_name="blocks"
|
|
||||||
)
|
|
||||||
name = models.CharField(max_length=255)
|
|
||||||
description = models.JSONField(default=dict, blank=True)
|
|
||||||
description_html = models.TextField(blank=True, default="<p></p>")
|
|
||||||
description_stripped = models.TextField(blank=True, null=True)
|
|
||||||
issue = models.ForeignKey(
|
|
||||||
"db.Issue", on_delete=models.SET_NULL, related_name="blocks", null=True
|
|
||||||
)
|
|
||||||
completed_at = models.DateTimeField(null=True)
|
|
||||||
sort_order = models.FloatField(default=65535)
|
|
||||||
sync = models.BooleanField(default=True)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
if self._state.adding:
|
|
||||||
largest_sort_order = PageBlock.objects.filter(
|
|
||||||
project=self.project, page=self.page
|
|
||||||
).aggregate(largest=models.Max("sort_order"))["largest"]
|
|
||||||
if largest_sort_order is not None:
|
|
||||||
self.sort_order = largest_sort_order + 10000
|
|
||||||
|
|
||||||
# Strip the html tags using html parser
|
|
||||||
self.description_stripped = (
|
|
||||||
None
|
|
||||||
if (self.description_html == "" or self.description_html is None)
|
|
||||||
else strip_tags(self.description_html)
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.completed_at and self.issue:
|
|
||||||
try:
|
|
||||||
from plane.db.models import Issue, State
|
|
||||||
|
|
||||||
completed_state = State.objects.filter(
|
|
||||||
group="completed", project=self.project
|
|
||||||
).first()
|
|
||||||
if completed_state is not None:
|
|
||||||
Issue.objects.update(
|
|
||||||
pk=self.issue_id, state=completed_state
|
|
||||||
)
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
super(PageBlock, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = "Page Block"
|
|
||||||
verbose_name_plural = "Page Blocks"
|
|
||||||
db_table = "page_blocks"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return page and page block"""
|
|
||||||
return f"{self.page.name} <{self.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class PageFavorite(ProjectBaseModel):
|
|
||||||
user = models.ForeignKey(
|
|
||||||
settings.AUTH_USER_MODEL,
|
|
||||||
on_delete=models.CASCADE,
|
|
||||||
related_name="page_favorites",
|
|
||||||
)
|
|
||||||
page = models.ForeignKey(
|
|
||||||
"db.Page", on_delete=models.CASCADE, related_name="page_favorites"
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ["page", "user"]
|
|
||||||
verbose_name = "Page Favorite"
|
|
||||||
verbose_name_plural = "Page Favorites"
|
|
||||||
db_table = "page_favorites"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return user and the page"""
|
|
||||||
return f"{self.user.email} <{self.page.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
class PageLabel(BaseModel):
|
class PageLabel(BaseModel):
|
||||||
label = models.ForeignKey(
|
label = models.ForeignKey(
|
||||||
"db.Label", on_delete=models.CASCADE, related_name="page_labels"
|
"db.Label", on_delete=models.CASCADE, related_name="page_labels"
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,9 @@ class ProjectBaseModel(BaseModel):
|
||||||
Project, on_delete=models.CASCADE, related_name="project_%(class)s"
|
Project, on_delete=models.CASCADE, related_name="project_%(class)s"
|
||||||
)
|
)
|
||||||
workspace = models.ForeignKey(
|
workspace = models.ForeignKey(
|
||||||
"db.Workspace", on_delete=models.CASCADE, related_name="workspace_%(class)s"
|
"db.Workspace",
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name="workspace_%(class)s",
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
@ -285,26 +287,6 @@ class ProjectIdentifier(AuditModel):
|
||||||
ordering = ("-created_at",)
|
ordering = ("-created_at",)
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class ProjectFavorite(ProjectBaseModel):
|
|
||||||
user = models.ForeignKey(
|
|
||||||
settings.AUTH_USER_MODEL,
|
|
||||||
on_delete=models.CASCADE,
|
|
||||||
related_name="project_favorites",
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ["project", "user"]
|
|
||||||
verbose_name = "Project Favorite"
|
|
||||||
verbose_name_plural = "Project Favorites"
|
|
||||||
db_table = "project_favorites"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return user of the project"""
|
|
||||||
return f"{self.user.email} <{self.project.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
def get_anchor():
|
def get_anchor():
|
||||||
return uuid4().hex
|
return uuid4().hex
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,41 +52,6 @@ def get_default_display_properties():
|
||||||
"updated_on": True,
|
"updated_on": True,
|
||||||
}
|
}
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class GlobalView(BaseModel):
|
|
||||||
workspace = models.ForeignKey(
|
|
||||||
"db.Workspace", on_delete=models.CASCADE, related_name="global_views"
|
|
||||||
)
|
|
||||||
name = models.CharField(max_length=255, verbose_name="View Name")
|
|
||||||
description = models.TextField(verbose_name="View Description", blank=True)
|
|
||||||
query = models.JSONField(verbose_name="View Query")
|
|
||||||
access = models.PositiveSmallIntegerField(
|
|
||||||
default=1, choices=((0, "Private"), (1, "Public"))
|
|
||||||
)
|
|
||||||
query_data = models.JSONField(default=dict)
|
|
||||||
sort_order = models.FloatField(default=65535)
|
|
||||||
logo_props = models.JSONField(default=dict)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = "Global View"
|
|
||||||
verbose_name_plural = "Global Views"
|
|
||||||
db_table = "global_views"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
|
||||||
if self._state.adding:
|
|
||||||
largest_sort_order = GlobalView.objects.filter(
|
|
||||||
workspace=self.workspace
|
|
||||||
).aggregate(largest=models.Max("sort_order"))["largest"]
|
|
||||||
if largest_sort_order is not None:
|
|
||||||
self.sort_order = largest_sort_order + 10000
|
|
||||||
|
|
||||||
super(GlobalView, self).save(*args, **kwargs)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return name of the View"""
|
|
||||||
return f"{self.name} <{self.workspace.name}>"
|
|
||||||
|
|
||||||
|
|
||||||
class IssueView(WorkspaceBaseModel):
|
class IssueView(WorkspaceBaseModel):
|
||||||
name = models.CharField(max_length=255, verbose_name="View Name")
|
name = models.CharField(max_length=255, verbose_name="View Name")
|
||||||
|
|
@ -109,7 +74,6 @@ class IssueView(WorkspaceBaseModel):
|
||||||
)
|
)
|
||||||
is_locked = models.BooleanField(default=False)
|
is_locked = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "Issue View"
|
verbose_name = "Issue View"
|
||||||
verbose_name_plural = "Issue Views"
|
verbose_name_plural = "Issue Views"
|
||||||
|
|
@ -139,26 +103,3 @@ class IssueView(WorkspaceBaseModel):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""Return name of the View"""
|
"""Return name of the View"""
|
||||||
return f"{self.name} <{self.project.name}>"
|
return f"{self.name} <{self.project.name}>"
|
||||||
|
|
||||||
|
|
||||||
# DEPRECATED TODO: - Remove in next release
|
|
||||||
class IssueViewFavorite(ProjectBaseModel):
|
|
||||||
user = models.ForeignKey(
|
|
||||||
settings.AUTH_USER_MODEL,
|
|
||||||
on_delete=models.CASCADE,
|
|
||||||
related_name="user_view_favorites",
|
|
||||||
)
|
|
||||||
view = models.ForeignKey(
|
|
||||||
"db.IssueView", on_delete=models.CASCADE, related_name="view_favorites"
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
unique_together = ["view", "user"]
|
|
||||||
verbose_name = "View Favorite"
|
|
||||||
verbose_name_plural = "View Favorites"
|
|
||||||
db_table = "view_favorites"
|
|
||||||
ordering = ("-created_at",)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
"""Return user and the view"""
|
|
||||||
return f"{self.user.email} <{self.view.name}>"
|
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,6 @@ class OffsetPaginator:
|
||||||
raise BadPaginationError("Pagination offset cannot be negative")
|
raise BadPaginationError("Pagination offset cannot be negative")
|
||||||
|
|
||||||
results = queryset[offset:stop]
|
results = queryset[offset:stop]
|
||||||
print(limit, "limit")
|
|
||||||
if cursor.value != limit:
|
if cursor.value != limit:
|
||||||
results = results[-(limit + 1) :]
|
results = results[-(limit + 1) :]
|
||||||
|
|
||||||
|
|
@ -761,7 +760,6 @@ class BasePaginator:
|
||||||
):
|
):
|
||||||
"""Paginate the request"""
|
"""Paginate the request"""
|
||||||
per_page = self.get_per_page(request, default_per_page, max_per_page)
|
per_page = self.get_per_page(request, default_per_page, max_per_page)
|
||||||
print(per_page, "per_page")
|
|
||||||
# Convert the cursor value to integer and float from string
|
# Convert the cursor value to integer and float from string
|
||||||
input_cursor = None
|
input_cursor = None
|
||||||
try:
|
try:
|
||||||
|
|
@ -788,7 +786,6 @@ class BasePaginator:
|
||||||
paginator = paginator_cls(**paginator_kwargs)
|
paginator = paginator_cls(**paginator_kwargs)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
print(per_page, "per_page 2")
|
|
||||||
cursor_result = paginator.get_result(
|
cursor_result = paginator.get_result(
|
||||||
limit=per_page, cursor=input_cursor
|
limit=per_page, cursor=input_cursor
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue