diff --git a/AKModel/admin.py b/AKModel/admin.py index 53d995823fbc95e53bb9d045b5501304b9ed9d8c..bcfb719c051a8a77978cae87e220787ab31fb72b 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 +from AKModel.models import Event, AKOwner, AKType, AKTrack, AKTag, AKRequirement, AK, Room admin.site.register(Event) @@ -13,3 +13,4 @@ admin.site.register(AKTrack) admin.site.register(AKTag) admin.site.register(AKRequirement) admin.site.register(AK) +admin.site.register(Room) diff --git a/AKModel/models.py b/AKModel/models.py index a46a4aeccad8008f0c2fb927a0f6c393a75af293..372ad917f0984a6d0d8497cb606c0cd644cad30c 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -117,3 +117,23 @@ class AK(models.Model): class Meta: verbose_name = 'AK' verbose_name_plural = 'AKs' + + +class Room(models.Model): + """ A room describes where an AK can be held. + """ + name = models.CharField(max_length=64, verbose_name='Name', help_text='Name or number of the room') + building = models.CharField(max_length=256, verbose_name='Building', help_text='Name or number of the building') + capacity = models.IntegerField(verbose_name='Capacity', help_text='Maximum number of people') + properties = models.ManyToManyField(to=AKRequirement, verbose_name='Properties', + help_text='AK requirements fulfilled by the room') + + # TODO model availability + + event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event') + + class Meta: + verbose_name = 'Room' + verbose_name_plural = 'Rooms' + ordering = ['building', 'name'] + unique_together = [['name', 'building']]