From 7cc7cc11095c8b8f8bc4a38d3e7a9bf70e1bda4b Mon Sep 17 00:00:00 2001
From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de>
Date: Fri, 18 Oct 2019 11:20:22 +0200
Subject: [PATCH] model AK wishes

allow AK owners to be empty
infer AK wish from empty owner list
show wish status in Admin overview
---
 AKModel/admin.py                   | 14 +++++++++++++-
 AKModel/migrations/0012_ak_wish.py | 18 ++++++++++++++++++
 AKModel/models.py                  |  7 ++++++-
 3 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 AKModel/migrations/0012_ak_wish.py

diff --git a/AKModel/admin.py b/AKModel/admin.py
index cd3c6cd5..120ac012 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -13,7 +13,19 @@ admin.site.register(AKType)
 admin.site.register(AKTrack)
 admin.site.register(AKTag)
 admin.site.register(AKRequirement)
-admin.site.register(AK)
+
+
+class AKAdmin(admin.ModelAdmin):
+    model = AK
+    list_display = ['name', 'short_name', 'type', 'is_wish']
+
+    def is_wish(self, obj):
+        return obj.wish
+
+    is_wish.boolean = True
+
+
+admin.site.register(AK, AKAdmin)
 
 admin.site.register(Room)
 
diff --git a/AKModel/migrations/0012_ak_wish.py b/AKModel/migrations/0012_ak_wish.py
new file mode 100644
index 00000000..fe28f956
--- /dev/null
+++ b/AKModel/migrations/0012_ak_wish.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.6 on 2019-10-18 09:00
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('AKModel', '0011_remove_null_event_slug_field'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='ak',
+            name='owners',
+            field=models.ManyToManyField(blank=True, help_text='Those organizing the AK', to='AKModel.AKOwner',
+                                         verbose_name='Owners'),
+        ),
+    ]
diff --git a/AKModel/models.py b/AKModel/models.py
index 0e86c742..c6f3bf4c 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -121,7 +121,8 @@ class AK(models.Model):
                                   help_text=_('Name displayed in the schedule'))
     description = models.TextField(blank=True, verbose_name=_('Description'), help_text=_('Description of the AK'))
 
-    owners = models.ManyToManyField(to=AKOwner, verbose_name=_('Owners'), help_text=_('Those organizing the AK'))
+    owners = models.ManyToManyField(to=AKOwner, blank=True, verbose_name=_('Owners'),
+                                    help_text=_('Those organizing the AK'))
 
     # TODO generate automatically
     link = models.URLField(blank=True, verbose_name=_('Web Link'), help_text=_('Link to wiki page'))
@@ -161,6 +162,10 @@ class AK(models.Model):
     def owners_list(self):
         return ", ".join(str(owner) for owner in self.owners.all())
 
+    @property
+    def wish(self):
+        return self.owners.count() == 0
+
 
 class Room(models.Model):
     """ A room describes where an AK can be held.
-- 
GitLab