server/python2/django/renkanmanager/migrations/0002_alter_models_and_populate_revisions.py
changeset 587 fb0041aa74d3
child 588 95536fa18d0d
equal deleted inserted replaced
586:e2e952fcaf7c 587:fb0041aa74d3
       
     1 # -*- coding: utf-8 -*-
       
     2 from __future__ import unicode_literals
       
     3 
       
     4 from django.db import migrations, models
       
     5 from django.conf import settings
       
     6 import uuid
       
     7 
       
     8 def populate_revision(apps, schema_editor):
       
     9     renkans = apps.get_model('renkanmanager', 'Renkan')
       
    10     revisions = apps.get_model('renkanmanager', 'Revision')
       
    11     for renkan in renkans.objects.all():
       
    12         renkan.creator = renkan.owner
       
    13         renkan.renkan_guid = renkan.rk_id
       
    14         if not renkan.current_revision_guid:
       
    15             new_revision = revisions.objects.create()
       
    16             new_revision.parent_renkan_guid = renkan.renkan_guid
       
    17             new_revision.creator = renkan.creator
       
    18             new_revision.last_updated_by = renkan.creator
       
    19             new_revision.title = renkan.title
       
    20             new_revision.content = renkan.content
       
    21             new_revision.creation_date = renkan.creation_date
       
    22             new_revision.modification_date = renkan.modification_date
       
    23             new_revision.save()
       
    24             renkan.current_revision_guid = new_revision.revision_guid
       
    25         renkan.save()
       
    26 
       
    27 class Migration(migrations.Migration):
       
    28 
       
    29     dependencies = [
       
    30         migrations.swappable_dependency(settings.AUTH_USER_MODEL),
       
    31         ('renkanmanager', '0001_initial'),
       
    32     ]
       
    33 
       
    34     operations = [
       
    35         migrations.CreateModel(
       
    36             name='Revision',
       
    37             fields=[
       
    38                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
       
    39                 ('revision_guid', models.CharField(default=uuid.uuid4, unique=True, max_length=256)),
       
    40                 ('parent_renkan_guid', models.CharField(max_length=256)),
       
    41                 ('title', models.CharField(max_length=1024, null=True)),
       
    42                 ('content', models.TextField(null=True, blank=True)),
       
    43                 ('creation_date', models.DateTimeField(auto_now_add=True)),
       
    44                 ('modification_date', models.DateTimeField(auto_now=True)),
       
    45                 ('creator', models.ForeignKey(related_name='revision_creator', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
       
    46                 ('last_updated_by', models.ForeignKey(related_name='revision_last_updated_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
       
    47             ],
       
    48         ),
       
    49         migrations.CreateModel(
       
    50             name='Workspace',
       
    51             fields=[
       
    52                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
       
    53                 ('workspace_guid', models.CharField(default=uuid.uuid4, unique=True, max_length=1024)),
       
    54                 ('title', models.CharField(max_length=1024, null=True)),
       
    55                 ('creation_date', models.DateTimeField(auto_now_add=True)),
       
    56                 ('creator', models.ForeignKey(related_name='workspace_creator', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
       
    57             ],
       
    58         ),
       
    59         migrations.AddField(
       
    60             model_name='renkan',
       
    61             name='creator',
       
    62             field=models.ForeignKey(related_name='renkan_creator', blank=True, to=settings.AUTH_USER_MODEL, null=True),
       
    63         ),
       
    64         migrations.AddField(
       
    65             model_name='renkan',
       
    66             name='current_revision_guid',
       
    67             field=models.CharField(max_length=256, null=True, blank=True),
       
    68         ),
       
    69         migrations.AddField(
       
    70             model_name='renkan',
       
    71             name='renkan_guid',
       
    72             field=models.CharField(default=uuid.uuid4, unique=True, max_length=256),
       
    73         ),
       
    74         migrations.AddField(
       
    75             model_name='renkan',
       
    76             name='source_revision_guid',
       
    77             field=models.CharField(max_length=256, null=True, blank=True),
       
    78         ),
       
    79         migrations.AddField(
       
    80             model_name='renkan',
       
    81             name='workspace_guid',
       
    82             field=models.CharField(max_length=256, null=True, blank=True),
       
    83         ),
       
    84         migrations.AddField(
       
    85             model_name='renkan',
       
    86             name='state',
       
    87             field=models.IntegerField(default=1),
       
    88         ),
       
    89         migrations.RunPython(populate_revision),
       
    90         migrations.RemoveField(
       
    91             model_name='renkan',
       
    92             name='content',
       
    93         ),
       
    94         migrations.RemoveField(
       
    95             model_name='renkan',
       
    96             name='image',
       
    97         ),
       
    98         migrations.RemoveField(
       
    99             model_name='renkan',
       
   100             name='modification_date',
       
   101         ),
       
   102         migrations.RemoveField(
       
   103             model_name='renkan',
       
   104             name='owner',
       
   105         ),
       
   106         migrations.RemoveField(
       
   107             model_name='renkan',
       
   108             name='rk_id',
       
   109         ),
       
   110         migrations.RemoveField(
       
   111             model_name='renkan',
       
   112             name='title',
       
   113         ),
       
   114     ]