From abcdf924e812d77082d062788805f0e7c27411da Mon Sep 17 00:00:00 2001
From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de>
Date: Fri, 11 Oct 2019 18:56:14 +0200
Subject: [PATCH] create and register AK Slot model

---
 AKModel/admin.py  |  5 ++++-
 AKModel/models.py | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/AKModel/admin.py b/AKModel/admin.py
index bcfb719c..a90b3ff2 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -2,7 +2,7 @@
 
 from django.contrib import admin
 
-from AKModel.models import Event, AKOwner, AKType, AKTrack, AKTag, AKRequirement, AK, Room
+from AKModel.models import Event, AKOwner, AKType, AKTrack, AKTag, AKRequirement, AK, Room, AKSlot
 
 admin.site.register(Event)
 
@@ -13,4 +13,7 @@ admin.site.register(AKTrack)
 admin.site.register(AKTag)
 admin.site.register(AKRequirement)
 admin.site.register(AK)
+
 admin.site.register(Room)
+
+admin.site.register(AKSlot)
diff --git a/AKModel/models.py b/AKModel/models.py
index 372ad917..8a89dbf8 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -137,3 +137,21 @@ class Room(models.Model):
         verbose_name_plural = 'Rooms'
         ordering = ['building', 'name']
         unique_together = [['name', 'building']]
+
+
+class AKSlot(models.Model):
+    """ An AK Mapping matches an AK to a room during a certain time.
+    """
+    ak = models.ForeignKey(to=AK, on_delete=models.CASCADE, verbose_name='AK', help_text='AK being mapped')
+    room = models.ForeignKey(to=Room, null=True, on_delete=models.SET_NULL, verbose_name='Room',
+                             help_text='Room the AK will take place in')
+    start = models.DateTimeField(verbose_name='Slot Begin', help_text='Time and date the slot begins')
+    duration = models.DecimalField(max_digits=4, decimal_places=2, default=2, verbose_name='Duration',
+                                   help_text='Length in hours')
+
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+
+    class Meta:
+        verbose_name = 'AK Slot'
+        verbose_name_plural = 'AK Slots'
+        ordering = ['start', 'room']
-- 
GitLab