forked from github/plane
fix: back migration of page blocks
This commit is contained in:
parent
73c2416055
commit
176e184220
65
apiserver/plane/db/migrations/0048_auto_20231115_0916.py
Normal file
65
apiserver/plane/db/migrations/0048_auto_20231115_0916.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Generated by Django 4.2.5 on 2023-11-15 09:16
|
||||||
|
# Python imports
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
def update_pages(apps, schema_editor):
|
||||||
|
try:
|
||||||
|
Page = apps.get_model("db", "Page")
|
||||||
|
PageBlock = apps.get_model("db", "PageBlock")
|
||||||
|
PageLog = apps.get_model("db", "PageLog")
|
||||||
|
|
||||||
|
updated_pages = []
|
||||||
|
page_logs = []
|
||||||
|
|
||||||
|
# looping through all the pages
|
||||||
|
for page in Page.objects.all():
|
||||||
|
page_blocks = PageBlock.objects.filter(
|
||||||
|
page=page.id, project_id=page.project_id, workspace_id=page.workspace_id
|
||||||
|
).order_by("sort_order")
|
||||||
|
|
||||||
|
if page_blocks:
|
||||||
|
# looping through all the page blocks in a page
|
||||||
|
for page_block in page_blocks:
|
||||||
|
|
||||||
|
# adding the page block name and description to the page description
|
||||||
|
page.description_html += f"<p>{page_block.name}</p>"
|
||||||
|
page.description_html += page_block.description_html
|
||||||
|
|
||||||
|
if page_block.issue is not None:
|
||||||
|
# create the page transaction for the issue
|
||||||
|
page_logs.append(
|
||||||
|
PageLog(
|
||||||
|
page_id=page_block.page_id,
|
||||||
|
transaction=uuid.uuid4().hex,
|
||||||
|
entity_identifier=page_block.issue_id,
|
||||||
|
entity_name="issue",
|
||||||
|
project_id=page.project_id,
|
||||||
|
workspace_id=page.workspace_id,
|
||||||
|
created_by_id=page_block.created_by_id,
|
||||||
|
updated_by_id=page_block.updated_by_id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
updated_pages.append(page)
|
||||||
|
|
||||||
|
Page.objects.bulk_update(
|
||||||
|
updated_pages,
|
||||||
|
["description_html"],
|
||||||
|
batch_size=100,
|
||||||
|
)
|
||||||
|
PageLog.objects.bulk_create(page_logs, batch_size=100)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('db', '0047_issuemention_pagelog_page_archived_at_page_is_locked_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(update_pages),
|
||||||
|
]
|
@ -132,25 +132,7 @@ class Issue(ProjectBaseModel):
|
|||||||
self.state = default_state
|
self.state = default_state
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
# else:
|
|
||||||
# try:
|
|
||||||
# from plane.db.models import State, PageBlock
|
|
||||||
|
|
||||||
# # Check if the current issue state and completed state id are same
|
|
||||||
# if self.state.group == "completed":
|
|
||||||
# self.completed_at = timezone.now()
|
|
||||||
# # check if there are any page blocks
|
|
||||||
# PageBlock.objects.filter(issue_id=self.id).filter().update(
|
|
||||||
# completed_at=timezone.now()
|
|
||||||
# )
|
|
||||||
# else:
|
|
||||||
# PageBlock.objects.filter(issue_id=self.id).filter().update(
|
|
||||||
# completed_at=None
|
|
||||||
# )
|
|
||||||
# self.completed_at = None
|
|
||||||
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
if self._state.adding:
|
if self._state.adding:
|
||||||
# Get the maximum display_id value from the database
|
# Get the maximum display_id value from the database
|
||||||
last_id = IssueSequence.objects.filter(project=self.project).aggregate(
|
last_id = IssueSequence.objects.filter(project=self.project).aggregate(
|
||||||
|
Loading…
Reference in New Issue
Block a user