Migration for adding epic status to existing projects
parent
75ddf706ee
commit
df174230a4
|
@ -0,0 +1,55 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.9.2 on 2016-08-25 10:19
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import connection, migrations, models
|
||||||
|
|
||||||
|
def update_epic_status(apps, schema_editor):
|
||||||
|
Project = apps.get_model("projects", "Project")
|
||||||
|
project_ids = Project.objects.filter(default_epic_status__isnull=True).values_list("id", flat=True)
|
||||||
|
if not project_ids:
|
||||||
|
return
|
||||||
|
|
||||||
|
values_sql = []
|
||||||
|
for project_id in project_ids:
|
||||||
|
values_sql.append("('New', 'new', 1, false, '#999999', {project_id})".format(project_id=project_id))
|
||||||
|
values_sql.append("('Ready', 'ready', 2, false, '#ff8a84', {project_id})".format(project_id=project_id))
|
||||||
|
values_sql.append("('In progress', 'in-progress', 3, false, '#ff9900', {project_id})".format(project_id=project_id))
|
||||||
|
values_sql.append("('Ready for test', 'ready-for-test', 4, false, '#fcc000', {project_id})".format(project_id=project_id))
|
||||||
|
values_sql.append("('Done', 'done', 5, true, '#669900', {project_id})".format(project_id=project_id))
|
||||||
|
|
||||||
|
sql = """
|
||||||
|
INSERT INTO projects_epicstatus (name, slug, "order", is_closed, color, project_id)
|
||||||
|
VALUES
|
||||||
|
{values};
|
||||||
|
""".format(values=','.join(values_sql))
|
||||||
|
cursor = connection.cursor()
|
||||||
|
cursor.execute(sql)
|
||||||
|
|
||||||
|
|
||||||
|
def update_default_epic_status(apps, schema_editor):
|
||||||
|
sql = """
|
||||||
|
UPDATE projects_project
|
||||||
|
SET default_epic_status_id = projects_epicstatus.id
|
||||||
|
FROM projects_epicstatus
|
||||||
|
WHERE
|
||||||
|
projects_project.default_epic_status_id IS NULL
|
||||||
|
AND
|
||||||
|
projects_epicstatus.order = 1
|
||||||
|
AND
|
||||||
|
projects_epicstatus.project_id = projects_project.id;
|
||||||
|
"""
|
||||||
|
cursor = connection.cursor()
|
||||||
|
cursor.execute(sql)
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('projects', '0051_auto_20160729_0802'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(update_epic_status),
|
||||||
|
migrations.RunPython(update_default_epic_status)
|
||||||
|
]
|
Loading…
Reference in New Issue