Some checks failed
CodeQL / Analyze (javascript) (push) Failing after 16s
CodeQL / Analyze (python) (push) Failing after 3s
i18n sync check / check:sync (push) Failing after 3s
React Doctor / react-doctor (push) Failing after 16s
Branch Build CE / Build-Push Admin Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge Admin Manifest (push) Has been cancelled
Branch Build CE / Build-Push Web Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge Web Manifest (push) Has been cancelled
Branch Build CE / Build-Push Space Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge Proxy Manifest (push) Has been cancelled
Branch Build CE / Merge Space Manifest (push) Has been cancelled
Branch Build CE / Prepare AIO Assets (push) Has been cancelled
Branch Build CE / Build Setup (push) Has been cancelled
Branch Build CE / Build-Push Live Collaboration Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge Live Collaboration Manifest (push) Has been cancelled
Branch Build CE / Build-Push API Server Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge API Server Manifest (push) Has been cancelled
Branch Build CE / Build-Push Proxy Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Build-Push AIO Docker Image (${{ matrix.arch }}) (push) Has been cancelled
Branch Build CE / Merge AIO Manifest (push) Has been cancelled
Branch Build CE / Upload Build Assets (push) Has been cancelled
Branch Build CE / Build Release (push) Has been cancelled
153 lines
5.1 KiB
Python
153 lines
5.1 KiB
Python
# Generated by Django 4.2.22 on 2025-09-12 08:45
|
|
import uuid
|
|
import django
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
|
|
def set_page_sort_order(apps, schema_editor):
|
|
Page = apps.get_model("db", "Page")
|
|
|
|
batch_size = 3000
|
|
sort_order = 100
|
|
|
|
# Get page IDs ordered by name using the historical model
|
|
# This should include all pages regardless of soft-delete status
|
|
page_ids = list(Page.objects.all().order_by("name").values_list("id", flat=True))
|
|
|
|
updated_pages = []
|
|
for page_id in page_ids:
|
|
# Create page instance with minimal data
|
|
updated_pages.append(Page(id=page_id, sort_order=sort_order))
|
|
sort_order += 100
|
|
|
|
# Bulk update when batch is full
|
|
if len(updated_pages) >= batch_size:
|
|
Page.objects.bulk_update(
|
|
updated_pages, ["sort_order"], batch_size=batch_size
|
|
)
|
|
updated_pages = []
|
|
|
|
# Update remaining pages
|
|
if updated_pages:
|
|
Page.objects.bulk_update(updated_pages, ["sort_order"], batch_size=batch_size)
|
|
|
|
|
|
def reverse_set_page_sort_order(apps, schema_editor):
|
|
Page = apps.get_model("db", "Page")
|
|
Page.objects.update(sort_order=Page.DEFAULT_SORT_ORDER)
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
("db", "0105_alter_project_cycle_view_and_more"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="ProjectWebhook",
|
|
fields=[
|
|
(
|
|
"created_at",
|
|
models.DateTimeField(auto_now_add=True, verbose_name="Created At"),
|
|
),
|
|
(
|
|
"updated_at",
|
|
models.DateTimeField(
|
|
auto_now=True, verbose_name="Last Modified At"
|
|
),
|
|
),
|
|
(
|
|
"deleted_at",
|
|
models.DateTimeField(
|
|
blank=True, null=True, verbose_name="Deleted At"
|
|
),
|
|
),
|
|
(
|
|
"id",
|
|
models.UUIDField(
|
|
db_index=True,
|
|
default=uuid.uuid4,
|
|
editable=False,
|
|
primary_key=True,
|
|
serialize=False,
|
|
unique=True,
|
|
),
|
|
),
|
|
(
|
|
"created_by",
|
|
models.ForeignKey(
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="%(class)s_created_by",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Created By",
|
|
),
|
|
),
|
|
(
|
|
"project",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="project_%(class)s",
|
|
to="db.project",
|
|
),
|
|
),
|
|
(
|
|
"updated_by",
|
|
models.ForeignKey(
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="%(class)s_updated_by",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Last Modified By",
|
|
),
|
|
),
|
|
(
|
|
"webhook",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="project_webhooks",
|
|
to="db.webhook",
|
|
),
|
|
),
|
|
(
|
|
"workspace",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="workspace_%(class)s",
|
|
to="db.workspace",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "Project Webhook",
|
|
"verbose_name_plural": "Project Webhooks",
|
|
"db_table": "project_webhooks",
|
|
"ordering": ("-created_at",),
|
|
},
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name="projectwebhook",
|
|
constraint=models.UniqueConstraint(
|
|
condition=models.Q(("deleted_at__isnull", True)),
|
|
fields=("project", "webhook"),
|
|
name="project_webhook_unique_project_webhook_when_deleted_at_null",
|
|
),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name="projectwebhook",
|
|
unique_together={("project", "webhook", "deleted_at")},
|
|
),
|
|
migrations.AlterField(
|
|
model_name="issuerelation",
|
|
name="relation_type",
|
|
field=models.CharField(
|
|
default="blocked_by", max_length=20, verbose_name="Issue Relation Type"
|
|
),
|
|
),
|
|
migrations.RunPython(
|
|
set_page_sort_order, reverse_code=reverse_set_page_sort_order
|
|
),
|
|
]
|