From 0fe7d55eab6e2341c503055b9f8c727ea8597aed Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Mon, 13 Apr 2020 16:33:57 +0100 Subject: [PATCH] Fix for existing invalid cable types Also hotfix against more in the future. Proper rework needed...This is why I should have waited for review...! Lesson learnt? --- assets/migrations/0016_auto_20200413_1632.py | 34 ++++++++++++++++++++ assets/models.py | 18 +++++++---- 2 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 assets/migrations/0016_auto_20200413_1632.py diff --git a/assets/migrations/0016_auto_20200413_1632.py b/assets/migrations/0016_auto_20200413_1632.py new file mode 100644 index 00000000..c8b3e781 --- /dev/null +++ b/assets/migrations/0016_auto_20200413_1632.py @@ -0,0 +1,34 @@ +# Generated by Django 3.0.3 on 2020-04-13 15:32 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('assets', '0015_remove_asset_next_sched_maint'), + ] + + operations = [ + migrations.AlterField( + model_name='cabletype', + name='circuits', + field=models.IntegerField(default=1), + ), + migrations.AlterField( + model_name='cabletype', + name='cores', + field=models.IntegerField(default=3), + ), + migrations.AlterField( + model_name='cabletype', + name='plug', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='plug', to='assets.Connector'), + ), + migrations.AlterField( + model_name='cabletype', + name='socket', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='socket', to='assets.Connector'), + ), + ] diff --git a/assets/models.py b/assets/models.py index 2b709a94..9a314a63 100644 --- a/assets/models.py +++ b/assets/models.py @@ -63,19 +63,23 @@ class Connector(models.Model): return self.description +# Things are nullable that shouldn't be because I didn't properly fix the data structure when moving this to its own model... class CableType(models.Model): class Meta: ordering = ['plug', 'socket', '-circuits'] - circuits = models.IntegerField(blank=True, null=True) - cores = models.IntegerField(blank=True, null=True) - plug = models.ForeignKey(Connector, on_delete=models.SET_NULL, - related_name='plug', blank=True, null=True) - socket = models.ForeignKey(Connector, on_delete=models.SET_NULL, - related_name='socket', blank=True, null=True) + circuits = models.IntegerField(default=1) + cores = models.IntegerField(default=3) + plug = models.ForeignKey(Connector, on_delete=models.CASCADE, + related_name='plug', null=True) + socket = models.ForeignKey(Connector, on_delete=models.CASCADE, + related_name='socket', null=True) def __str__(self): - return "%s → %s" % (self.plug.description, self.socket.description) + if self.plug and self.socket: + return "%s → %s" % (self.plug.description, self.socket.description) + else: + return "Unknown" @reversion.register