From 4f92c0c29eb85264da81fc3860f90dd4900efc8e Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Wed, 12 Jul 2023 18:51:09 -0400
Subject: [PATCH] fix: remove editable options from model fields

---
 ...image_height_alter_image_width_and_more.py | 58 +++++++++++++++++++
 program/models.py                             | 56 ++++--------------
 2 files changed, 70 insertions(+), 44 deletions(-)
 create mode 100644 program/migrations/0062_alter_image_height_alter_image_width_and_more.py

diff --git a/program/migrations/0062_alter_image_height_alter_image_width_and_more.py b/program/migrations/0062_alter_image_height_alter_image_width_and_more.py
new file mode 100644
index 00000000..302a93b4
--- /dev/null
+++ b/program/migrations/0062_alter_image_height_alter_image_width_and_more.py
@@ -0,0 +1,58 @@
+# Generated by Django 4.2.2 on 2023-07-12 22:39
+
+import django.db.models.deletion
+from django.conf import settings
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ("program", "0061_alter_category_subtitle"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="image",
+            name="height",
+            field=models.PositiveIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name="image",
+            name="width",
+            field=models.PositiveIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name="note",
+            name="owner",
+            field=models.ForeignKey(
+                default=1,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="notes",
+                to=settings.AUTH_USER_MODEL,
+            ),
+        ),
+        migrations.AlterField(
+            model_name="timeslot",
+            name="note_id",
+            field=models.IntegerField(null=True),
+        ),
+        migrations.AlterField(
+            model_name="timeslot",
+            name="show",
+            field=models.ForeignKey(
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="timeslots",
+                to="program.show",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="userprofile",
+            name="user",
+            field=models.OneToOneField(
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="profile",
+                to=settings.AUTH_USER_MODEL,
+            ),
+        ),
+    ]
diff --git a/program/models.py b/program/models.py
index 8053aebd..e6cd1ebc 100644
--- a/program/models.py
+++ b/program/models.py
@@ -116,7 +116,7 @@ class Language(models.Model):
 class Image(models.Model):
     alt_text = models.TextField(blank=True, default="")
     credits = models.TextField(blank=True, default="")
-    height = models.PositiveIntegerField(blank=True, null=True, editable=False)
+    height = models.PositiveIntegerField(blank=True, null=True)
     image = VersatileImageField(
         blank=True,
         height_field="height",
@@ -127,7 +127,7 @@ class Image(models.Model):
     )
     owner = models.CharField(max_length=150)
     ppoi = PPOIField()
-    width = models.PositiveIntegerField(blank=True, null=True, editable=False)
+    width = models.PositiveIntegerField(blank=True, null=True)
 
     def save(self, *args, **kwargs):
         super().save(*args, **kwargs)
@@ -207,11 +207,7 @@ class Show(models.Model):
     description = models.TextField(blank=True)
     email = models.EmailField(blank=True, null=True)
     funding_category = models.ForeignKey(
-        FundingCategory,
-        null=True,
-        on_delete=models.CASCADE,
-        blank=True,
-        related_name="shows",
+        FundingCategory, blank=True, null=True, on_delete=models.CASCADE, related_name="shows"
     )
     hosts = models.ManyToManyField(Host, blank=True, related_name="shows")
     image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE, related_name="shows")
@@ -221,21 +217,13 @@ class Show(models.Model):
     language = models.ManyToManyField(Language, blank=True, related_name="shows")
     # TODO: is this really necessary?
     logo = models.ForeignKey(
-        Image,
-        blank=True,
-        null=True,
-        on_delete=models.CASCADE,
-        related_name="logo_shows",
+        Image, blank=True, null=True, on_delete=models.CASCADE, related_name="logo_shows"
     )
     music_focus = models.ManyToManyField(MusicFocus, blank=True, related_name="shows")
     name = models.CharField(max_length=255)
     owners = models.ManyToManyField(User, blank=True, related_name="shows")
     predecessor = models.ForeignKey(
-        "self",
-        blank=True,
-        null=True,
-        on_delete=models.CASCADE,
-        related_name="successors",
+        "self", blank=True, null=True, on_delete=models.CASCADE, related_name="successors"
     )
     short_description = models.TextField()
     slug = models.CharField(max_length=255, unique=True)
@@ -350,16 +338,13 @@ class Schedule(models.Model):
     )
     last_date = models.DateField(help_text="End date of schedule.", null=True)
     rrule = models.ForeignKey(
-        RRule,
-        on_delete=models.CASCADE,
-        related_name="schedules",
-        help_text="A recurrence rule.",
+        RRule, help_text="A recurrence rule.", on_delete=models.CASCADE, related_name="schedules"
     )
     show = models.ForeignKey(
         Show,
+        help_text="Show the schedule belongs to.",
         on_delete=models.CASCADE,
         related_name="schedules",
-        help_text="Show the schedule belongs to.",
     )
     start_time = models.TimeField(help_text="Start time of schedule.")
 
@@ -403,19 +388,13 @@ class TimeSlotManager(models.Manager):
 class TimeSlot(models.Model):
     end = models.DateTimeField()
     memo = models.TextField(blank=True)
-    note_id = models.IntegerField(null=True, editable=False)
+    note_id = models.IntegerField(null=True)
     playlist_id = models.IntegerField(null=True)
     repetition_of = models.ForeignKey(
-        "self",
-        blank=True,
-        null=True,
-        on_delete=models.CASCADE,
-        related_name="repetitions",
+        "self", blank=True, null=True, on_delete=models.CASCADE, related_name="repetitions"
     )
     schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE, related_name="timeslots")
-    show = models.ForeignKey(
-        Show, editable=False, on_delete=models.CASCADE, related_name="timeslots"
-    )
+    show = models.ForeignKey(Show, on_delete=models.CASCADE, related_name="timeslots")
     start = models.DateTimeField()
 
     objects = TimeSlotManager()
@@ -460,13 +439,7 @@ class Note(models.Model):
     created_at = models.DateTimeField(auto_now_add=True)
     created_by = models.CharField(max_length=150)
     image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE, related_name="notes")
-    owner = models.ForeignKey(
-        User,
-        editable=False,
-        on_delete=models.CASCADE,
-        related_name="notes",
-        default=1,
-    )
+    owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name="notes", default=1)
     playlist = models.TextField(blank=True)
     slug = models.SlugField(max_length=32, unique=True)
     summary = models.TextField(blank=True)
@@ -501,12 +474,7 @@ class UserProfile(models.Model):
     created_by = models.CharField(max_length=150)
     updated_at = models.DateTimeField(auto_now=True, blank=True, null=True)
     updated_by = models.CharField(blank=True, default="", max_length=150)
-    user = models.OneToOneField(
-        User,
-        on_delete=models.CASCADE,
-        related_name="profile",
-        editable=False,
-    )
+    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
 
     def __str__(self):
         return self.user.username
-- 
GitLab