From 103b12f2e8a32e9f862c22070fd989169e7c1feb Mon Sep 17 00:00:00 2001 From: Arne de Laat Date: Fri, 29 Mar 2024 19:30:21 +0100 Subject: [PATCH] Replace all migrations by new initial migrations Remove PcType model --- .../migrations/0001_initial.py | 79 ++-- .../0002_increase_emailfield_length.py | 18 - .../0003_on_delete_set_student_null.py | 20 - .../0004_analysissession_session_request.py | 42 -- .../analysissessions/migrations/0005_meta.py | 29 -- .../migrations/0006_related_names.py | 40 -- .../migrations/0007_longer_charfields.py | 43 -- .../coincidences/migrations/0001_initial.py | 37 +- .../migrations/0002_arrayfields_for_event.py | 115 ------ .../migrations/0003_m2m_to_foreignkey.py | 49 --- .../0004_m2m_to_foreignkey_cleanup.py | 30 -- publicdb/coincidences/migrations/0005_meta.py | 21 - .../migrations/0006_related_names.py | 20 - publicdb/coincidences/models.py | 10 - .../management/commands/createfakedata.py | 3 +- .../histograms/migrations/0001_initial.py | 361 ++++++++--------- .../migrations/0002_initial_types.py | 41 -- .../0003_initial_generator_state.py | 36 -- .../migrations/0004_alter_meta_options.py | 23 -- .../migrations/0005_order_configs_offsets.py | 19 - .../migrations/0006_stationtimingoffset.py | 25 -- .../0007_unique_stationtimingoffset.py | 15 - .../migrations/0008_rename_rchi2_to_error.py | 12 - .../histograms/migrations/0009_add_singles.py | 23 -- .../0010_arrayfields_for_networkhistogram.py | 81 ---- .../0011_arrayfields_for_dailyhistogram.py | 123 ------ .../0012_arrayfields_for_dailydataset.py | 109 ------ ...13_change_station_offsets_related_names.py | 25 -- ..._nested_arrayfield_outer_dimension_size.py | 25 -- .../0015_datasettype_has_multiple_datasets.py | 37 -- publicdb/histograms/migrations/0016_meta.py | 65 ---- .../migrations/0017_related_names.py | 85 ---- .../migrations/0018_source_to_summary.py | 127 ------ .../migrations/0019_remove_pulseheightfit.py | 24 -- .../0020_summary_events_in_last_hour.py | 18 - publicdb/inforecords/admin.py | 1 - .../inforecords/migrations/0001_initial.py | 366 ++++-------------- .../migrations/0002_remove_detectorhisparc.py | 18 - .../migrations/0003_remove_electronics.py | 43 -- .../migrations/0004_update_email_ip_fields.py | 26 -- .../migrations/0005_fix_ip_fields_bug.py | 35 -- .../0006_increase_country_name_length.py | 18 - .../0007_on_delete_set_contact_null.py | 25 -- .../migrations/0008_contact_title_not_null.py | 19 - publicdb/inforecords/migrations/0009_meta.py | 57 --- .../migrations/0010_related_names.py | 45 --- .../0011_remove_pulseheightthresholds.py | 20 - .../migrations/0012_remove_nagios.py | 23 -- .../migrations/0013_longer_charfields.py | 123 ------ publicdb/inforecords/models.py | 17 +- .../station_layout/migrations/0001_initial.py | 86 ++-- .../migrations/0002_alter_meta_options.py | 15 - .../0003_increase_emailfield_length.py | 18 - .../station_layout/migrations/0004_meta.py | 21 - .../migrations/0005_related_names.py | 25 -- .../migrations/0006_longer_charfields.py | 18 - publicdb/updates/migrations/0001_initial.py | 79 ++-- publicdb/updates/migrations/0002_meta.py | 25 -- .../updates/migrations/0003_related_names.py | 30 -- .../0004_reverse_version_ordering.py | 25 -- tests/factories/inforecords_factories.py | 10 - tests/test_inforecords/test_models.py | 6 - 62 files changed, 389 insertions(+), 2635 deletions(-) delete mode 100644 publicdb/analysissessions/migrations/0002_increase_emailfield_length.py delete mode 100644 publicdb/analysissessions/migrations/0003_on_delete_set_student_null.py delete mode 100644 publicdb/analysissessions/migrations/0004_analysissession_session_request.py delete mode 100644 publicdb/analysissessions/migrations/0005_meta.py delete mode 100644 publicdb/analysissessions/migrations/0006_related_names.py delete mode 100644 publicdb/analysissessions/migrations/0007_longer_charfields.py delete mode 100644 publicdb/coincidences/migrations/0002_arrayfields_for_event.py delete mode 100644 publicdb/coincidences/migrations/0003_m2m_to_foreignkey.py delete mode 100644 publicdb/coincidences/migrations/0004_m2m_to_foreignkey_cleanup.py delete mode 100644 publicdb/coincidences/migrations/0005_meta.py delete mode 100644 publicdb/coincidences/migrations/0006_related_names.py delete mode 100644 publicdb/histograms/migrations/0002_initial_types.py delete mode 100644 publicdb/histograms/migrations/0003_initial_generator_state.py delete mode 100644 publicdb/histograms/migrations/0004_alter_meta_options.py delete mode 100644 publicdb/histograms/migrations/0005_order_configs_offsets.py delete mode 100644 publicdb/histograms/migrations/0006_stationtimingoffset.py delete mode 100644 publicdb/histograms/migrations/0007_unique_stationtimingoffset.py delete mode 100644 publicdb/histograms/migrations/0008_rename_rchi2_to_error.py delete mode 100644 publicdb/histograms/migrations/0009_add_singles.py delete mode 100644 publicdb/histograms/migrations/0010_arrayfields_for_networkhistogram.py delete mode 100644 publicdb/histograms/migrations/0011_arrayfields_for_dailyhistogram.py delete mode 100644 publicdb/histograms/migrations/0012_arrayfields_for_dailydataset.py delete mode 100644 publicdb/histograms/migrations/0013_change_station_offsets_related_names.py delete mode 100644 publicdb/histograms/migrations/0014_limit_nested_arrayfield_outer_dimension_size.py delete mode 100644 publicdb/histograms/migrations/0015_datasettype_has_multiple_datasets.py delete mode 100644 publicdb/histograms/migrations/0016_meta.py delete mode 100644 publicdb/histograms/migrations/0017_related_names.py delete mode 100644 publicdb/histograms/migrations/0018_source_to_summary.py delete mode 100644 publicdb/histograms/migrations/0019_remove_pulseheightfit.py delete mode 100644 publicdb/histograms/migrations/0020_summary_events_in_last_hour.py delete mode 100644 publicdb/inforecords/migrations/0002_remove_detectorhisparc.py delete mode 100644 publicdb/inforecords/migrations/0003_remove_electronics.py delete mode 100644 publicdb/inforecords/migrations/0004_update_email_ip_fields.py delete mode 100644 publicdb/inforecords/migrations/0005_fix_ip_fields_bug.py delete mode 100644 publicdb/inforecords/migrations/0006_increase_country_name_length.py delete mode 100644 publicdb/inforecords/migrations/0007_on_delete_set_contact_null.py delete mode 100644 publicdb/inforecords/migrations/0008_contact_title_not_null.py delete mode 100644 publicdb/inforecords/migrations/0009_meta.py delete mode 100644 publicdb/inforecords/migrations/0010_related_names.py delete mode 100644 publicdb/inforecords/migrations/0011_remove_pulseheightthresholds.py delete mode 100644 publicdb/inforecords/migrations/0012_remove_nagios.py delete mode 100644 publicdb/inforecords/migrations/0013_longer_charfields.py delete mode 100644 publicdb/station_layout/migrations/0002_alter_meta_options.py delete mode 100644 publicdb/station_layout/migrations/0003_increase_emailfield_length.py delete mode 100644 publicdb/station_layout/migrations/0004_meta.py delete mode 100644 publicdb/station_layout/migrations/0005_related_names.py delete mode 100644 publicdb/station_layout/migrations/0006_longer_charfields.py delete mode 100644 publicdb/updates/migrations/0002_meta.py delete mode 100644 publicdb/updates/migrations/0003_related_names.py delete mode 100644 publicdb/updates/migrations/0004_reverse_version_ordering.py diff --git a/publicdb/analysissessions/migrations/0001_initial.py b/publicdb/analysissessions/migrations/0001_initial.py index 9188cfa1e..1d20d6bcb 100644 --- a/publicdb/analysissessions/migrations/0001_initial.py +++ b/publicdb/analysissessions/migrations/0001_initial.py @@ -1,8 +1,13 @@ +# Generated by Django 3.2.15 on 2024-03-29 19:27 + from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ('coincidences', '0001_initial'), ('inforecords', '0001_initial'), @@ -12,8 +17,8 @@ class Migration(migrations.Migration): migrations.CreateModel( name='AnalysisSession', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('title', models.CharField(unique=True, max_length=40)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=255, unique=True)), ('slug', models.SlugField(unique=True)), ('hash', models.CharField(max_length=32)), ('pin', models.CharField(max_length=4)), @@ -21,67 +26,71 @@ class Migration(migrations.Migration): ('ends', models.DateTimeField()), ], options={ + 'verbose_name': 'Analysis session', + 'verbose_name_plural': 'Analysis sessions', }, - bases=(models.Model,), ), migrations.CreateModel( - name='AnalyzedCoincidence', + name='Student', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('is_analyzed', models.BooleanField(default=False)), - ('core_position_x', models.FloatField(null=True, blank=True)), - ('core_position_y', models.FloatField(null=True, blank=True)), - ('log_energy', models.FloatField(null=True, blank=True)), - ('theta', models.FloatField(null=True, blank=True)), - ('phi', models.FloatField(null=True, blank=True)), - ('error_estimate', models.FloatField(null=True, blank=True)), - ('coincidence', models.ForeignKey(on_delete=models.CASCADE, to='coincidences.Coincidence')), - ('session', models.ForeignKey(on_delete=models.CASCADE, to='analysissessions.AnalysisSession')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='students', to='analysissessions.analysissession')), ], options={ - 'ordering': ('coincidence',), + 'verbose_name': 'Student', + 'verbose_name_plural': 'Students', }, - bases=(models.Model,), ), migrations.CreateModel( name='SessionRequest', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('first_name', models.CharField(max_length=50)), - ('sur_name', models.CharField(max_length=50)), - ('email', models.EmailField(max_length=75)), - ('school', models.CharField(max_length=50)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('first_name', models.CharField(max_length=255)), + ('sur_name', models.CharField(max_length=255)), + ('email', models.EmailField(max_length=254)), + ('school', models.CharField(max_length=255)), ('events_to_create', models.IntegerField()), ('events_created', models.IntegerField()), ('start_date', models.DateField()), ('mail_send', models.BooleanField(default=False)), ('session_confirmed', models.BooleanField(default=False)), - ('session_created', models.BooleanField(default=False)), ('session_pending', models.BooleanField(default=False)), + ('session_created', models.BooleanField(default=False)), ('url', models.CharField(max_length=20)), - ('sid', models.CharField(max_length=50, null=True, blank=True)), - ('pin', models.IntegerField(null=True, blank=True)), - ('cluster', models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Cluster')), + ('sid', models.CharField(blank=True, max_length=255, null=True)), + ('pin', models.IntegerField(blank=True, null=True)), + ('cluster', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='session_requests', to='inforecords.cluster')), ], options={ + 'verbose_name': 'Session request', + 'verbose_name_plural': 'Session requests', }, - bases=(models.Model,), ), migrations.CreateModel( - name='Student', + name='AnalyzedCoincidence', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(max_length=40)), - ('session', models.ForeignKey(on_delete=models.CASCADE, to='analysissessions.AnalysisSession')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('is_analyzed', models.BooleanField(default=False)), + ('core_position_x', models.FloatField(blank=True, null=True)), + ('core_position_y', models.FloatField(blank=True, null=True)), + ('log_energy', models.FloatField(blank=True, null=True)), + ('theta', models.FloatField(blank=True, null=True)), + ('phi', models.FloatField(blank=True, null=True)), + ('error_estimate', models.FloatField(blank=True, null=True)), + ('coincidence', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analyzed_coincidences', to='coincidences.coincidence')), + ('session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analyzed_coincidences', to='analysissessions.analysissession')), + ('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='analyzed_coincidences', to='analysissessions.student')), ], options={ + 'verbose_name': 'Analyzed coincidence', + 'verbose_name_plural': 'Analyzed coincidences', + 'ordering': ['coincidence'], }, - bases=(models.Model,), ), migrations.AddField( - model_name='analyzedcoincidence', - name='student', - field=models.ForeignKey(on_delete=models.CASCADE, blank=True, to='analysissessions.Student', null=True), - preserve_default=True, + model_name='analysissession', + name='session_request', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='analysissessions.sessionrequest'), ), ] diff --git a/publicdb/analysissessions/migrations/0002_increase_emailfield_length.py b/publicdb/analysissessions/migrations/0002_increase_emailfield_length.py deleted file mode 100644 index 8126695f0..000000000 --- a/publicdb/analysissessions/migrations/0002_increase_emailfield_length.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 1.10.8 on 2018-01-29 23:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='sessionrequest', - name='email', - field=models.EmailField(max_length=254), - ), - ] diff --git a/publicdb/analysissessions/migrations/0003_on_delete_set_student_null.py b/publicdb/analysissessions/migrations/0003_on_delete_set_student_null.py deleted file mode 100644 index cebd16d1e..000000000 --- a/publicdb/analysissessions/migrations/0003_on_delete_set_student_null.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-20 22:51 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0002_increase_emailfield_length'), - ] - - operations = [ - migrations.AlterField( - model_name='analyzedcoincidence', - name='student', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='analysissessions.Student'), - ), - ] diff --git a/publicdb/analysissessions/migrations/0004_analysissession_session_request.py b/publicdb/analysissessions/migrations/0004_analysissession_session_request.py deleted file mode 100644 index b8a9a53a3..000000000 --- a/publicdb/analysissessions/migrations/0004_analysissession_session_request.py +++ /dev/null @@ -1,42 +0,0 @@ -# Generated by Django 1.10.8 on 2018-07-05 23:13 - -import django.db.models.deletion - -from django.db import migrations, models - - -def forwards(apps, schema_editor): - analysis_session_model = apps.get_model('analysissessions', 'AnalysisSession') - session_request_model = apps.get_model('analysissessions', 'SessionRequest') - - # Match analysis sessions to session requests based on the title and sid. - for analysis_session in analysis_session_model.objects.all(): - try: - session_request = session_request_model.objects.get(sid=analysis_session.title) - except session_request_model.DoesNotExist: - # Could not find matching request, remove the session. - analysis_session.delete() - else: - analysis_session.session_request = session_request - analysis_session.save() - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0003_on_delete_set_student_null'), - ] - - operations = [ - migrations.AddField( - model_name='analysissession', - name='session_request', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to='analysissessions.SessionRequest'), - ), - migrations.RunPython(forwards, migrations.RunPython.noop), - migrations.AlterField( - model_name='analysissession', - name='session_request', - field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='analysissessions.SessionRequest'), - ), - ] diff --git a/publicdb/analysissessions/migrations/0005_meta.py b/publicdb/analysissessions/migrations/0005_meta.py deleted file mode 100644 index 4a5911a46..000000000 --- a/publicdb/analysissessions/migrations/0005_meta.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0004_analysissession_session_request'), - ] - - operations = [ - migrations.AlterModelOptions( - name='analysissession', - options={'verbose_name': 'Analysis session', 'verbose_name_plural': 'Analysis sessions'}, - ), - migrations.AlterModelOptions( - name='analyzedcoincidence', - options={'ordering': ['coincidence'], 'verbose_name': 'Analyzed coincidence', 'verbose_name_plural': 'Analyzed coincidences'}, - ), - migrations.AlterModelOptions( - name='sessionrequest', - options={'verbose_name': 'Session request', 'verbose_name_plural': 'Session requests'}, - ), - migrations.AlterModelOptions( - name='student', - options={'verbose_name': 'Student', 'verbose_name_plural': 'Students'}, - ), - ] diff --git a/publicdb/analysissessions/migrations/0006_related_names.py b/publicdb/analysissessions/migrations/0006_related_names.py deleted file mode 100644 index 32e2ecfe7..000000000 --- a/publicdb/analysissessions/migrations/0006_related_names.py +++ /dev/null @@ -1,40 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0005_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='analyzedcoincidence', - name='coincidence', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analyzed_coincidences', to='coincidences.Coincidence'), - ), - migrations.AlterField( - model_name='analyzedcoincidence', - name='session', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='analyzed_coincidences', to='analysissessions.AnalysisSession'), - ), - migrations.AlterField( - model_name='analyzedcoincidence', - name='student', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='analyzed_coincidences', to='analysissessions.Student'), - ), - migrations.AlterField( - model_name='sessionrequest', - name='cluster', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='session_requests', to='inforecords.Cluster'), - ), - migrations.AlterField( - model_name='student', - name='session', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='students', to='analysissessions.AnalysisSession'), - ), - ] diff --git a/publicdb/analysissessions/migrations/0007_longer_charfields.py b/publicdb/analysissessions/migrations/0007_longer_charfields.py deleted file mode 100644 index 1727501d0..000000000 --- a/publicdb/analysissessions/migrations/0007_longer_charfields.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 3.2.14 on 2022-07-11 15:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('analysissessions', '0006_related_names'), - ] - - operations = [ - migrations.AlterField( - model_name='analysissession', - name='title', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='sessionrequest', - name='first_name', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='sessionrequest', - name='school', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='sessionrequest', - name='sid', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='sessionrequest', - name='sur_name', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='student', - name='name', - field=models.CharField(max_length=255), - ), - ] diff --git a/publicdb/coincidences/migrations/0001_initial.py b/publicdb/coincidences/migrations/0001_initial.py index b11ab632c..e6d9116ca 100644 --- a/publicdb/coincidences/migrations/0001_initial.py +++ b/publicdb/coincidences/migrations/0001_initial.py @@ -1,10 +1,14 @@ -from django.db import migrations, models +# Generated by Django 3.2.15 on 2024-03-29 19:27 -import publicdb.coincidences.models +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ('inforecords', '0001_initial'), ] @@ -13,37 +17,34 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Coincidence', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('time', models.TimeField()), ('nanoseconds', models.IntegerField()), ], options={ - 'ordering': ('date', 'time', 'nanoseconds'), + 'verbose_name': 'Coincidence', + 'verbose_name_plural': 'Coincidences', + 'ordering': ['date', 'time', 'nanoseconds'], }, - bases=(models.Model,), ), migrations.CreateModel( name='Event', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('time', models.TimeField()), ('nanoseconds', models.IntegerField()), - ('pulseheights', publicdb.coincidences.models.SerializedDataField()), - ('integrals', publicdb.coincidences.models.SerializedDataField()), - ('traces', publicdb.coincidences.models.SerializedDataField()), - ('station', models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station')), + ('pulseheights', django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=4)), + ('integrals', django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=4)), + ('traces', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=None), size=4)), + ('coincidence', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='coincidences.coincidence')), + ('station', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='inforecords.station')), ], options={ - 'ordering': ('date', 'time', 'nanoseconds', 'station'), + 'verbose_name': 'Event', + 'verbose_name_plural': 'Events', + 'ordering': ['date', 'time', 'nanoseconds', 'station'], }, - bases=(models.Model,), - ), - migrations.AddField( - model_name='coincidence', - name='events', - field=models.ManyToManyField(to='coincidences.Event'), - preserve_default=True, ), ] diff --git a/publicdb/coincidences/migrations/0002_arrayfields_for_event.py b/publicdb/coincidences/migrations/0002_arrayfields_for_event.py deleted file mode 100644 index 751f53d42..000000000 --- a/publicdb/coincidences/migrations/0002_arrayfields_for_event.py +++ /dev/null @@ -1,115 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-15 07:22 - -import django.contrib.postgres.fields - -from django.db import migrations, models - -from sapphire.utils import pbar - - -def mvns_to_adcsample(values): - return [int(x / 0.57 / 2.5) if x >= 0 else -1 for x in values] - - -def mv_to_adc(values): - return [int(x / 0.57) if x >= 0 else -1 for x in values] - - -def traces_mv_to_adc(traces): - return [[int(x / -0.57) for x in trace] for trace in traces] - - -def serialiseddatafield_to_arrayfield(apps, schema_editor): - """Forwards migrations""" - model = apps.get_model('coincidences', 'Event') - if model.objects.all().count(): - print('') - for event in pbar(model.objects.all().iterator(), length=model.objects.all().count()): - event.pulseheights = mv_to_adc(event.old_pulseheights) - event.integrals = mvns_to_adcsample(event.old_integrals) - event.traces = traces_mv_to_adc(event.old_traces) - if not (len(event.traces[0]) == len(event.traces[-1])): - event.traces = event.traces[:2] - event.save() - - -def arrayfield_to_serialiseddatafield(apps, schema_editor): - """Backwards migrations""" - raise NotImplementedError - - -class Migration(migrations.Migration): - - dependencies = [ - ('coincidences', '0001_initial'), - ] - - operations = [ - # Move old fields out of the way - migrations.RenameField( - model_name='event', - old_name='pulseheights', - new_name='old_pulseheights', - ), - migrations.RenameField( - model_name='event', - old_name='integrals', - new_name='old_integrals', - ), - migrations.RenameField( - model_name='event', - old_name='traces', - new_name='old_traces', - ), - # Add new fields, with null=True - migrations.AddField( - model_name='event', - name='pulseheights', - field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), null=True, size=4), - ), - migrations.AddField( - model_name='event', - name='integrals', - field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), null=True, size=4), - ), - migrations.AddField( - model_name='event', - name='traces', - field=django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=None), null=True, size=4), - ), - # Move data into new fields - migrations.RunPython( - serialiseddatafield_to_arrayfield, - arrayfield_to_serialiseddatafield, - hints={'model_name': 'Event'} - ), - # Remove old fields - migrations.RemoveField( - model_name='event', - name='old_pulseheights', - ), - migrations.RemoveField( - model_name='event', - name='old_integrals', - ), - migrations.RemoveField( - model_name='event', - name='old_traces', - ), - # Make new fields non-nullable - migrations.AlterField( - model_name='event', - name='pulseheights', - field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=4), - ), - migrations.AlterField( - model_name='event', - name='integrals', - field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=4), - ), - migrations.AlterField( - model_name='event', - name='traces', - field=django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), size=None), size=4), - ), - ] diff --git a/publicdb/coincidences/migrations/0003_m2m_to_foreignkey.py b/publicdb/coincidences/migrations/0003_m2m_to_foreignkey.py deleted file mode 100644 index b6c69f9d4..000000000 --- a/publicdb/coincidences/migrations/0003_m2m_to_foreignkey.py +++ /dev/null @@ -1,49 +0,0 @@ -# Generated by Django 1.10.8 on 2018-03-30 14:30 - -import django.db.models.deletion - -from django.db import migrations, models -from django.db.models import Count - -from sapphire.utils import pbar - - -def m2m_to_foreignkey(apps, schema_editor): - """Forwards migrations""" - m2m_model = apps.get_model('coincidences', 'Coincidence') - coincidences = m2m_model.objects.all().annotate(n_events=Count('events')).exclude(n_events=0) - if coincidences.count(): - print('') - for coincidence in pbar(coincidences.iterator(), length=coincidences.count()): - for event in coincidence.events.all(): - event.coinc = coincidence - event.save() - - -def foreignkey_to_m2m(apps, schema_editor): - """Backwards migrations""" - fk_model = apps.get_model('coincidences', 'Event') - if fk_model.objects.all().count(): - print('') - for event in pbar(fk_model.objects.all().iterator(), length=fk_model.objects.all().count()): - event.coincidence.events.add(event) - - -class Migration(migrations.Migration): - - dependencies = [ - ('coincidences', '0002_arrayfields_for_event'), - ] - - operations = [ - migrations.AddField( - model_name='event', - name='coinc', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='fk_events', to='coincidences.Coincidence'), - ), - # Convert m2m from coincidences relations to foreign keys on events - migrations.RunPython( - m2m_to_foreignkey, - foreignkey_to_m2m, - ), - ] diff --git a/publicdb/coincidences/migrations/0004_m2m_to_foreignkey_cleanup.py b/publicdb/coincidences/migrations/0004_m2m_to_foreignkey_cleanup.py deleted file mode 100644 index 0141a5b74..000000000 --- a/publicdb/coincidences/migrations/0004_m2m_to_foreignkey_cleanup.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 1.10.8 on 2018-03-30 14:30 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('coincidences', '0003_m2m_to_foreignkey'), - ] - - operations = [ - migrations.RemoveField( - model_name='coincidence', - name='events', - ), - migrations.RenameField( - model_name='event', - old_name='coinc', - new_name='coincidence', - ), - migrations.AlterField( - model_name='event', - name='coincidence', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='coincidences.Coincidence'), - preserve_default=False, - ), - ] diff --git a/publicdb/coincidences/migrations/0005_meta.py b/publicdb/coincidences/migrations/0005_meta.py deleted file mode 100644 index c69602325..000000000 --- a/publicdb/coincidences/migrations/0005_meta.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('coincidences', '0004_m2m_to_foreignkey_cleanup'), - ] - - operations = [ - migrations.AlterModelOptions( - name='coincidence', - options={'ordering': ['date', 'time', 'nanoseconds'], 'verbose_name': 'Coincidence', 'verbose_name_plural': 'Coincidences'}, - ), - migrations.AlterModelOptions( - name='event', - options={'ordering': ['date', 'time', 'nanoseconds', 'station'], 'verbose_name': 'Event', 'verbose_name_plural': 'Events'}, - ), - ] diff --git a/publicdb/coincidences/migrations/0006_related_names.py b/publicdb/coincidences/migrations/0006_related_names.py deleted file mode 100644 index 5828df235..000000000 --- a/publicdb/coincidences/migrations/0006_related_names.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('coincidences', '0005_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='event', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='inforecords.Station'), - ), - ] diff --git a/publicdb/coincidences/models.py b/publicdb/coincidences/models.py index 62d67a577..183d454fb 100644 --- a/publicdb/coincidences/models.py +++ b/publicdb/coincidences/models.py @@ -4,16 +4,6 @@ from ..inforecords.models import Station -class SerializedDataField(models.Field): - system_check_removed_details = { - 'hint': 'Use ArrayField instead.', - } - - def db_type(self, connection): - # Required for old migrations - return 'BYTEA' - - class Coincidence(models.Model): date = models.DateField() time = models.TimeField() diff --git a/publicdb/default/management/commands/createfakedata.py b/publicdb/default/management/commands/createfakedata.py index 3e7af6744..509a7f830 100644 --- a/publicdb/default/management/commands/createfakedata.py +++ b/publicdb/default/management/commands/createfakedata.py @@ -39,10 +39,9 @@ def handle(*args, **options): for cluster in clusters + subclusters for station_number in range(1, 6) ] - pc_type = inforecords_factories.PcTypeFactory(slug='client') for station in stations: - inforecords_factories.PcFactory(station=station, type=pc_type, name=f'pc{station.number}') + inforecords_factories.PcFactory(station=station, name=f'pc{station.number}') for station in stations: station_layout_factories.StationLayoutFactory(station=station) diff --git a/publicdb/histograms/migrations/0001_initial.py b/publicdb/histograms/migrations/0001_initial.py index 7482ab275..bca61f461 100644 --- a/publicdb/histograms/migrations/0001_initial.py +++ b/publicdb/histograms/migrations/0001_initial.py @@ -1,19 +1,124 @@ -from django.db import migrations, models +# Generated by Django 3.2.15 on 2024-03-29 19:27 -import publicdb.histograms.models +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ('inforecords', '0001_initial'), ] operations = [ + migrations.CreateModel( + name='DatasetType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=40, unique=True)), + ('slug', models.CharField(max_length=20, unique=True)), + ('has_multiple_datasets', models.BooleanField(default=False)), + ('x_axis_title', models.CharField(max_length=40)), + ('y_axis_title', models.CharField(max_length=40)), + ('description', models.TextField(blank=True)), + ], + options={ + 'verbose_name': 'Dataset type', + 'verbose_name_plural': 'Dataset types', + }, + ), + migrations.CreateModel( + name='GeneratorState', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('check_last_run', models.DateTimeField()), + ('check_is_running', models.BooleanField(default=False)), + ('update_last_run', models.DateTimeField()), + ('update_is_running', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='HistogramType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=40, unique=True)), + ('slug', models.CharField(max_length=20, unique=True)), + ('has_multiple_datasets', models.BooleanField(default=False)), + ('bin_axis_title', models.CharField(max_length=40)), + ('value_axis_title', models.CharField(max_length=40)), + ('description', models.TextField(blank=True)), + ], + options={ + 'verbose_name': 'Histogram type', + 'verbose_name_plural': 'Histogram types', + }, + ), + migrations.CreateModel( + name='NetworkSummary', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField(unique=True)), + ('num_coincidences', models.IntegerField(blank=True, null=True)), + ('needs_update', models.BooleanField(default=False)), + ('needs_update_coincidences', models.BooleanField(default=False)), + ], + options={ + 'verbose_name': 'Network summary', + 'verbose_name_plural': 'Network summaries', + 'ordering': ['date'], + 'get_latest_by': 'date', + }, + ), + migrations.CreateModel( + name='Summary', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ('num_events', models.IntegerField(blank=True, null=True)), + ('num_config', models.IntegerField(blank=True, null=True)), + ('num_errors', models.IntegerField(blank=True, null=True)), + ('num_weather', models.IntegerField(blank=True, null=True)), + ('num_singles', models.IntegerField(blank=True, null=True)), + ('needs_update', models.BooleanField(default=False)), + ('needs_update_events', models.BooleanField(default=False)), + ('needs_update_config', models.BooleanField(default=False)), + ('needs_update_errors', models.BooleanField(default=False)), + ('needs_update_weather', models.BooleanField(default=False)), + ('needs_update_singles', models.BooleanField(default=False)), + ('events_in_last_hour', models.BooleanField(default=False)), + ('station', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='summaries', to='inforecords.station')), + ], + options={ + 'verbose_name': 'Summary', + 'verbose_name_plural': 'Summaries', + 'ordering': ['date', 'station'], + 'get_latest_by': 'date', + 'unique_together': {('station', 'date')}, + }, + ), + migrations.CreateModel( + name='DetectorTimingOffset', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('offset_1', models.FloatField(blank=True, null=True)), + ('offset_2', models.FloatField(blank=True, null=True)), + ('offset_3', models.FloatField(blank=True, null=True)), + ('offset_4', models.FloatField(blank=True, null=True)), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detector_timing_offsets', to='histograms.summary')), + ], + options={ + 'verbose_name': 'Detector timing offset', + 'verbose_name_plural': 'Detector timing offsets', + 'ordering': ['summary'], + }, + ), migrations.CreateModel( name='Configuration', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('timestamp', models.DateTimeField()), ('gps_latitude', models.FloatField()), ('gps_longitude', models.FloatField()), @@ -100,233 +205,105 @@ class Migration(migrations.Migration): ('slv_ch1_comp_offset', models.FloatField()), ('slv_ch2_comp_gain', models.FloatField()), ('slv_ch2_comp_offset', models.FloatField()), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='configurations', to='histograms.summary')), ], options={ + 'verbose_name': 'Configuration', + 'verbose_name_plural': 'Configurations', + 'ordering': ['summary'], + 'get_latest_by': 'timestamp', }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DailyDataset', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('x', publicdb.coincidences.models.SerializedDataField()), - ('y', publicdb.coincidences.models.SerializedDataField()), - ], - options={ - 'ordering': ('source', 'type'), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DailyHistogram', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('bins', publicdb.coincidences.models.SerializedDataField()), - ('values', publicdb.coincidences.models.SerializedDataField()), - ], - options={ - 'ordering': ('source', 'type'), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DatasetType', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=40)), - ('slug', models.CharField(unique=True, max_length=20)), - ('x_axis_title', models.CharField(max_length=40)), - ('y_axis_title', models.CharField(max_length=40)), - ('description', models.TextField(blank=True)), - ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( - name='DetectorTimingOffset', + name='StationTimingOffset', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('offset_1', models.FloatField(null=True, blank=True)), - ('offset_2', models.FloatField(null=True, blank=True)), - ('offset_3', models.FloatField(null=True, blank=True)), - ('offset_4', models.FloatField(null=True, blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('offset', models.FloatField(blank=True, null=True)), + ('error', models.FloatField(blank=True, null=True)), + ('ref_summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ref_station_offsets', to='histograms.summary')), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='station_offsets', to='histograms.summary')), ], options={ + 'verbose_name': 'Station timing offset', + 'verbose_name_plural': 'Station timing offsets', + 'ordering': ['ref_summary'], + 'unique_together': {('ref_summary', 'summary')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='GeneratorState', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('check_last_run', models.DateTimeField()), - ('check_is_running', models.BooleanField(default=False)), - ('update_last_run', models.DateTimeField()), - ('update_is_running', models.BooleanField(default=False)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='HistogramType', + name='NetworkHistogram', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=40)), - ('slug', models.CharField(unique=True, max_length=20)), - ('has_multiple_datasets', models.BooleanField(default=False)), - ('bin_axis_title', models.CharField(max_length=40)), - ('value_axis_title', models.CharField(max_length=40)), - ('description', models.TextField(blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bins', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('values', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('network_summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='network_histograms', to='histograms.networksummary')), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='network_histograms', to='histograms.histogramtype')), ], options={ + 'verbose_name': 'Network histogram', + 'verbose_name_plural': 'Network histograms', + 'ordering': ['network_summary', 'type'], + 'unique_together': {('network_summary', 'type')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='NetworkHistogram', + name='MultiDailyHistogram', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('bins', publicdb.coincidences.models.SerializedDataField()), - ('values', publicdb.coincidences.models.SerializedDataField()), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bins', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('values', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), size=4)), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_histograms', to='histograms.summary')), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_histograms', to='histograms.histogramtype')), ], options={ - 'ordering': ('source', 'type'), + 'ordering': ['summary', 'type'], + 'abstract': False, + 'unique_together': {('summary', 'type')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='NetworkSummary', + name='MultiDailyDataset', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('date', models.DateField(unique=True)), - ('num_coincidences', models.IntegerField(null=True, blank=True)), - ('needs_update', models.BooleanField(default=False)), - ('needs_update_coincidences', models.BooleanField(default=False)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('x', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('y', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), size=None), size=4)), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_datasets', to='histograms.summary')), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_datasets', to='histograms.datasettype')), ], options={ - 'ordering': ('date',), - 'verbose_name_plural': 'network summaries', + 'ordering': ['summary', 'type'], + 'abstract': False, + 'unique_together': {('summary', 'type')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='PulseheightFit', + name='DailyHistogram', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('plate', models.IntegerField(choices=[(1, b'Scintillator 1'), (2, b'Scintillator 2'), (3, b'Scintillator 3'), (4, b'Scintillator 4')])), - ('initial_mpv', models.FloatField()), - ('initial_width', models.FloatField()), - ('fitted_mpv', models.FloatField()), - ('fitted_mpv_error', models.FloatField()), - ('fitted_width', models.FloatField()), - ('fitted_width_error', models.FloatField()), - ('degrees_of_freedom', models.IntegerField(default=0)), - ('chi_square_reduced', models.FloatField()), - ('error_type', models.CharField(default=b'', max_length=64)), - ('error_message', models.TextField(default=b'')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bins', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('values', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='histograms', to='histograms.summary')), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='histograms', to='histograms.histogramtype')), ], options={ - 'ordering': ('source', 'plate'), - 'verbose_name_plural': 'Pulseheight fit', + 'ordering': ['summary', 'type'], + 'abstract': False, + 'unique_together': {('summary', 'type')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='Summary', + name='DailyDataset', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('date', models.DateField()), - ('num_events', models.IntegerField(null=True, blank=True)), - ('num_config', models.IntegerField(null=True, blank=True)), - ('num_errors', models.IntegerField(null=True, blank=True)), - ('num_weather', models.IntegerField(null=True, blank=True)), - ('needs_update', models.BooleanField(default=False)), - ('needs_update_events', models.BooleanField(default=False)), - ('needs_update_config', models.BooleanField(default=False)), - ('needs_update_errors', models.BooleanField(default=False)), - ('needs_update_weather', models.BooleanField(default=False)), - ('station', models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station')), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('x', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), + ('y', django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), size=None)), + ('summary', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='datasets', to='histograms.summary')), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='datasets', to='histograms.datasettype')), ], options={ - 'ordering': ('date', 'station'), - 'verbose_name_plural': 'summaries', + 'ordering': ['summary', 'type'], + 'abstract': False, + 'unique_together': {('summary', 'type')}, }, - bases=(models.Model,), - ), - migrations.AlterUniqueTogether( - name='summary', - unique_together={('station', 'date')}, - ), - migrations.AddField( - model_name='pulseheightfit', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.Summary'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='pulseheightfit', - unique_together={('source', 'plate')}, - ), - migrations.AddField( - model_name='networkhistogram', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.NetworkSummary'), - preserve_default=True, - ), - migrations.AddField( - model_name='networkhistogram', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.HistogramType'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='networkhistogram', - unique_together={('source', 'type')}, - ), - migrations.AddField( - model_name='detectortimingoffset', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.Summary'), - preserve_default=True, - ), - migrations.AddField( - model_name='dailyhistogram', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.Summary'), - preserve_default=True, - ), - migrations.AddField( - model_name='dailyhistogram', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.HistogramType'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='dailyhistogram', - unique_together={('source', 'type')}, - ), - migrations.AddField( - model_name='dailydataset', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.Summary'), - preserve_default=True, - ), - migrations.AddField( - model_name='dailydataset', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.DatasetType'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='dailydataset', - unique_together={('source', 'type')}, - ), - migrations.AddField( - model_name='configuration', - name='source', - field=models.ForeignKey(on_delete=models.CASCADE, to='histograms.Summary'), - preserve_default=True, ), ] diff --git a/publicdb/histograms/migrations/0002_initial_types.py b/publicdb/histograms/migrations/0002_initial_types.py deleted file mode 100644 index 399a65037..000000000 --- a/publicdb/histograms/migrations/0002_initial_types.py +++ /dev/null @@ -1,41 +0,0 @@ -import os - -from django.core import serializers -from django.db import migrations - - -def load_fixture(apps, schema_editor): - """Load initial data for histogram and dataset types from the fixture""" - original_apps = serializers.python.apps - serializers.python.apps = apps - - fixture_file = os.path.join(os.path.dirname(__file__), '../fixtures/initial_types.json') - with open(fixture_file) as fixture: - objects = serializers.deserialize('json', fixture, ignorenonexistent=True) - for obj in objects: - obj.save() - - serializers.python.apps = original_apps - - -def unload_fixture(apps, schema_editor): - """Delete all entries from the histogram/dataset types - - This will also delete all related histograms/datasets! - - """ - histogram_type_model = apps.get_model('histograms', 'HistogramType') - histogram_type_model.objects.all().delete() - dataset_type_model = apps.get_model('histograms', 'DatasetType') - dataset_type_model.objects.all().delete() - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0001_initial'), - ] - - operations = [ - migrations.RunPython(load_fixture) # reverse_code=unload_fixture - ] diff --git a/publicdb/histograms/migrations/0003_initial_generator_state.py b/publicdb/histograms/migrations/0003_initial_generator_state.py deleted file mode 100644 index a6660282e..000000000 --- a/publicdb/histograms/migrations/0003_initial_generator_state.py +++ /dev/null @@ -1,36 +0,0 @@ -import os - -from django.core import serializers -from django.db import migrations - - -def load_fixture(apps, schema_editor): - """Load initial data for generator state from the fixture""" - original_apps = serializers.python.apps - serializers.python.apps = apps - - fixture_file = os.path.join(os.path.dirname(__file__), '../fixtures/initial_generator_state.json') - with open(fixture_file) as fixture: - objects = serializers.deserialize('json', fixture, ignorenonexistent=True) - for obj in objects: - obj.save() - - serializers.python.apps = original_apps - - -def unload_fixture(apps, schema_editor): - """Delete all entries from the geenrator state""" - - generator_state_model = apps.get_model('histograms', 'GeneratorState') - generator_state_model.objects.all().delete() - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0002_initial_types'), - ] - - operations = [ - migrations.RunPython(load_fixture) # reverse_code=unload_fixture - ] diff --git a/publicdb/histograms/migrations/0004_alter_meta_options.py b/publicdb/histograms/migrations/0004_alter_meta_options.py deleted file mode 100644 index 663d245ef..000000000 --- a/publicdb/histograms/migrations/0004_alter_meta_options.py +++ /dev/null @@ -1,23 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0003_initial_generator_state'), - ] - - operations = [ - migrations.AlterModelOptions( - name='configuration', - options={'get_latest_by': 'timestamp', 'verbose_name_plural': 'configurations'}, - ), - migrations.AlterModelOptions( - name='networksummary', - options={'ordering': ('date',), 'get_latest_by': 'date', 'verbose_name_plural': 'network summaries'}, - ), - migrations.AlterModelOptions( - name='summary', - options={'ordering': ('date', 'station'), 'get_latest_by': 'date', 'verbose_name_plural': 'summaries'}, - ), - ] diff --git a/publicdb/histograms/migrations/0005_order_configs_offsets.py b/publicdb/histograms/migrations/0005_order_configs_offsets.py deleted file mode 100644 index f25bd74ba..000000000 --- a/publicdb/histograms/migrations/0005_order_configs_offsets.py +++ /dev/null @@ -1,19 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0004_alter_meta_options'), - ] - - operations = [ - migrations.AlterModelOptions( - name='configuration', - options={'ordering': ('source',), 'get_latest_by': 'timestamp', 'verbose_name_plural': 'configurations'}, - ), - migrations.AlterModelOptions( - name='detectortimingoffset', - options={'ordering': ('source',)}, - ), - ] diff --git a/publicdb/histograms/migrations/0006_stationtimingoffset.py b/publicdb/histograms/migrations/0006_stationtimingoffset.py deleted file mode 100644 index 353df97fd..000000000 --- a/publicdb/histograms/migrations/0006_stationtimingoffset.py +++ /dev/null @@ -1,25 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0005_order_configs_offsets'), - ] - - operations = [ - migrations.CreateModel( - name='StationTimingOffset', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('offset', models.FloatField(null=True, blank=True)), - ('rchi2', models.FloatField(null=True, blank=True)), - ('ref_source', models.ForeignKey(on_delete=models.CASCADE, related_name='ref_source', to='histograms.Summary')), - ('source', models.ForeignKey(on_delete=models.CASCADE, related_name='source', to='histograms.Summary')), - ], - options={ - 'ordering': ('ref_source',), - }, - bases=(models.Model,), - ), - ] diff --git a/publicdb/histograms/migrations/0007_unique_stationtimingoffset.py b/publicdb/histograms/migrations/0007_unique_stationtimingoffset.py deleted file mode 100644 index b7ba9ddb0..000000000 --- a/publicdb/histograms/migrations/0007_unique_stationtimingoffset.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0006_stationtimingoffset'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='stationtimingoffset', - unique_together={('ref_source', 'source')}, - ), - ] diff --git a/publicdb/histograms/migrations/0008_rename_rchi2_to_error.py b/publicdb/histograms/migrations/0008_rename_rchi2_to_error.py deleted file mode 100644 index 6ebf71a02..000000000 --- a/publicdb/histograms/migrations/0008_rename_rchi2_to_error.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0007_unique_stationtimingoffset'), - ] - - operations = [ - migrations.RenameField('StationTimingOffset', 'rchi2', 'error'), - ] diff --git a/publicdb/histograms/migrations/0009_add_singles.py b/publicdb/histograms/migrations/0009_add_singles.py deleted file mode 100644 index 426a7d28c..000000000 --- a/publicdb/histograms/migrations/0009_add_singles.py +++ /dev/null @@ -1,23 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0008_rename_rchi2_to_error'), - ] - - operations = [ - migrations.AddField( - model_name='summary', - name='needs_update_singles', - field=models.BooleanField(default=False), - preserve_default=True, - ), - migrations.AddField( - model_name='summary', - name='num_singles', - field=models.IntegerField(null=True, blank=True), - preserve_default=True, - ), - ] diff --git a/publicdb/histograms/migrations/0010_arrayfields_for_networkhistogram.py b/publicdb/histograms/migrations/0010_arrayfields_for_networkhistogram.py deleted file mode 100644 index dea658109..000000000 --- a/publicdb/histograms/migrations/0010_arrayfields_for_networkhistogram.py +++ /dev/null @@ -1,81 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-15 07:22 - -import django.contrib.postgres.fields - -from django.db import migrations, models - -from sapphire.utils import pbar - - -def serialiseddatafield_to_arrayfield(apps, schema_editor): - """Forwards migrations""" - model = apps.get_model('histograms', 'NetworkHistogram') - if model.objects.all().count(): - print('') - for histogram in pbar(model.objects.all().iterator(), length=model.objects.all().count()): - histogram.bins = histogram.old_bins - histogram.values = histogram.old_values - histogram.save() - - -def arrayfield_to_serialiseddatafield(apps, schema_editor): - """Backwards migrations""" - raise NotImplementedError - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0009_add_singles'), - ] - - operations = [ - # Move old fields out of the way - migrations.RenameField( - model_name='networkhistogram', - old_name='bins', - new_name='old_bins', - ), - migrations.RenameField( - model_name='networkhistogram', - old_name='values', - new_name='old_values', - ), - # Add new fields, with null=True - migrations.AddField( - model_name='networkhistogram', - name='bins', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), null=True, size=None), - ), - migrations.AddField( - model_name='networkhistogram', - name='values', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), null=True, size=None), - ), - # Move data into new fields - migrations.RunPython( - serialiseddatafield_to_arrayfield, - arrayfield_to_serialiseddatafield, - hints={'model_name': 'NetworkHistogram'} - ), - # Remove old fields - migrations.RemoveField( - model_name='networkhistogram', - name='old_bins', - ), - migrations.RemoveField( - model_name='networkhistogram', - name='old_values', - ), - # Make new fields non-nullable - migrations.AlterField( - model_name='networkhistogram', - name='bins', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), - ), - migrations.AlterField( - model_name='networkhistogram', - name='values', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), - ), - ] diff --git a/publicdb/histograms/migrations/0011_arrayfields_for_dailyhistogram.py b/publicdb/histograms/migrations/0011_arrayfields_for_dailyhistogram.py deleted file mode 100644 index fe052c923..000000000 --- a/publicdb/histograms/migrations/0011_arrayfields_for_dailyhistogram.py +++ /dev/null @@ -1,123 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-16 09:53 - -import django.contrib.postgres.fields -import django.db.models.deletion - -from django.db import migrations, models - -from sapphire.utils import pbar - - -def mvns_to_adcsample(values): - return [int(value / 0.57 / 2.5) for value in values] - - -def mv_to_adc(values): - return [int(value / 0.57) for value in values] - - -def serialiseddatafield_to_arrayfield(apps, schema_editor): - """Forwards migrations""" - model = apps.get_model('histograms', 'DailyHistogram') - multi_model = apps.get_model('histograms', 'MultiDailyHistogram') - if model.objects.all().count(): - print('') - for histogram in pbar(model.objects.all().iterator(), length=model.objects.all().count()): - if not histogram.type.has_multiple_datasets: - histogram.bins = histogram.old_bins - histogram.values = histogram.old_values - histogram.save() - else: - if histogram.type.slug == 'pulseheight': - new_bins = mv_to_adc(histogram.old_bins) - elif histogram.type.slug == 'pulseintegral': - new_bins = mvns_to_adcsample(histogram.old_bins) - else: - new_bins = histogram.old_bins - multi_model.objects.create( - source=histogram.source, - type=histogram.type, - bins=new_bins, - values=histogram.old_values) - histogram.delete() - - -def arrayfield_to_serialiseddatafield(apps, schema_editor): - """Backwards migrations""" - raise NotImplementedError - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0010_arrayfields_for_networkhistogram'), - ] - - operations = [ - # Add new model for multi dimensional histograms - migrations.CreateModel( - name='MultiDailyHistogram', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('bins', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), - ('values', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), size=None)), - ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='histograms.Summary')), - ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='histograms.HistogramType')), - ], - options={ - 'ordering': ('source', 'type'), - 'abstract': False, - }, - ), - migrations.AlterUniqueTogether( - name='multidailyhistogram', - unique_together={('source', 'type')}, - ), - # Move old fields out of the way - migrations.RenameField( - model_name='dailyhistogram', - old_name='bins', - new_name='old_bins', - ), - migrations.RenameField( - model_name='dailyhistogram', - old_name='values', - new_name='old_values', - ), - # Add new fields, with null=True - migrations.AddField( - model_name='dailyhistogram', - name='bins', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), null=True, size=None), - ), - migrations.AddField( - model_name='dailyhistogram', - name='values', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), null=True, size=None), - ), - # Move data into new fields and to other models - migrations.RunPython( - serialiseddatafield_to_arrayfield, - arrayfield_to_serialiseddatafield - ), - # Remove old fields - migrations.RemoveField( - model_name='dailyhistogram', - name='old_bins', - ), - migrations.RemoveField( - model_name='dailyhistogram', - name='old_values', - ), - # Make new fields non-nullable - migrations.AlterField( - model_name='dailyhistogram', - name='bins', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), - ), - migrations.AlterField( - model_name='dailyhistogram', - name='values', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), - ), - ] diff --git a/publicdb/histograms/migrations/0012_arrayfields_for_dailydataset.py b/publicdb/histograms/migrations/0012_arrayfields_for_dailydataset.py deleted file mode 100644 index 5eac99f5a..000000000 --- a/publicdb/histograms/migrations/0012_arrayfields_for_dailydataset.py +++ /dev/null @@ -1,109 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-16 09:53 - -import django.contrib.postgres.fields -import django.db.models.deletion - -from django.db import migrations, models - -from sapphire.utils import pbar - - -def serialiseddatafield_to_arrayfield(apps, schema_editor): - """Forwards migrations""" - model = apps.get_model('histograms', 'DailyDataset') - multi_model = apps.get_model('histograms', 'MultiDailyDataset') - if model.objects.all().count(): - print('') - for dataset in pbar(model.objects.all().iterator(), length=model.objects.all().count()): - if dataset.type.slug in ['barometer', 'temperature']: - dataset.x = dataset.old_x - dataset.y = dataset.old_y - dataset.save() - else: - multi_model.objects.create( - source=dataset.source, - type=dataset.type, - x=dataset.old_x, - y=dataset.old_y) - dataset.delete() - - -def arrayfield_to_serialiseddatafield(apps, schema_editor): - """Backwards migrations""" - raise NotImplementedError - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0011_arrayfields_for_dailyhistogram'), - ] - - operations = [ - # Add new model for multi dimensional datasets - migrations.CreateModel( - name='MultiDailyDataset', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('x', django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None)), - ('y', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), size=None), size=None)), - ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='histograms.Summary')), - ('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='histograms.DatasetType')), - ], - options={ - 'ordering': ('source', 'type'), - 'abstract': False, - }, - ), - migrations.AlterUniqueTogether( - name='multidailydataset', - unique_together={('source', 'type')}, - ), - # Move old fields out of the way - migrations.RenameField( - model_name='dailydataset', - old_name='x', - new_name='old_x', - ), - migrations.RenameField( - model_name='dailydataset', - old_name='y', - new_name='old_y', - ), - # Add new fields, with null=True - migrations.AddField( - model_name='dailydataset', - name='x', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), null=True, size=None), - ), - migrations.AddField( - model_name='dailydataset', - name='y', - field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), null=True, size=None), - ), - # Move data into new fields and to other models - migrations.RunPython( - serialiseddatafield_to_arrayfield, - arrayfield_to_serialiseddatafield - ), - # Remove old fields - migrations.RemoveField( - model_name='dailydataset', - name='old_x', - ), - migrations.RemoveField( - model_name='dailydataset', - name='old_y', - ), - # Make new fields non-nullable - migrations.AlterField( - model_name='dailydataset', - name='x', - field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), - ), - migrations.AlterField( - model_name='dailydataset', - name='y', - field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), size=None), - ), - ] diff --git a/publicdb/histograms/migrations/0013_change_station_offsets_related_names.py b/publicdb/histograms/migrations/0013_change_station_offsets_related_names.py deleted file mode 100644 index bf1fc6d94..000000000 --- a/publicdb/histograms/migrations/0013_change_station_offsets_related_names.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-20 23:10 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0012_arrayfields_for_dailydataset'), - ] - - operations = [ - migrations.AlterField( - model_name='stationtimingoffset', - name='ref_source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ref_station_offsets', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='stationtimingoffset', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='station_offsets', to='histograms.Summary'), - ), - ] diff --git a/publicdb/histograms/migrations/0014_limit_nested_arrayfield_outer_dimension_size.py b/publicdb/histograms/migrations/0014_limit_nested_arrayfield_outer_dimension_size.py deleted file mode 100644 index 59dfec85c..000000000 --- a/publicdb/histograms/migrations/0014_limit_nested_arrayfield_outer_dimension_size.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.10.8 on 2018-03-09 13:47 - -import django.contrib.postgres.fields - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0013_change_station_offsets_related_names'), - ] - - operations = [ - migrations.AlterField( - model_name='multidailydataset', - name='y', - field=django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(), size=None), size=4), - ), - migrations.AlterField( - model_name='multidailyhistogram', - name='values', - field=django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.ArrayField(base_field=models.PositiveIntegerField(), size=None), size=4), - ), - ] diff --git a/publicdb/histograms/migrations/0015_datasettype_has_multiple_datasets.py b/publicdb/histograms/migrations/0015_datasettype_has_multiple_datasets.py deleted file mode 100644 index 3284a7e5c..000000000 --- a/publicdb/histograms/migrations/0015_datasettype_has_multiple_datasets.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 1.10.8 on 2018-03-30 14:04 - -from django.db import migrations, models - - -def set_datasettype_has_multiple_datasets(apps, schema_editor): - """Forwards migrations""" - model = apps.get_model('histograms', 'DatasetType') - for datasettype in model.objects.filter(slug__in=['singlesratelow', 'singlesratehigh']): - datasettype.has_multiple_datasets = True - datasettype.save() - - -def noop(apps, schema_editor): - """Backwards migrations""" - pass - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0014_limit_nested_arrayfield_outer_dimension_size'), - ] - - operations = [ - migrations.AddField( - model_name='datasettype', - name='has_multiple_datasets', - field=models.BooleanField(default=False), - ), - # Set has_multiple_datasets to True for relevant objects - migrations.RunPython( - set_datasettype_has_multiple_datasets, - noop, - hints={'model_name': 'DatasetType'} - ), - ] diff --git a/publicdb/histograms/migrations/0016_meta.py b/publicdb/histograms/migrations/0016_meta.py deleted file mode 100644 index 53fbbaff9..000000000 --- a/publicdb/histograms/migrations/0016_meta.py +++ /dev/null @@ -1,65 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0015_datasettype_has_multiple_datasets'), - ] - - operations = [ - migrations.AlterModelOptions( - name='configuration', - options={'get_latest_by': 'timestamp', 'ordering': ['source'], 'verbose_name': 'Configuration', 'verbose_name_plural': 'Configurations'}, - ), - migrations.AlterModelOptions( - name='dailydataset', - options={'ordering': ['source', 'type']}, - ), - migrations.AlterModelOptions( - name='dailyhistogram', - options={'ordering': ['source', 'type']}, - ), - migrations.AlterModelOptions( - name='datasettype', - options={'verbose_name': 'Dataset type', 'verbose_name_plural': 'Dataset types'}, - ), - migrations.AlterModelOptions( - name='detectortimingoffset', - options={'ordering': ['source'], 'verbose_name': 'Detector timing offset', 'verbose_name_plural': 'Detector timing offsets'}, - ), - migrations.AlterModelOptions( - name='histogramtype', - options={'verbose_name': 'Histogram type', 'verbose_name_plural': 'Histogram types'}, - ), - migrations.AlterModelOptions( - name='multidailydataset', - options={'ordering': ['source', 'type']}, - ), - migrations.AlterModelOptions( - name='multidailyhistogram', - options={'ordering': ['source', 'type']}, - ), - migrations.AlterModelOptions( - name='networkhistogram', - options={'ordering': ['source', 'type'], 'verbose_name': 'Network histogram', 'verbose_name_plural': 'Network histograms'}, - ), - migrations.AlterModelOptions( - name='networksummary', - options={'get_latest_by': 'date', 'ordering': ['date'], 'verbose_name': 'Network summary', 'verbose_name_plural': 'Network summaries'}, - ), - migrations.AlterModelOptions( - name='pulseheightfit', - options={'ordering': ['source', 'plate'], 'verbose_name': 'Pulseheight fit', 'verbose_name_plural': 'Pulseheight fits'}, - ), - migrations.AlterModelOptions( - name='stationtimingoffset', - options={'ordering': ['ref_source'], 'verbose_name': 'Station timing offset', 'verbose_name_plural': 'Station timing offsets'}, - ), - migrations.AlterModelOptions( - name='summary', - options={'get_latest_by': 'date', 'ordering': ['date', 'station'], 'verbose_name': 'Summary', 'verbose_name_plural': 'Summaries'}, - ), - ] diff --git a/publicdb/histograms/migrations/0017_related_names.py b/publicdb/histograms/migrations/0017_related_names.py deleted file mode 100644 index fc5671dae..000000000 --- a/publicdb/histograms/migrations/0017_related_names.py +++ /dev/null @@ -1,85 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0016_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='configuration', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='configurations', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='dailydataset', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='datasets', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='dailydataset', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='datasets', to='histograms.DatasetType'), - ), - migrations.AlterField( - model_name='dailyhistogram', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='histograms', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='dailyhistogram', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='histograms', to='histograms.HistogramType'), - ), - migrations.AlterField( - model_name='detectortimingoffset', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='detector_timing_offsets', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='multidailydataset', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_datasets', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='multidailydataset', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_datasets', to='histograms.DatasetType'), - ), - migrations.AlterField( - model_name='multidailyhistogram', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_histograms', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='multidailyhistogram', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multi_histograms', to='histograms.HistogramType'), - ), - migrations.AlterField( - model_name='networkhistogram', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='network_histograms', to='histograms.NetworkSummary'), - ), - migrations.AlterField( - model_name='networkhistogram', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='network_histograms', to='histograms.HistogramType'), - ), - migrations.AlterField( - model_name='pulseheightfit', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pulseheight_fits', to='histograms.Summary'), - ), - migrations.AlterField( - model_name='summary', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='summaries', to='inforecords.Station'), - ), - ] diff --git a/publicdb/histograms/migrations/0018_source_to_summary.py b/publicdb/histograms/migrations/0018_source_to_summary.py deleted file mode 100644 index 42b093249..000000000 --- a/publicdb/histograms/migrations/0018_source_to_summary.py +++ /dev/null @@ -1,127 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 01:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0017_related_names'), - ] - - operations = [ - migrations.AlterModelOptions( - name='configuration', - options={'get_latest_by': 'timestamp', 'ordering': ['summary'], 'verbose_name': 'Configuration', 'verbose_name_plural': 'Configurations'}, - ), - migrations.AlterModelOptions( - name='dailydataset', - options={'ordering': ['summary', 'type']}, - ), - migrations.AlterModelOptions( - name='dailyhistogram', - options={'ordering': ['summary', 'type']}, - ), - migrations.AlterModelOptions( - name='detectortimingoffset', - options={'ordering': ['summary'], 'verbose_name': 'Detector timing offset', 'verbose_name_plural': 'Detector timing offsets'}, - ), - migrations.AlterModelOptions( - name='multidailydataset', - options={'ordering': ['summary', 'type']}, - ), - migrations.AlterModelOptions( - name='multidailyhistogram', - options={'ordering': ['summary', 'type']}, - ), - migrations.AlterModelOptions( - name='networkhistogram', - options={'ordering': ['network_summary', 'type'], 'verbose_name': 'Network histogram', 'verbose_name_plural': 'Network histograms'}, - ), - migrations.AlterModelOptions( - name='pulseheightfit', - options={'ordering': ['summary', 'plate'], 'verbose_name': 'Pulseheight fit', 'verbose_name_plural': 'Pulseheight fits'}, - ), - migrations.AlterModelOptions( - name='stationtimingoffset', - options={'ordering': ['ref_summary'], 'verbose_name': 'Station timing offset', 'verbose_name_plural': 'Station timing offsets'}, - ), - migrations.RenameField( - model_name='configuration', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='dailydataset', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='dailyhistogram', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='detectortimingoffset', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='multidailydataset', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='multidailyhistogram', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='networkhistogram', - old_name='source', - new_name='network_summary', - ), - migrations.RenameField( - model_name='pulseheightfit', - old_name='source', - new_name='summary', - ), - migrations.RenameField( - model_name='stationtimingoffset', - old_name='ref_source', - new_name='ref_summary', - ), - migrations.RenameField( - model_name='stationtimingoffset', - old_name='source', - new_name='summary', - ), - migrations.AlterUniqueTogether( - name='dailydataset', - unique_together={('summary', 'type')}, - ), - migrations.AlterUniqueTogether( - name='dailyhistogram', - unique_together={('summary', 'type')}, - ), - migrations.AlterUniqueTogether( - name='multidailydataset', - unique_together={('summary', 'type')}, - ), - migrations.AlterUniqueTogether( - name='multidailyhistogram', - unique_together={('summary', 'type')}, - ), - migrations.AlterUniqueTogether( - name='networkhistogram', - unique_together={('network_summary', 'type')}, - ), - migrations.AlterUniqueTogether( - name='pulseheightfit', - unique_together={('summary', 'plate')}, - ), - migrations.AlterUniqueTogether( - name='stationtimingoffset', - unique_together={('ref_summary', 'summary')}, - ), - ] diff --git a/publicdb/histograms/migrations/0019_remove_pulseheightfit.py b/publicdb/histograms/migrations/0019_remove_pulseheightfit.py deleted file mode 100644 index da0ef0715..000000000 --- a/publicdb/histograms/migrations/0019_remove_pulseheightfit.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 1.10.8 on 2018-07-22 10:50 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0018_source_to_summary'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='pulseheightfit', - unique_together=set(), - ), - migrations.RemoveField( - model_name='pulseheightfit', - name='summary', - ), - migrations.DeleteModel( - name='PulseheightFit', - ), - ] diff --git a/publicdb/histograms/migrations/0020_summary_events_in_last_hour.py b/publicdb/histograms/migrations/0020_summary_events_in_last_hour.py deleted file mode 100644 index 86a64d786..000000000 --- a/publicdb/histograms/migrations/0020_summary_events_in_last_hour.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 1.11.20 on 2019-03-16 15:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('histograms', '0019_remove_pulseheightfit'), - ] - - operations = [ - migrations.AddField( - model_name='summary', - name='events_in_last_hour', - field=models.BooleanField(default=False), - ), - ] diff --git a/publicdb/inforecords/admin.py b/publicdb/inforecords/admin.py index fc5cb7c64..c5c6d9de6 100644 --- a/publicdb/inforecords/admin.py +++ b/publicdb/inforecords/admin.py @@ -78,4 +78,3 @@ class PcAdmin(admin.ModelAdmin): admin.site.register(models.Profession) -admin.site.register(models.PcType) diff --git a/publicdb/inforecords/migrations/0001_initial.py b/publicdb/inforecords/migrations/0001_initial.py index 70d699582..b3dda1667 100644 --- a/publicdb/inforecords/migrations/0001_initial.py +++ b/publicdb/inforecords/migrations/0001_initial.py @@ -1,8 +1,13 @@ +# Generated by Django 3.2.15 on 2024-03-29 19:27 + from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ] @@ -10,357 +15,138 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Cluster', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=70)), - ('number', models.IntegerField(unique=True, blank=True)), - ('url', models.URLField(null=True, blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('number', models.IntegerField(blank=True, unique=True)), + ('url', models.URLField(blank=True, null=True)), ], options={ - 'ordering': ('name',), + 'verbose_name': 'Cluster', + 'verbose_name_plural': 'Clusters', + 'ordering': ['name'], }, - bases=(models.Model,), ), migrations.CreateModel( name='Contact', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('title', models.CharField(max_length=20, null=True, blank=True)), - ('first_name', models.CharField(max_length=40)), - ('prefix_surname', models.CharField(max_length=10, blank=True)), - ('surname', models.CharField(max_length=40)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(blank=True, max_length=255)), + ('first_name', models.CharField(max_length=255)), + ('prefix_surname', models.CharField(blank=True, max_length=255)), + ('surname', models.CharField(max_length=255)), ], options={ - 'ordering': ('surname', 'first_name'), + 'verbose_name': 'contact', + 'verbose_name_plural': 'contacts', + 'ordering': ['surname', 'first_name'], }, - bases=(models.Model,), ), migrations.CreateModel( name='ContactInformation', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('street_1', models.CharField(max_length=40)), - ('street_2', models.CharField(max_length=40, null=True, blank=True)), - ('postalcode', models.CharField(max_length=12)), - ('city', models.CharField(max_length=40)), - ('pobox', models.CharField(max_length=12, null=True, blank=True)), - ('pobox_postalcode', models.CharField(max_length=12, null=True, blank=True)), - ('pobox_city', models.CharField(max_length=40, null=True, blank=True)), - ('phone_work', models.CharField(max_length=20)), - ('phone_home', models.CharField(max_length=20, null=True, blank=True)), - ('fax', models.CharField(max_length=20, null=True, blank=True)), - ('email_work', models.EmailField(max_length=75)), - ('email_private', models.EmailField(max_length=75, null=True, blank=True)), - ('url', models.URLField(null=True, blank=True)), - ], - options={ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('street_1', models.CharField(max_length=255)), + ('street_2', models.CharField(blank=True, max_length=255, null=True)), + ('postalcode', models.CharField(max_length=255)), + ('city', models.CharField(max_length=255)), + ('pobox', models.CharField(blank=True, max_length=255, null=True)), + ('pobox_postalcode', models.CharField(blank=True, max_length=255, null=True)), + ('pobox_city', models.CharField(blank=True, max_length=255, null=True)), + ('phone_work', models.CharField(max_length=255)), + ('phone_home', models.CharField(blank=True, max_length=255, null=True)), + ('fax', models.CharField(blank=True, max_length=255, null=True)), + ('email_work', models.EmailField(max_length=254)), + ('email_private', models.EmailField(blank=True, max_length=254, null=True)), + ('url', models.URLField(blank=True, null=True)), + ], + options={ + 'verbose_name': 'Contact information', + 'verbose_name_plural': 'Contact information', 'ordering': ['city', 'street_1', 'email_work'], - 'verbose_name': 'Contact Information', - 'verbose_name_plural': 'Contact Information', }, - bases=(models.Model,), ), migrations.CreateModel( name='Country', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=40)), - ('number', models.IntegerField(unique=True, blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('number', models.IntegerField(blank=True, unique=True)), ], options={ + 'verbose_name': 'Country', 'verbose_name_plural': 'Countries', + 'ordering': ['number'], }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DetectorHisparc', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('startdate', models.DateField()), - ('enddate', models.DateField(null=True, blank=True)), - ('latitude', models.FloatField(null=True, blank=True)), - ('longitude', models.FloatField(null=True, blank=True)), - ('height', models.FloatField(null=True, blank=True)), - ('direction', models.FloatField(null=True, blank=True)), - ('translation_perp', models.FloatField(null=True, blank=True)), - ('translation_long', models.FloatField(null=True, blank=True)), - ('scintillator_1_alpha', models.FloatField(null=True, blank=True)), - ('scintillator_1_beta', models.FloatField(null=True, blank=True)), - ('scintillator_1_radius', models.FloatField(null=True, blank=True)), - ('scintillator_1_height', models.FloatField(null=True, blank=True)), - ('scintillator_2_alpha', models.FloatField(null=True, blank=True)), - ('scintillator_2_beta', models.FloatField(null=True, blank=True)), - ('scintillator_2_radius', models.FloatField(null=True, blank=True)), - ('scintillator_2_height', models.FloatField(null=True, blank=True)), - ('scintillator_3_alpha', models.FloatField(null=True, blank=True)), - ('scintillator_3_beta', models.FloatField(null=True, blank=True)), - ('scintillator_3_radius', models.FloatField(null=True, blank=True)), - ('scintillator_3_height', models.FloatField(null=True, blank=True)), - ('scintillator_4_alpha', models.FloatField(null=True, blank=True)), - ('scintillator_4_beta', models.FloatField(null=True, blank=True)), - ('scintillator_4_radius', models.FloatField(null=True, blank=True)), - ('scintillator_4_height', models.FloatField(null=True, blank=True)), - ], - options={ - 'ordering': ('station__number',), - 'verbose_name_plural': 'Detector HiSPARC', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Electronics', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('startdate', models.DateField()), - ('enddate', models.DateField(null=True, blank=True)), - ('serial', models.IntegerField()), - ('is_master', models.BooleanField()), - ('has_gps', models.BooleanField()), - ('notes', models.TextField(null=True, blank=True)), - ], - options={ - 'ordering': ('batch', 'serial'), - 'verbose_name_plural': 'Electronics', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='ElectronicsBatch', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('number', models.IntegerField(unique=True)), - ('notes', models.TextField()), - ], - options={ - 'ordering': ('type', 'number'), - 'verbose_name_plural': 'Electronics Batch', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='ElectronicsStatus', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('description', models.CharField(unique=True, max_length=40)), - ], - options={ - 'verbose_name_plural': 'Electronics Status', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='ElectronicsType', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('description', models.CharField(unique=True, max_length=40)), - ], - options={ - 'ordering': ('description',), - 'verbose_name_plural': 'Electronics Type', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='EnabledService', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('min_critical', models.FloatField(null=True, blank=True)), - ('max_critical', models.FloatField(null=True, blank=True)), - ('min_warning', models.FloatField(null=True, blank=True)), - ('max_warning', models.FloatField(null=True, blank=True)), - ], - options={ - 'ordering': ('pc', 'monitor_service'), - 'verbose_name_plural': 'Enabled Services', - }, - bases=(models.Model,), ), migrations.CreateModel( - name='MonitorPulseheightThresholds', + name='Profession', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('plate', models.IntegerField()), - ('mpv_mean', models.FloatField()), - ('mpv_sigma', models.FloatField()), - ('mpv_max_allowed_drift', models.FloatField()), - ('mpv_min_allowed_drift', models.FloatField()), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('description', models.CharField(max_length=255, unique=True)), ], options={ - 'verbose_name_plural': 'Pulseheight thresholds for Nagios monitoring', + 'verbose_name': 'Profession', + 'verbose_name_plural': 'Professions', }, - bases=(models.Model,), ), migrations.CreateModel( - name='MonitorService', + name='Station', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('description', models.CharField(unique=True, max_length=40)), - ('nagios_command', models.CharField(max_length=70)), - ('is_default_service', models.BooleanField(default=False)), - ('enable_active_checks', models.BooleanField(default=True)), - ('min_critical', models.FloatField(null=True, blank=True)), - ('max_critical', models.FloatField(null=True, blank=True)), - ('min_warning', models.FloatField(null=True, blank=True)), - ('max_warning', models.FloatField(null=True, blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('number', models.IntegerField(blank=True, unique=True)), + ('password', models.CharField(max_length=255)), + ('info_page', models.TextField(blank=True)), + ('cluster', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stations', to='inforecords.cluster')), + ('contact', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stations_contact', to='inforecords.contact')), + ('contactinformation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stations', to='inforecords.contactinformation')), + ('ict_contact', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stations_ict_contact', to='inforecords.contact')), ], options={ - 'ordering': ('description',), - 'verbose_name_plural': 'Monitor Services', + 'verbose_name': 'Station', + 'verbose_name_plural': 'Stations', + 'ordering': ['number'], }, - bases=(models.Model,), ), migrations.CreateModel( name='Pc', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=40)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), ('is_active', models.BooleanField(default=False)), ('is_test', models.BooleanField(default=False)), - ('ip', models.IPAddressField(unique=True, blank=True)), + ('ip', models.GenericIPAddressField(blank=True, null=True, protocol='ipv4', unique=True)), ('notes', models.TextField(blank=True)), - ('services', models.ManyToManyField(to='inforecords.MonitorService', through='inforecords.EnabledService')), - ], - options={ - 'ordering': ('name',), - 'verbose_name_plural': 'PC and Certificates', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='PcType', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('description', models.CharField(unique=True, max_length=40)), - ('slug', models.CharField(max_length=20)), - ], - options={ - 'verbose_name_plural': 'PC Type', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Profession', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('description', models.CharField(unique=True, max_length=40)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Station', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(max_length=70)), - ('number', models.IntegerField(unique=True, blank=True)), - ('password', models.CharField(max_length=40)), - ('info_page', models.TextField(blank=True)), - ('cluster', models.ForeignKey(on_delete=models.CASCADE, related_name='stations', to='inforecords.Cluster')), - ('contact', models.ForeignKey(on_delete=models.CASCADE, related_name='stations_contact', to='inforecords.Contact', null=True)), - ('contactinformation', models.ForeignKey(on_delete=models.CASCADE, related_name='stations', to='inforecords.ContactInformation')), - ('ict_contact', models.ForeignKey(on_delete=models.CASCADE, related_name='stations_ict_contact', to='inforecords.Contact', null=True)), + ('station', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pcs', to='inforecords.station')), ], options={ - 'ordering': ('number',), + 'verbose_name': 'PC', + 'verbose_name_plural': 'PCs', + 'ordering': ['name'], }, - bases=(models.Model,), - ), - migrations.AddField( - model_name='pc', - name='station', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station'), - preserve_default=True, - ), - migrations.AddField( - model_name='pc', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.PcType'), - preserve_default=True, - ), - migrations.AddField( - model_name='monitorpulseheightthresholds', - name='station', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station'), - preserve_default=True, - ), - migrations.AddField( - model_name='enabledservice', - name='monitor_service', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.MonitorService'), - preserve_default=True, - ), - migrations.AddField( - model_name='enabledservice', - name='pc', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Pc'), - preserve_default=True, - ), - migrations.AddField( - model_name='electronicsbatch', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.ElectronicsType'), - preserve_default=True, - ), - migrations.AddField( - model_name='electronics', - name='batch', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.ElectronicsBatch'), - preserve_default=True, - ), - migrations.AddField( - model_name='electronics', - name='station', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station'), - preserve_default=True, - ), - migrations.AddField( - model_name='electronics', - name='status', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.ElectronicsStatus'), - preserve_default=True, - ), - migrations.AddField( - model_name='electronics', - name='type', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.ElectronicsType'), - preserve_default=True, - ), - migrations.AddField( - model_name='detectorhisparc', - name='station', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='detectorhisparc', - unique_together={('station', 'startdate')}, ), migrations.AddField( model_name='contact', name='contactinformation', - field=models.ForeignKey(on_delete=models.CASCADE, related_name='contacts', to='inforecords.ContactInformation'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contacts', to='inforecords.contactinformation'), ), migrations.AddField( model_name='contact', name='profession', - field=models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Profession'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='contact', - unique_together={('first_name', 'prefix_surname', 'surname')}, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contacts', to='inforecords.profession'), ), migrations.AddField( model_name='cluster', name='country', - field=models.ForeignKey(on_delete=models.CASCADE, related_name='clusters', to='inforecords.Country'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='clusters', to='inforecords.country'), ), migrations.AddField( model_name='cluster', name='parent', - field=models.ForeignKey(on_delete=models.CASCADE, related_name='subclusters', blank=True, to='inforecords.Cluster', null=True), - preserve_default=True, + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subclusters', to='inforecords.cluster'), + ), + migrations.AlterUniqueTogether( + name='contact', + unique_together={('first_name', 'prefix_surname', 'surname')}, ), ] diff --git a/publicdb/inforecords/migrations/0002_remove_detectorhisparc.py b/publicdb/inforecords/migrations/0002_remove_detectorhisparc.py deleted file mode 100644 index 71b61a4fd..000000000 --- a/publicdb/inforecords/migrations/0002_remove_detectorhisparc.py +++ /dev/null @@ -1,18 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='detectorhisparc', - name='station', - ), - migrations.DeleteModel( - name='DetectorHisparc', - ), - ] diff --git a/publicdb/inforecords/migrations/0003_remove_electronics.py b/publicdb/inforecords/migrations/0003_remove_electronics.py deleted file mode 100644 index 43a297dfd..000000000 --- a/publicdb/inforecords/migrations/0003_remove_electronics.py +++ /dev/null @@ -1,43 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0002_remove_detectorhisparc'), - ] - - operations = [ - migrations.RemoveField( - model_name='electronics', - name='batch', - ), - migrations.RemoveField( - model_name='electronics', - name='station', - ), - migrations.RemoveField( - model_name='electronics', - name='status', - ), - migrations.RemoveField( - model_name='electronics', - name='type', - ), - migrations.DeleteModel( - name='Electronics', - ), - migrations.RemoveField( - model_name='electronicsbatch', - name='type', - ), - migrations.DeleteModel( - name='ElectronicsBatch', - ), - migrations.DeleteModel( - name='ElectronicsStatus', - ), - migrations.DeleteModel( - name='ElectronicsType', - ), - ] diff --git a/publicdb/inforecords/migrations/0004_update_email_ip_fields.py b/publicdb/inforecords/migrations/0004_update_email_ip_fields.py deleted file mode 100644 index e8c7ff519..000000000 --- a/publicdb/inforecords/migrations/0004_update_email_ip_fields.py +++ /dev/null @@ -1,26 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0003_remove_electronics'), - ] - - operations = [ - migrations.AlterField( - model_name='contactinformation', - name='email_private', - field=models.EmailField(max_length=254, null=True, blank=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='email_work', - field=models.EmailField(max_length=254), - ), - migrations.AlterField( - model_name='pc', - name='ip', - field=models.GenericIPAddressField(unique=True, null=True, protocol='ipv4', blank=True), - ), - ] diff --git a/publicdb/inforecords/migrations/0005_fix_ip_fields_bug.py b/publicdb/inforecords/migrations/0005_fix_ip_fields_bug.py deleted file mode 100644 index 2311fd1d3..000000000 --- a/publicdb/inforecords/migrations/0005_fix_ip_fields_bug.py +++ /dev/null @@ -1,35 +0,0 @@ -from django.db import migrations, models - - -def copy_ip(apps, schema_editor): - pc_model = apps.get_model("inforecords", "Pc") - - for pc in pc_model.objects.all(): - pc.new_ip = pc.ip.strip() or None if pc.ip else None - pc.save(update_fields=['new_ip']) - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0004_update_email_ip_fields'), - ] - - operations = [ - migrations.AddField( - model_name='pc', - name='new_ip', - field=models.GenericIPAddressField(unique=True, blank=True, - null=True, protocol='ipv4'), - ), - migrations.RunPython(copy_ip, lambda *args, **kwargs: None), - migrations.RemoveField( - model_name='pc', - name='ip', - ), - migrations.RenameField( - model_name='pc', - old_name='new_ip', - new_name='ip', - ), - ] diff --git a/publicdb/inforecords/migrations/0006_increase_country_name_length.py b/publicdb/inforecords/migrations/0006_increase_country_name_length.py deleted file mode 100644 index b2a236e49..000000000 --- a/publicdb/inforecords/migrations/0006_increase_country_name_length.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 1.10.8 on 2018-01-29 23:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0005_fix_ip_fields_bug'), - ] - - operations = [ - migrations.AlterField( - model_name='country', - name='name', - field=models.CharField(max_length=70, unique=True), - ), - ] diff --git a/publicdb/inforecords/migrations/0007_on_delete_set_contact_null.py b/publicdb/inforecords/migrations/0007_on_delete_set_contact_null.py deleted file mode 100644 index 63e6e47d1..000000000 --- a/publicdb/inforecords/migrations/0007_on_delete_set_contact_null.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.10.8 on 2018-02-20 22:51 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0006_increase_country_name_length'), - ] - - operations = [ - migrations.AlterField( - model_name='station', - name='contact', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stations_contact', to='inforecords.Contact'), - ), - migrations.AlterField( - model_name='station', - name='ict_contact', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stations_ict_contact', to='inforecords.Contact'), - ), - ] diff --git a/publicdb/inforecords/migrations/0008_contact_title_not_null.py b/publicdb/inforecords/migrations/0008_contact_title_not_null.py deleted file mode 100644 index 143b8206c..000000000 --- a/publicdb/inforecords/migrations/0008_contact_title_not_null.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0007_on_delete_set_contact_null'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='title', - field=models.CharField(blank=True, default='', max_length=20), - preserve_default=False, - ), - ] diff --git a/publicdb/inforecords/migrations/0009_meta.py b/publicdb/inforecords/migrations/0009_meta.py deleted file mode 100644 index 187ee9342..000000000 --- a/publicdb/inforecords/migrations/0009_meta.py +++ /dev/null @@ -1,57 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0008_contact_title_not_null'), - ] - - operations = [ - migrations.AlterModelOptions( - name='cluster', - options={'ordering': ['name'], 'verbose_name': 'Cluster', 'verbose_name_plural': 'Clusters'}, - ), - migrations.AlterModelOptions( - name='contact', - options={'ordering': ['surname', 'first_name'], 'verbose_name': 'contact', 'verbose_name_plural': 'contacts'}, - ), - migrations.AlterModelOptions( - name='contactinformation', - options={'ordering': ['city', 'street_1', 'email_work'], 'verbose_name': 'Contact information', 'verbose_name_plural': 'Contact information'}, - ), - migrations.AlterModelOptions( - name='country', - options={'ordering': ['number'], 'verbose_name': 'Country', 'verbose_name_plural': 'Countries'}, - ), - migrations.AlterModelOptions( - name='enabledservice', - options={'ordering': ['pc', 'monitor_service'], 'verbose_name': 'Enabled Service', 'verbose_name_plural': 'Enabled Services'}, - ), - migrations.AlterModelOptions( - name='monitorpulseheightthresholds', - options={'verbose_name': 'Pulseheight threshold for Nagios', 'verbose_name_plural': 'Pulseheight thresholds for Nagios'}, - ), - migrations.AlterModelOptions( - name='monitorservice', - options={'ordering': ['description'], 'verbose_name': 'Monitor Service', 'verbose_name_plural': 'Monitor Services'}, - ), - migrations.AlterModelOptions( - name='pc', - options={'ordering': ['name'], 'verbose_name': 'PC and certificates', 'verbose_name_plural': 'PCs and certificates'}, - ), - migrations.AlterModelOptions( - name='pctype', - options={'verbose_name': 'PC Type', 'verbose_name_plural': 'PC Types'}, - ), - migrations.AlterModelOptions( - name='profession', - options={'verbose_name': 'Profession', 'verbose_name_plural': 'Professions'}, - ), - migrations.AlterModelOptions( - name='station', - options={'ordering': ['number'], 'verbose_name': 'Station', 'verbose_name_plural': 'Stations'}, - ), - ] diff --git a/publicdb/inforecords/migrations/0010_related_names.py b/publicdb/inforecords/migrations/0010_related_names.py deleted file mode 100644 index a15df36f6..000000000 --- a/publicdb/inforecords/migrations/0010_related_names.py +++ /dev/null @@ -1,45 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0009_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='profession', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contacts', to='inforecords.Profession'), - ), - migrations.AlterField( - model_name='enabledservice', - name='monitor_service', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enabled_services', to='inforecords.MonitorService'), - ), - migrations.AlterField( - model_name='enabledservice', - name='pc', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enabled_services', to='inforecords.Pc'), - ), - migrations.AlterField( - model_name='monitorpulseheightthresholds', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pulsehieght_thresholds', to='inforecords.Station'), - ), - migrations.AlterField( - model_name='pc', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pcs', to='inforecords.Station'), - ), - migrations.AlterField( - model_name='pc', - name='type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pcs', to='inforecords.PcType'), - ), - ] diff --git a/publicdb/inforecords/migrations/0011_remove_pulseheightthresholds.py b/publicdb/inforecords/migrations/0011_remove_pulseheightthresholds.py deleted file mode 100644 index 264573d33..000000000 --- a/publicdb/inforecords/migrations/0011_remove_pulseheightthresholds.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 1.10.8 on 2018-07-22 10:50 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0010_related_names'), - ] - - operations = [ - migrations.RemoveField( - model_name='monitorpulseheightthresholds', - name='station', - ), - migrations.DeleteModel( - name='MonitorPulseheightThresholds', - ), - ] diff --git a/publicdb/inforecords/migrations/0012_remove_nagios.py b/publicdb/inforecords/migrations/0012_remove_nagios.py deleted file mode 100644 index 3ee83bd2f..000000000 --- a/publicdb/inforecords/migrations/0012_remove_nagios.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.14 on 2022-07-11 15:15 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0011_remove_pulseheightthresholds'), - ] - - operations = [ - migrations.RemoveField( - model_name='pc', - name='services', - ), - migrations.DeleteModel( - name='EnabledService', - ), - migrations.DeleteModel( - name='MonitorService', - ), - ] diff --git a/publicdb/inforecords/migrations/0013_longer_charfields.py b/publicdb/inforecords/migrations/0013_longer_charfields.py deleted file mode 100644 index faaf78ce0..000000000 --- a/publicdb/inforecords/migrations/0013_longer_charfields.py +++ /dev/null @@ -1,123 +0,0 @@ -# Generated by Django 3.2.14 on 2022-07-11 15:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('inforecords', '0012_remove_nagios'), - ] - - operations = [ - migrations.AlterField( - model_name='cluster', - name='name', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='contact', - name='first_name', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contact', - name='prefix_surname', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='contact', - name='surname', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contact', - name='title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='contactinformation', - name='city', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contactinformation', - name='fax', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='phone_home', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='phone_work', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contactinformation', - name='pobox', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='pobox_city', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='pobox_postalcode', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='contactinformation', - name='postalcode', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contactinformation', - name='street_1', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='contactinformation', - name='street_2', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AlterField( - model_name='country', - name='name', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='pc', - name='name', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='pctype', - name='description', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='pctype', - name='slug', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='profession', - name='description', - field=models.CharField(max_length=255, unique=True), - ), - migrations.AlterField( - model_name='station', - name='name', - field=models.CharField(max_length=255), - ), - migrations.AlterField( - model_name='station', - name='password', - field=models.CharField(max_length=255), - ), - ] diff --git a/publicdb/inforecords/models.py b/publicdb/inforecords/models.py index 11c09f17e..bb00f615b 100644 --- a/publicdb/inforecords/models.py +++ b/publicdb/inforecords/models.py @@ -300,21 +300,8 @@ def latest_location(self, date=None): } -class PcType(models.Model): - description = models.CharField(max_length=255, unique=True) - slug = models.CharField(max_length=255) - - class Meta: - verbose_name = 'PC Type' - verbose_name_plural = 'PC Types' - - def __str__(self): - return self.description - - class Pc(models.Model): station = models.ForeignKey(Station, models.CASCADE, related_name='pcs') - type = models.ForeignKey(PcType, models.CASCADE, related_name='pcs') name = models.CharField(max_length=255, unique=True) is_active = models.BooleanField(default=False) is_test = models.BooleanField(default=False) @@ -322,8 +309,8 @@ class Pc(models.Model): notes = models.TextField(blank=True) class Meta: - verbose_name = 'PC and certificates' - verbose_name_plural = 'PCs and certificates' + verbose_name = 'PC' + verbose_name_plural = 'PCs' ordering = ['name'] def __str__(self): diff --git a/publicdb/station_layout/migrations/0001_initial.py b/publicdb/station_layout/migrations/0001_initial.py index 67565c5cd..d88367849 100644 --- a/publicdb/station_layout/migrations/0001_initial.py +++ b/publicdb/station_layout/migrations/0001_initial.py @@ -1,77 +1,83 @@ +# Generated by Django 3.2.15 on 2024-03-29 19:27 + from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ('inforecords', '0001_initial'), ] operations = [ migrations.CreateModel( - name='StationLayout', + name='StationLayoutQuarantine', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('email', models.EmailField(max_length=254)), + ('submit_date', models.DateTimeField(auto_now_add=True)), + ('email_verified', models.BooleanField(default=False)), + ('approved', models.BooleanField(default=False)), + ('reviewed', models.BooleanField(default=False)), + ('hash_submit', models.CharField(max_length=32)), + ('hash_review', models.CharField(max_length=32)), ('active_date', models.DateTimeField()), ('detector_1_radius', models.FloatField()), ('detector_1_alpha', models.FloatField()), - ('detector_1_beta', models.FloatField()), ('detector_1_height', models.FloatField()), + ('detector_1_beta', models.FloatField()), ('detector_2_radius', models.FloatField()), ('detector_2_alpha', models.FloatField()), - ('detector_2_beta', models.FloatField()), ('detector_2_height', models.FloatField()), - ('detector_3_radius', models.FloatField(null=True, blank=True)), - ('detector_3_alpha', models.FloatField(null=True, blank=True)), - ('detector_3_beta', models.FloatField(null=True, blank=True)), - ('detector_3_height', models.FloatField(null=True, blank=True)), - ('detector_4_radius', models.FloatField(null=True, blank=True)), - ('detector_4_alpha', models.FloatField(null=True, blank=True)), - ('detector_4_beta', models.FloatField(null=True, blank=True)), - ('detector_4_height', models.FloatField(null=True, blank=True)), - ('station', models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station')), + ('detector_2_beta', models.FloatField()), + ('detector_3_radius', models.FloatField(blank=True, null=True)), + ('detector_3_alpha', models.FloatField(blank=True, null=True)), + ('detector_3_height', models.FloatField(blank=True, null=True)), + ('detector_3_beta', models.FloatField(blank=True, null=True)), + ('detector_4_radius', models.FloatField(blank=True, null=True)), + ('detector_4_alpha', models.FloatField(blank=True, null=True)), + ('detector_4_height', models.FloatField(blank=True, null=True)), + ('detector_4_beta', models.FloatField(blank=True, null=True)), + ('station', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quarantined_layouts', to='inforecords.station')), ], options={ + 'verbose_name': 'Station layout quarantine', + 'verbose_name_plural': 'Station layouts quarantine', }, - bases=(models.Model,), ), migrations.CreateModel( - name='StationLayoutQuarantine', + name='StationLayout', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(max_length=50)), - ('email', models.EmailField(max_length=75)), - ('submit_date', models.DateTimeField(auto_now_add=True)), - ('email_verified', models.BooleanField(default=False)), - ('approved', models.BooleanField(default=False)), - ('reviewed', models.BooleanField(default=False)), - ('hash_submit', models.CharField(max_length=32)), - ('hash_review', models.CharField(max_length=32)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('active_date', models.DateTimeField()), ('detector_1_radius', models.FloatField()), ('detector_1_alpha', models.FloatField()), - ('detector_1_beta', models.FloatField()), ('detector_1_height', models.FloatField()), + ('detector_1_beta', models.FloatField()), ('detector_2_radius', models.FloatField()), ('detector_2_alpha', models.FloatField()), - ('detector_2_beta', models.FloatField()), ('detector_2_height', models.FloatField()), - ('detector_3_radius', models.FloatField(null=True, blank=True)), - ('detector_3_alpha', models.FloatField(null=True, blank=True)), - ('detector_3_beta', models.FloatField(null=True, blank=True)), - ('detector_3_height', models.FloatField(null=True, blank=True)), - ('detector_4_radius', models.FloatField(null=True, blank=True)), - ('detector_4_alpha', models.FloatField(null=True, blank=True)), - ('detector_4_beta', models.FloatField(null=True, blank=True)), - ('detector_4_height', models.FloatField(null=True, blank=True)), - ('station', models.ForeignKey(on_delete=models.CASCADE, to='inforecords.Station')), + ('detector_2_beta', models.FloatField()), + ('detector_3_radius', models.FloatField(blank=True, null=True)), + ('detector_3_alpha', models.FloatField(blank=True, null=True)), + ('detector_3_height', models.FloatField(blank=True, null=True)), + ('detector_3_beta', models.FloatField(blank=True, null=True)), + ('detector_4_radius', models.FloatField(blank=True, null=True)), + ('detector_4_alpha', models.FloatField(blank=True, null=True)), + ('detector_4_height', models.FloatField(blank=True, null=True)), + ('detector_4_beta', models.FloatField(blank=True, null=True)), + ('station', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='layouts', to='inforecords.station')), ], options={ + 'verbose_name': 'Station layout', + 'verbose_name_plural': 'Station layouts', + 'ordering': ['station', 'active_date'], + 'get_latest_by': 'active_date', + 'unique_together': {('station', 'active_date')}, }, - bases=(models.Model,), - ), - migrations.AlterUniqueTogether( - name='stationlayout', - unique_together={('station', 'active_date')}, ), ] diff --git a/publicdb/station_layout/migrations/0002_alter_meta_options.py b/publicdb/station_layout/migrations/0002_alter_meta_options.py deleted file mode 100644 index d8c0f8357..000000000 --- a/publicdb/station_layout/migrations/0002_alter_meta_options.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('station_layout', '0001_initial'), - ] - - operations = [ - migrations.AlterModelOptions( - name='stationlayout', - options={'ordering': ('station', 'active_date'), 'get_latest_by': 'active_date'}, - ), - ] diff --git a/publicdb/station_layout/migrations/0003_increase_emailfield_length.py b/publicdb/station_layout/migrations/0003_increase_emailfield_length.py deleted file mode 100644 index 903bc74d6..000000000 --- a/publicdb/station_layout/migrations/0003_increase_emailfield_length.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 1.10.8 on 2018-01-29 23:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('station_layout', '0002_alter_meta_options'), - ] - - operations = [ - migrations.AlterField( - model_name='stationlayoutquarantine', - name='email', - field=models.EmailField(max_length=254), - ), - ] diff --git a/publicdb/station_layout/migrations/0004_meta.py b/publicdb/station_layout/migrations/0004_meta.py deleted file mode 100644 index 441731f57..000000000 --- a/publicdb/station_layout/migrations/0004_meta.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('station_layout', '0003_increase_emailfield_length'), - ] - - operations = [ - migrations.AlterModelOptions( - name='stationlayout', - options={'get_latest_by': 'active_date', 'ordering': ['station', 'active_date'], 'verbose_name': 'Station layout', 'verbose_name_plural': 'Station layouts'}, - ), - migrations.AlterModelOptions( - name='stationlayoutquarantine', - options={'verbose_name': 'Station layout quarantine', 'verbose_name_plural': 'Station layouts quarantine'}, - ), - ] diff --git a/publicdb/station_layout/migrations/0005_related_names.py b/publicdb/station_layout/migrations/0005_related_names.py deleted file mode 100644 index 70a393108..000000000 --- a/publicdb/station_layout/migrations/0005_related_names.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('station_layout', '0004_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='stationlayout', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='layouts', to='inforecords.Station'), - ), - migrations.AlterField( - model_name='stationlayoutquarantine', - name='station', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quarantined_layouts', to='inforecords.Station'), - ), - ] diff --git a/publicdb/station_layout/migrations/0006_longer_charfields.py b/publicdb/station_layout/migrations/0006_longer_charfields.py deleted file mode 100644 index 07d251c81..000000000 --- a/publicdb/station_layout/migrations/0006_longer_charfields.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.14 on 2022-07-11 15:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('station_layout', '0005_related_names'), - ] - - operations = [ - migrations.AlterField( - model_name='stationlayoutquarantine', - name='name', - field=models.CharField(max_length=255), - ), - ] diff --git a/publicdb/updates/migrations/0001_initial.py b/publicdb/updates/migrations/0001_initial.py index 58e75b87d..ee49cc27b 100644 --- a/publicdb/updates/migrations/0001_initial.py +++ b/publicdb/updates/migrations/0001_initial.py @@ -1,83 +1,68 @@ -from django.db import migrations, models +# Generated by Django 3.2.15 on 2024-03-29 19:27 +from django.db import migrations, models +import django.db.models.deletion import publicdb.updates.models class Migration(migrations.Migration): + initial = True + dependencies = [ ] operations = [ migrations.CreateModel( - name='AdminUpdate', + name='UpdateQueue', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('slug', models.SlugField(unique=True)), + ], + ), + migrations.CreateModel( + name='UserUpdate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('version', models.PositiveSmallIntegerField()), ('update', models.FileField(upload_to=publicdb.updates.models.upload_queue)), + ('queue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_updates', to='updates.updatequeue')), ], options={ - 'ordering': ('version',), + 'verbose_name': 'User update', + 'verbose_name_plural': 'User updates', + 'ordering': ['-version'], + 'unique_together': {('queue', 'version')}, }, - bases=(models.Model,), ), migrations.CreateModel( name='InstallerUpdate', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('version', models.CharField(max_length=5)), ('installer', models.FileField(upload_to=publicdb.updates.models.upload_queue)), + ('queue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='installer_updates', to='updates.updatequeue')), ], options={ - 'ordering': ('version',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='UpdateQueue', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('slug', models.SlugField(unique=True)), - ], - options={ + 'verbose_name': 'Installer update', + 'verbose_name_plural': 'Installer updates', + 'ordering': ['-version'], + 'unique_together': {('queue', 'version')}, }, - bases=(models.Model,), ), migrations.CreateModel( - name='UserUpdate', + name='AdminUpdate', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('version', models.PositiveSmallIntegerField()), ('update', models.FileField(upload_to=publicdb.updates.models.upload_queue)), - ('queue', models.ForeignKey(on_delete=models.CASCADE, to='updates.UpdateQueue')), + ('queue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='admin_updates', to='updates.updatequeue')), ], options={ - 'ordering': ('version',), + 'verbose_name': 'Admin update', + 'verbose_name_plural': 'Admin updates', + 'ordering': ['-version'], + 'unique_together': {('queue', 'version')}, }, - bases=(models.Model,), - ), - migrations.AlterUniqueTogether( - name='userupdate', - unique_together={('queue', 'version')}, - ), - migrations.AddField( - model_name='installerupdate', - name='queue', - field=models.ForeignKey(on_delete=models.CASCADE, to='updates.UpdateQueue'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='installerupdate', - unique_together={('queue', 'version')}, - ), - migrations.AddField( - model_name='adminupdate', - name='queue', - field=models.ForeignKey(on_delete=models.CASCADE, to='updates.UpdateQueue'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='adminupdate', - unique_together={('queue', 'version')}, ), ] diff --git a/publicdb/updates/migrations/0002_meta.py b/publicdb/updates/migrations/0002_meta.py deleted file mode 100644 index 5d3d2a0d1..000000000 --- a/publicdb/updates/migrations/0002_meta.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-06 11:46 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('updates', '0001_initial'), - ] - - operations = [ - migrations.AlterModelOptions( - name='adminupdate', - options={'ordering': ['version'], 'verbose_name': 'Admin update', 'verbose_name_plural': 'Admin updates'}, - ), - migrations.AlterModelOptions( - name='installerupdate', - options={'ordering': ['version'], 'verbose_name': 'Installer update', 'verbose_name_plural': 'Installer updates'}, - ), - migrations.AlterModelOptions( - name='userupdate', - options={'ordering': ['version'], 'verbose_name': 'User update', 'verbose_name_plural': 'User updates'}, - ), - ] diff --git a/publicdb/updates/migrations/0003_related_names.py b/publicdb/updates/migrations/0003_related_names.py deleted file mode 100644 index 830d83ea4..000000000 --- a/publicdb/updates/migrations/0003_related_names.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 00:57 - -import django.db.models.deletion - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('updates', '0002_meta'), - ] - - operations = [ - migrations.AlterField( - model_name='adminupdate', - name='queue', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='admin_updates', to='updates.UpdateQueue'), - ), - migrations.AlterField( - model_name='installerupdate', - name='queue', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='installer_updates', to='updates.UpdateQueue'), - ), - migrations.AlterField( - model_name='userupdate', - name='queue', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_updates', to='updates.UpdateQueue'), - ), - ] diff --git a/publicdb/updates/migrations/0004_reverse_version_ordering.py b/publicdb/updates/migrations/0004_reverse_version_ordering.py deleted file mode 100644 index 6478b5117..000000000 --- a/publicdb/updates/migrations/0004_reverse_version_ordering.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 1.11.12 on 2018-07-20 13:10 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('updates', '0003_related_names'), - ] - - operations = [ - migrations.AlterModelOptions( - name='adminupdate', - options={'ordering': ['-version'], 'verbose_name': 'Admin update', 'verbose_name_plural': 'Admin updates'}, - ), - migrations.AlterModelOptions( - name='installerupdate', - options={'ordering': ['-version'], 'verbose_name': 'Installer update', 'verbose_name_plural': 'Installer updates'}, - ), - migrations.AlterModelOptions( - name='userupdate', - options={'ordering': ['-version'], 'verbose_name': 'User update', 'verbose_name_plural': 'User updates'}, - ), - ] diff --git a/tests/factories/inforecords_factories.py b/tests/factories/inforecords_factories.py index c939cc0e3..0ee3e7db9 100644 --- a/tests/factories/inforecords_factories.py +++ b/tests/factories/inforecords_factories.py @@ -84,18 +84,8 @@ class Meta: django_get_or_create = ('number',) -class PcTypeFactory(factory.django.DjangoModelFactory): - description = factory.Faker('word') - slug = factory.Faker('random_element', elements=['admin', 'client']) # TODO: Add 'display'? - - class Meta: - model = models.PcType - django_get_or_create = ('slug',) - - class PcFactory(factory.django.DjangoModelFactory): station = factory.SubFactory(StationFactory) - type = factory.SubFactory(PcTypeFactory) name = factory.Faker('word') is_active = factory.Faker('boolean', chance_of_getting_true=90) is_test = factory.Faker('boolean', chance_of_getting_true=5) diff --git a/tests/test_inforecords/test_models.py b/tests/test_inforecords/test_models.py index 92d95c856..24ffd546a 100644 --- a/tests/test_inforecords/test_models.py +++ b/tests/test_inforecords/test_models.py @@ -105,12 +105,6 @@ def test_number_of_detectors(self): self.assertEqual(4, station.number_of_detectors()) -class TestPcType(TestCase): - def test_str(self): - pc_type = inforecords_factories.PcTypeFactory() - self.assertEqual(pc_type.description, str(pc_type)) - - class TestPc(TestCase): def test_str(self): station = inforecords_factories.StationFactory(number=0, cluster__number=0, cluster__country__number=0)