# Generated by Django 3.2.11 on 2022-01-30 08:32 from django.conf import settings from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import taggit.managers from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.template.defaultfilters import slugify numens = User.objects.get(username="Numens").id def migrate_related(apps, schema_editor): Gallery = apps.get_model('photologue', 'Gallery') Tag = apps.get_model('photologue', 'Tag') TaggedItems = apps.get_model('taggit', 'TaggedItem') ct_ext = ContentType.objects.get(app_label="photologue_custom", model="galleryextended") for gallery in Gallery.objects.all(): tagged_items = TaggedItems.objects.filter( content_type_id=ct_ext.id, object_id=gallery.extended.id ) tags = [tag.tag for tag in tagged_items.all()] gallery.date_start = gallery.extended.date_start gallery.date_end = gallery.extended.date_end gallery.save() for tag in tags: try: new_tag, created = Tag.objects.get_or_create( name=tag.name.capitalize(), slug=slugify(tag.name), ) if new_tag not in gallery.tags.all(): gallery.tags.add(new_tag) new_tag.save() gallery.save() except Exception: continue Photo = apps.get_model('photologue', 'Photo') for photo in Photo.objects.all(): photo.owner = photo.extended.owner photo.license = photo.extended.license photo.save() class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('photologue', '0013_alter_gallery_photos'), ] operations = [ migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=250, unique=True, verbose_name='name')), ('slug', models.SlugField(help_text='A "slug" is a unique URL-friendly title for an object.', max_length=250, unique=True, verbose_name='slug')), ], options={ 'verbose_name': 'tag', 'verbose_name_plural': 'tags', 'ordering': ['name'], }, ), migrations.AddField( model_name='gallery', name='date_end', field=models.DateField(blank=True, null=True, verbose_name='end date'), ), migrations.AddField( model_name='gallery', name='date_start', field=models.DateField(default=django.utils.timezone.now, verbose_name='start date'), ), migrations.AddField( model_name='photo', name='license', field=models.CharField(blank=True, max_length=255, verbose_name='license'), ), migrations.AddField( model_name='photo', name='owner', field=models.ForeignKey(default=numens, on_delete=django.db.models.deletion.CASCADE, to='auth.user', verbose_name='owner'), preserve_default=False, ), migrations.AddField( model_name='gallery', name='tags', field=models.ManyToManyField(blank=True, related_name='galleries', to='photologue.Tag', verbose_name='tags'), ), migrations.RunPython(migrate_related), ]