# Generated by Django 3.2.16 on 2023-05-08 15:58 from django.conf import settings from django.db import migrations, models import django.db.models.deletion import versioning.versioning def migrate_old_data(apps, schema_editor): EventChecklist = apps.get_model('RIGS', 'EventChecklist') PowerTestRecord = apps.get_model('RIGS', 'PowerTestRecord') for ec in EventChecklist.objects.all(): # New highscore for the most pythonic BS I've ever written. PowerTestRecord.objects.create(event=ec.event, venue=ec.venue, reviewed_by=ec.reviewed_by, **{i.name:getattr(ec, i.attname) for i in PowerTestRecord._meta.get_fields() if not (i.is_relation or i.auto_created or i.name == "notes")}) def revert(apps, schema_editor): apps.get_model('RIGS', 'PowerTestRecord').objects.all().delete() class Migration(migrations.Migration): dependencies = [ ('RIGS', '0045_alter_profile_is_approved'), ] operations = [ migrations.CreateModel( name='PowerTestRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_tests', to='RIGS.event')), ('notes', models.TextField(blank=True, default='')), ('venue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='RIGS.venue')), ('reviewed_at', models.DateTimeField(null=True)), ('rcds', models.BooleanField(blank=True, help_text='RCDs installed where needed and tested?', null=True)), ('supply_test', models.BooleanField(blank=True, help_text='Electrical supplies tested?
(using socket tester)', null=True)), ('earthing', models.BooleanField(blank=True, help_text='Equipment appropriately earthed?
(truss, stage, generators etc)', null=True)), ('pat', models.BooleanField(blank=True, help_text='All equipment in PAT period?', null=True)), ('source_rcd', models.BooleanField(blank=True, help_text='Source RCD protected?
(if cable is more than 3m long) ', null=True)), ('labelling', models.BooleanField(blank=True, help_text='Appropriate and clear labelling on distribution and cabling?', null=True)), ('fd_voltage_l1', models.IntegerField(blank=True, help_text='L1 - N', null=True, verbose_name='First Distro Voltage L1-N')), ('fd_voltage_l2', models.IntegerField(blank=True, help_text='L2 - N', null=True, verbose_name='First Distro Voltage L2-N')), ('fd_voltage_l3', models.IntegerField(blank=True, help_text='L3 - N', null=True, verbose_name='First Distro Voltage L3-N')), ('fd_phase_rotation', models.BooleanField(blank=True, help_text='Phase Rotation
(if required)', null=True, verbose_name='Phase Rotation')), ('fd_earth_fault', models.DecimalField(blank=True, decimal_places=2, help_text='Earth Fault Loop Impedance (ZS)', max_digits=5, null=True, verbose_name='Earth Fault Loop Impedance')), ('fd_pssc', models.IntegerField(blank=True, help_text='Prospective Short Circuit Current', null=True, verbose_name='PSCC')), ('w1_description', models.CharField(blank=True, default='', help_text='Description', max_length=255)), ('w1_polarity', models.BooleanField(blank=True, help_text='Polarity Checked?', null=True)), ('w1_voltage', models.IntegerField(blank=True, help_text='Voltage', null=True)), ('w1_earth_fault', models.DecimalField(blank=True, decimal_places=2, help_text='Earth Fault Loop Impedance (ZS)', max_digits=5, null=True, verbose_name='Earth Fault Loop Impedance')), ('w2_description', models.CharField(blank=True, default='', help_text='Description', max_length=255)), ('w2_polarity', models.BooleanField(blank=True, help_text='Polarity Checked?', null=True)), ('w2_voltage', models.IntegerField(blank=True, help_text='Voltage', null=True)), ('w2_earth_fault', models.DecimalField(blank=True, decimal_places=2, help_text='Earth Fault Loop Impedance (ZS)', max_digits=5, null=True, verbose_name='Earth Fault Loop Impedance')), ('w3_description', models.CharField(blank=True, default='', help_text='Description', max_length=255)), ('w3_polarity', models.BooleanField(blank=True, help_text='Polarity Checked?', null=True)), ('w3_voltage', models.IntegerField(blank=True, help_text='Voltage', null=True)), ('w3_earth_fault', models.DecimalField(blank=True, decimal_places=2, help_text='Earth Fault Loop Impedance (ZS)', max_digits=5, null=True, verbose_name='Earth Fault Loop Impedance')), ('all_rcds_tested', models.BooleanField(blank=True, help_text='All circuit RCDs tested?
(using test button)', null=True)), ('public_sockets_tested', models.BooleanField(blank=True, help_text='Public/Performer accessible circuits tested?
(using socket tester)', null=True)), ('reviewed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Reviewer')), ], options={ 'abstract': False, 'ordering': ['event'], 'permissions': [('review_power', 'Can review Power Test Records')], }, bases=(models.Model, versioning.versioning.RevisionMixin), ), migrations.RunPython(migrate_old_data, reverse_code=revert), ]