# Generated by Django 4.2.7 on 2024-01-09 20:56 from django.db import migrations, models import django.db.models.deletion import files.models from mail.protocol import parse_email_body class NullLogger: def info(self, *args, **kwargs): pass def warning(self, *args, **kwargs): pass def debug(self, *args, **kwargs): pass class Migration(migrations.Migration): dependencies = [ ('mail', '0002_printed_quotable'), ] def generate_email_attachments(apps, schema_editor): Email = apps.get_model('mail', 'Email') for email in Email.objects.all(): raw = email.raw if raw is None or raw == '': continue parsed, body, attachments = parse_email_body(raw.encode('utf-8'), NullLogger()) email.attachments.clear() for attachment in attachments: email.attachments.add(attachment) email.body = body email.save() operations = [ migrations.CreateModel( name='EmailAttachment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(blank=True, null=True)), ('updated_at', models.DateTimeField(blank=True, null=True)), ('deleted_at', models.DateTimeField(blank=True, null=True)), ('file', models.ImageField(upload_to=files.models.hash_upload)), ('mime_type', models.CharField(max_length=255)), ('hash', models.CharField(max_length=64, unique=True)), ('name', models.CharField(max_length=255)), ('email', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='mail.email')), ], options={ 'abstract': False, }, ), migrations.RunPython(generate_email_attachments), ]