combo/combo/apps/lingo/migrations/0019_manual_migrate_invoice...

77 lines
3.2 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
def migrate_activeitems_cells(apps, schema_editor):
InvoicesCell = apps.get_model('lingo', 'InvoicesCell')
Page = apps.get_model('data', 'Page')
ActiveItems = apps.get_model('lingo', 'ActiveItems')
for cell in ActiveItems.objects.all():
page = Page.objects.get(pk=cell.page_id)
InvoicesCell.objects.get_or_create(order=cell.order,
page=page, placeholder=cell.placeholder,
public=cell.public, regie=cell.regie,
restricted_to_unlogged=cell.restricted_to_unlogged,
slug=cell.slug, text=cell.text, title=cell.title,
categories='active'
)
cell.delete()
def migrate_itemshistory_cells(apps, schema_editor):
InvoicesCell = apps.get_model('lingo', 'InvoicesCell')
Page = apps.get_model('data', 'Page')
ItemsHistory = apps.get_model('lingo', 'ItemsHistory')
for cell in ItemsHistory.objects.all():
page = Page.objects.get(pk=cell.page_id)
InvoicesCell.objects.get_or_create(order=cell.order,
page=page, placeholder=cell.placeholder,
public=cell.public, regie=cell.regie,
restricted_to_unlogged=cell.restricted_to_unlogged,
slug=cell.slug, text=cell.text, title=cell.title,
categories='past'
)
cell.delete()
def restore_activeitems_cells(apps, schema_editor):
InvoicesCell = apps.get_model('lingo', 'InvoicesCell')
Page = apps.get_model('data', 'Page')
ActiveItems = apps.get_model('lingo', 'ActiveItems')
for cell in InvoicesCell.objects.filter(categories__contains='active'):
page = Page.objects.get(pk=cell.page_id)
ActiveItems.objects.get_or_create(order=cell.order,
page=page, placeholder=cell.placeholder,
public=cell.public, regie=cell.regie,
restricted_to_unlogged=cell.restricted_to_unlogged,
slug=cell.slug, text=cell.text, title=cell.title
)
cell.delete()
def restore_itemshistory_cells(apps, schema_editor):
InvoicesCell = apps.get_model('lingo', 'InvoicesCell')
Page = apps.get_model('data', 'Page')
ItemsHistory = apps.get_model('lingo', 'ItemsHistory')
for cell in InvoicesCell.objects.filter(categories__contains='past'):
page = Page.objects.get(pk=cell.page_id)
ItemsHistory.objects.get_or_create(order=cell.order,
page=page, placeholder=cell.placeholder,
public=cell.public, regie=cell.regie,
restricted_to_unlogged=cell.restricted_to_unlogged,
slug=cell.slug, text=cell.text, title=cell.title
)
cell.delete()
class Migration(migrations.Migration):
dependencies = [
('lingo', '0018_invoicescell'),
]
operations = [
migrations.RunPython(migrate_activeitems_cells,
restore_activeitems_cells),
migrations.RunPython(migrate_itemshistory_cells,
restore_itemshistory_cells)
]