From ff9a4c1d0afdaeb0df3bd19dc568d70293d099cc Mon Sep 17 00:00:00 2001
From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de>
Date: Fri, 18 Oct 2019 13:12:48 +0200
Subject: [PATCH] change type to category consistently

avoid clashes with python keyword
---
 AKModel/admin.py                              |   6 +-
 AKModel/availability.py                       |  23 +-
 AKModel/locale/de_DE/LC_MESSAGES/django.po    | 207 +++++++++---------
 .../migrations/0013_aktype_to_akcategory.py   |  50 +++++
 AKModel/models.py                             |  13 +-
 .../locale/de_DE/LC_MESSAGES/django.po        |  13 +-
 .../templates/AKSubmission/ak_detail.html     |   7 +-
 .../templates/AKSubmission/ak_list.html       |   9 +-
 .../templates/AKSubmission/ak_list_table.html |  11 +-
 AKSubmission/urls.py                          |   2 +-
 AKSubmission/views.py                         |  25 +--
 11 files changed, 224 insertions(+), 142 deletions(-)
 create mode 100644 AKModel/migrations/0013_aktype_to_akcategory.py

diff --git a/AKModel/admin.py b/AKModel/admin.py
index 120ac012..cf7dc6bb 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -3,13 +3,13 @@
 from django.contrib import admin
 
 from AKModel.availability import Availability
-from AKModel.models import Event, AKOwner, AKType, AKTrack, AKTag, AKRequirement, AK, Room, AKSlot
+from AKModel.models import Event, AKOwner, AKCategory, AKTrack, AKTag, AKRequirement, AK, Room, AKSlot
 
 admin.site.register(Event)
 
 admin.site.register(AKOwner)
 
-admin.site.register(AKType)
+admin.site.register(AKCategory)
 admin.site.register(AKTrack)
 admin.site.register(AKTag)
 admin.site.register(AKRequirement)
@@ -17,7 +17,7 @@ admin.site.register(AKRequirement)
 
 class AKAdmin(admin.ModelAdmin):
     model = AK
-    list_display = ['name', 'short_name', 'type', 'is_wish']
+    list_display = ['name', 'short_name', 'category', 'is_wish']
 
     def is_wish(self, obj):
         return obj.wish
diff --git a/AKModel/availability.py b/AKModel/availability.py
index 7afa2fb9..94f0402f 100644
--- a/AKModel/availability.py
+++ b/AKModel/availability.py
@@ -10,7 +10,7 @@ from django.db import models
 from django.utils.functional import cached_property
 from django.utils.translation import gettext_lazy as _
 
-from AKModel.models import Event, AKOwner, Room, AK, AKType
+from AKModel.models import Event, AKOwner, Room, AK, AKCategory
 
 zero_time = datetime.time(0, 0)
 
@@ -21,7 +21,7 @@ zero_time = datetime.time(0, 0)
 # remove serialization as requirements are not covered
 # add translation
 # add meta class
-# enable availabilites for AKs and AKTypes
+# enable availabilites for AKs and AKCategories
 # add verbose names and help texts to model attributes
 class Availability(models.Model):
     """The Availability class models when people or rooms are available for.
@@ -65,14 +65,14 @@ class Availability(models.Model):
         verbose_name=_('AK'),
         help_text=_('AK whose availability this is'),
     )
-    ak_type = models.ForeignKey(
-        to=AKType,
+    ak_category = models.ForeignKey(
+        to=AKCategory,
         related_name='availabilities',
         on_delete=models.CASCADE,
         null=True,
         blank=True,
-        verbose_name=_('AK Type'),
-        help_text=_('AK Type whose availability this is'),
+        verbose_name=_('AK Category'),
+        help_text=_('AK Category whose availability this is'),
     )
     start = models.DateTimeField()
     end = models.DateTimeField()
@@ -82,22 +82,23 @@ class Availability(models.Model):
         room = getattr(self.room, 'name', None)
         event = getattr(getattr(self, 'event', None), 'name', None)
         ak = getattr(self.ak, 'name', None)
-        ak_type = getattr(self.ak_type, 'name', None)
-        return f'Availability(event={event}, person={person}, room={room}, ak={ak}, ak type={ak_type})'
+        ak_category = getattr(self.ak_category, 'name', None)
+        return f'Availability(event={event}, person={person}, room={room}, ak={ak}, ak category={ak_category})'
 
     def __hash__(self):
-        return hash((getattr(self, 'event', None), self.person, self.room, self.ak, self.ak_type, self.start, self.end))
+        return hash(
+            (getattr(self, 'event', None), self.person, self.room, self.ak, self.ak_category, self.start, self.end))
 
     def __eq__(self, other: 'Availability') -> bool:
         """Comparisons like ``availability1 == availability2``.
 
-        Checks if ``event``, ``person``, ``room``, ``ak``, ``ak_type``, ``start`` and ``end``
+        Checks if ``event``, ``person``, ``room``, ``ak``, ``ak_category``, ``start`` and ``end``
         are the same.
         """
         return all(
             [
                 getattr(self, attribute, None) == getattr(other, attribute, None)
-                for attribute in ['event', 'person', 'room', 'ak', 'ak_type', 'start', 'end']
+                for attribute in ['event', 'person', 'room', 'ak', 'ak_category', 'start', 'end']
             ]
         )
 
diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po
index 10326e27..f56a611d 100644
--- a/AKModel/locale/de_DE/LC_MESSAGES/django.po
+++ b/AKModel/locale/de_DE/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-10-12 14:47+0000\n"
+"POT-Creation-Date: 2019-10-18 11:09+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -11,13 +11,13 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: availability.py:38 models.py:19 models.py:32 models.py:82 models.py:123
-#: models.py:141 models.py:161
+#: availability.py:38 models.py:20 models.py:40 models.py:104 models.py:150
+#: models.py:181 models.py:206
 msgid "Event"
 msgstr "Event"
 
-#: availability.py:39 models.py:33 models.py:83 models.py:124 models.py:142
-#: models.py:162
+#: availability.py:39 models.py:41 models.py:105 models.py:151 models.py:182
+#: models.py:207
 msgid "Associated event"
 msgstr "Zugehöriges Event"
 
@@ -29,7 +29,7 @@ msgstr "Person"
 msgid "Person whose availability this is"
 msgstr "Person deren Verfügbarkeit hier abgebildet wird"
 
-#: availability.py:56 models.py:145 models.py:155
+#: availability.py:56 models.py:185 models.py:200
 msgid "Room"
 msgstr "Raum"
 
@@ -37,7 +37,7 @@ msgstr "Raum"
 msgid "Room whose availability this is"
 msgstr "Raum dessen Verfügbarkeit hier abgebildet wird"
 
-#: availability.py:65 models.py:127 models.py:154
+#: availability.py:65 models.py:154 models.py:199
 msgid "AK"
 msgstr "AK"
 
@@ -47,13 +47,13 @@ msgstr "AK"
 msgid "AK whose availability this is"
 msgstr "Verfügbarkeiten"
 
-#: availability.py:74 models.py:49
-msgid "AK Type"
-msgstr "AK Typ"
+#: availability.py:74 models.py:62
+msgid "AK Category"
+msgstr "AK Kategorie"
 
 #: availability.py:75
-msgid "AK Type whose availability this is"
-msgstr "AK Typ dessen Verfügbarkeit hier abgebildet wird"
+msgid "AK Category whose availability this is"
+msgstr "AK Kategorie dessen Verfügbarkeit hier abgebildet wird"
 
 #: availability.py:234
 msgid "Availability"
@@ -63,311 +63,322 @@ msgstr "Verfügbarkeit"
 msgid "Availabilities"
 msgstr "Verfügbarkeiten"
 
-#: models.py:10 models.py:45 models.py:57 models.py:69 models.py:80
-#: models.py:94 models.py:134
+#: models.py:9 models.py:58 models.py:73 models.py:88 models.py:102
+#: models.py:119 models.py:174
 msgid "Name"
 msgstr "Name"
 
-#: models.py:11
+#: models.py:10
 msgid "Name or iteration of the event"
 msgstr "Name oder Iteration des Events"
 
+#: models.py:11
+#, fuzzy
+#| msgid "Short Name"
+msgid "Short Form"
+msgstr "Kurzer Name"
+
 #: models.py:12
+msgid "Short name of letters/numbers/dots/dashes/underscores used in URLs."
+msgstr ""
+
+#: models.py:13
 msgid "Start"
 msgstr "Start"
 
-#: models.py:12
+#: models.py:13
 msgid "Time the event begins"
 msgstr "Zeit zu der das Event beginnt"
 
-#: models.py:13
+#: models.py:14
 msgid "End"
 msgstr "Ende"
 
-#: models.py:13
+#: models.py:14
 msgid "Time the event ends"
 msgstr "Zeit zu der das Event endet"
 
-#: models.py:14
+#: models.py:15
 msgid "Place"
 msgstr "Ort"
 
-#: models.py:15
+#: models.py:16
 msgid "City etc. the event takes place in"
 msgstr "Stadt o.ä. in der das Event stattfindet"
 
-#: models.py:16
+#: models.py:17
 msgid "Active State"
 msgstr "Aktiver Status"
 
-#: models.py:16
+#: models.py:17
 msgid "Marks currently active events"
 msgstr "Markiert aktuell aktive Events"
 
-#: models.py:20
+#: models.py:21
 msgid "Events"
 msgstr "Events"
 
-#: models.py:27
+#: models.py:35
 msgid "Nickname"
 msgstr "Spitzname"
 
-#: models.py:27
+#: models.py:35
 msgid "Name to identify an AK owner by"
 msgstr "Name durch den eine AK Leitung identifiziert wird"
 
-#: models.py:28
+#: models.py:36
 msgid "E-Mail Address"
 msgstr "E-Mail Adresse"
 
-#: models.py:28
+#: models.py:36
 msgid "Contact mail"
 msgstr "Kontakt E-Mail"
 
-#: models.py:29
+#: models.py:37
 msgid "Institution"
 msgstr "Instutution"
 
-#: models.py:29
+#: models.py:37
 msgid "Uni etc."
 msgstr "Universität o.ä."
 
-#: models.py:30 models.py:102
+#: models.py:38 models.py:128
 msgid "Web Link"
 msgstr "Internet Link"
 
-#: models.py:30
+#: models.py:38
 msgid "Link to Homepage"
 msgstr "Link zu Homepage oder Webseite"
 
-#: models.py:36
+#: models.py:44
 msgid "AK Owner"
 msgstr "AK Leitung"
 
-#: models.py:37
+#: models.py:45
 msgid "AK Owners"
 msgstr "AK Leitungen"
 
-#: models.py:45
-msgid "Name of the AK Type"
-msgstr "Name des AK Typs"
+#: models.py:58
+msgid "Name of the AK Category"
+msgstr "Name des AK Kategorie"
 
-#: models.py:46 models.py:58
+#: models.py:59 models.py:74
 msgid "Color"
 msgstr "Farbe"
 
-#: models.py:46 models.py:58
+#: models.py:59 models.py:74
 msgid "Color for displaying"
 msgstr "Farbe für die Anzeige"
 
-#: models.py:50
-msgid "AK Types"
-msgstr "AK Typen"
+#: models.py:63
+msgid "AK Categories"
+msgstr "AK Kategorien"
 
-#: models.py:57
+#: models.py:73
 msgid "Name of the AK Track"
 msgstr "Name des AK Tracks"
 
-#: models.py:61
+#: models.py:77
 msgid "AK Track"
 msgstr "AK Track"
 
-#: models.py:62
+#: models.py:78
 msgid "AK Tracks"
 msgstr "AK Tracks"
 
-#: models.py:69
+#: models.py:88
 msgid "Name of the AK Tag"
 msgstr "Name das AK Tags"
 
-#: models.py:72
+#: models.py:91
 msgid "AK Tag"
 msgstr "AK Tag"
 
-#: models.py:73
+#: models.py:92
 msgid "AK Tags"
 msgstr "AK Tags"
 
-#: models.py:80
+#: models.py:102
 msgid "Name of the Requirement"
 msgstr "Name der Anforderung"
 
-#: models.py:86
+#: models.py:108
 msgid "AK Requirement"
 msgstr "AK Anforderung"
 
-#: models.py:87
+#: models.py:109
 msgid "AK Requirements"
 msgstr "AK Anforderungen"
 
-#: models.py:94
+#: models.py:119
 msgid "Name of the AK"
 msgstr "Name des AKs"
 
-#: models.py:95
+#: models.py:120
 msgid "Short Name"
 msgstr "Kurzer Name"
 
-#: models.py:96
+#: models.py:121
 msgid "Name displayed in the schedule"
 msgstr "Name zur Anzeige im AK Plan"
 
-#: models.py:97
+#: models.py:122
 msgid "Description"
 msgstr "Beschreibung"
 
-#: models.py:97
+#: models.py:122
 msgid "Description of the AK"
 msgstr "Beschreibung des AKs"
 
-#: models.py:99
+#: models.py:124
 msgid "Owners"
 msgstr "Leitungen"
 
-#: models.py:99
+#: models.py:125
 msgid "Those organizing the AK"
 msgstr "Menschen, die den AK organisieren und halten"
 
-#: models.py:102
+#: models.py:128
 msgid "Link to wiki page"
 msgstr "Link zur Wiki Seite"
 
-#: models.py:104
-msgid "Type"
-msgstr "Typ"
+#: models.py:130
+msgid "Category"
+msgstr "Kategorie"
 
-#: models.py:104
-msgid "Type of the AK"
-msgstr "Typ des AKs"
+#: models.py:131
+msgid "Category of the AK"
+msgstr "Kategorie des AKs"
 
-#: models.py:105
+#: models.py:132
 msgid "Tags"
 msgstr "Tags"
 
-#: models.py:105
+#: models.py:132
 msgid "Tags provided by owners"
 msgstr "Tags, die durch die AK Leitung vergeben wurden"
 
-#: models.py:106
+#: models.py:133
 msgid "Track"
 msgstr "Track"
 
-#: models.py:107
+#: models.py:134
 msgid "Track the AK belongs to"
 msgstr "Track zu dem der AK gehört"
 
-#: models.py:109
+#: models.py:136
 msgid "Resolution Intention"
 msgstr "Resolutionsabsicht"
 
-#: models.py:110
+#: models.py:137
 msgid "Intends to submit a resolution"
 msgstr "Beabsichtigt eine Resolution einzureichen"
 
-#: models.py:111
+#: models.py:138
 msgid "Requirements"
 msgstr "Anforderungen"
 
-#: models.py:112
+#: models.py:139
 msgid "AK's Requirements"
 msgstr "Anforderungen des AKs"
 
-#: models.py:114
+#: models.py:141
 msgid "Conflicting AKs"
 msgstr "AK Konflikte"
 
-#: models.py:115
+#: models.py:142
 msgid "AKs that conflict and thus must not take place at the same time"
-msgstr "AKs, die Konflikte haben und deshalb nicht gleichzeitig stattfinden dürfen"
+msgstr ""
+"AKs, die Konflikte haben und deshalb nicht gleichzeitig stattfinden dürfen"
 
-#: models.py:116
+#: models.py:143
 msgid "Prerequisite AKs"
 msgstr "Vorausgesetzte AKs"
 
-#: models.py:117
+#: models.py:144
 msgid "AKs that should precede this AK in the schedule"
 msgstr "AKS die im AK Plan vor diesem AK stattfinden müssen"
 
-#: models.py:119
+#: models.py:146
 msgid "Internal Notes"
 msgstr "Interne Notizen"
 
-#: models.py:119
+#: models.py:146
 msgid "Notes to organizers"
 msgstr "Notizen an die Organisator*innen"
 
-#: models.py:121
+#: models.py:148
 msgid "Interest"
 msgstr "Interesse"
 
-#: models.py:121
+#: models.py:148
 msgid "Expected number of people"
 msgstr "Erwartete Personenzahl"
 
-#: models.py:128
+#: models.py:155
 msgid "AKs"
 msgstr "AKs"
 
-#: models.py:134
+#: models.py:174
 msgid "Name or number of the room"
 msgstr "Name oder Nummer des Raums"
 
-#: models.py:135
+#: models.py:175
 msgid "Building"
 msgstr "Gebäude"
 
-#: models.py:136
+#: models.py:176
 msgid "Name or number of the building"
 msgstr "Name oder Nummer des Gebäudes"
 
-#: models.py:137
+#: models.py:177
 msgid "Capacity"
 msgstr "Kapazität"
 
-#: models.py:137
+#: models.py:177
 msgid "Maximum number of people"
 msgstr "Maximale Personenzahl"
 
-#: models.py:138
+#: models.py:178
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: models.py:139
+#: models.py:179
 msgid "AK requirements fulfilled by the room"
 msgstr "AK Anforderungen, die dieser Raum erfüllt"
 
-#: models.py:146
+#: models.py:186
 msgid "Rooms"
 msgstr "Räume"
 
-#: models.py:154
+#: models.py:199
 msgid "AK being mapped"
 msgstr "AK, der zugeordnet wird"
 
-#: models.py:156
+#: models.py:201
 msgid "Room the AK will take place in"
 msgstr "Raum in dem der AK stattfindet"
 
-#: models.py:157
+#: models.py:202
 msgid "Slot Begin"
 msgstr "Beginn des Slots"
 
-#: models.py:157
+#: models.py:202
 msgid "Time and date the slot begins"
 msgstr "Zeit und Datum zu der der AK beginnt"
 
-#: models.py:158
+#: models.py:203
 msgid "Duration"
 msgstr "Dauer"
 
-#: models.py:159
+#: models.py:204
 msgid "Length in hours"
 msgstr "Länge in Stunden"
 
-#: models.py:165
+#: models.py:210
 msgid "AK Slot"
 msgstr "AK Slot"
 
-#: models.py:166
+#: models.py:211
 msgid "AK Slots"
 msgstr "AK Slot"
diff --git a/AKModel/migrations/0013_aktype_to_akcategory.py b/AKModel/migrations/0013_aktype_to_akcategory.py
new file mode 100644
index 00000000..b3c4b204
--- /dev/null
+++ b/AKModel/migrations/0013_aktype_to_akcategory.py
@@ -0,0 +1,50 @@
+# Generated by Django 2.2.6 on 2019-10-18 10:12
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('AKModel', '0012_ak_wish'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='ak',
+            name='type',
+            field=models.IntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='ak_type',
+            field=models.IntegerField(),
+        ),
+        migrations.RenameModel(
+            old_name='AKType',
+            new_name='AKCategory',
+        ),
+        migrations.RenameField(
+            model_name='ak',
+            old_name='type',
+            new_name='category',
+        ),
+        migrations.RenameField(
+            model_name='availability',
+            old_name='ak_type',
+            new_name='ak_category',
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='category',
+            field=models.ForeignKey(help_text='Category of the AK', on_delete=django.db.models.deletion.PROTECT,
+                                    to='AKModel.AKCategory', verbose_name='Category'),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='ak_category',
+            field=models.ForeignKey(blank=True, help_text='AK Category whose availability this is', null=True,
+                                    on_delete=django.db.models.deletion.CASCADE, related_name='availabilities',
+                                    to='AKModel.AKCategory', verbose_name='AK Category'),
+        ),
+    ]
diff --git a/AKModel/models.py b/AKModel/models.py
index c6f3bf4c..b0dd5610 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -52,15 +52,15 @@ class AKOwner(models.Model):
         return self.name
 
 
-class AKType(models.Model):
-    """ An AKType describes the characteristics of an AK, e.g. content vs. recreational.
+class AKCategory(models.Model):
+    """ An AKCategory describes the characteristics of an AK, e.g. content vs. recreational.
     """
-    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Type'))
+    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Category'))
     color = models.CharField(max_length=7, blank=True, verbose_name=_('Color'), help_text=_('Color for displaying'))
 
     class Meta:
-        verbose_name = _('AK Type')
-        verbose_name_plural = _('AK Types')
+        verbose_name = _('AK Category')
+        verbose_name_plural = _('AK Categories')
         ordering = ['name']
 
     def __str__(self):
@@ -127,7 +127,8 @@ class AK(models.Model):
     # TODO generate automatically
     link = models.URLField(blank=True, verbose_name=_('Web Link'), help_text=_('Link to wiki page'))
 
-    type = models.ForeignKey(to=AKType, on_delete=models.PROTECT, verbose_name=_('Type'), help_text=_('Type of the AK'))
+    category = models.ForeignKey(to=AKCategory, on_delete=models.PROTECT, verbose_name=_('Category'),
+                                 help_text=_('Category of the AK'))
     tags = models.ManyToManyField(to=AKTag, blank=True, verbose_name=_('Tags'), help_text=_('Tags provided by owners'))
     track = models.ForeignKey(to=AKTrack, blank=True, on_delete=models.SET_NULL, null=True, verbose_name=_('Track'),
                               help_text=_('Track the AK belongs to'))
diff --git a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
index b89bab64..f314d96f 100644
--- a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
+++ b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-10-17 23:30+0000\n"
+"POT-Creation-Date: 2019-10-18 11:09+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -35,10 +35,11 @@ msgstr "Wer?"
 
 #: templates/AKSubmission/ak_detail.html:29
 #: templates/AKSubmission/ak_list_table.html:6
-msgid "Type"
-msgstr "Typ"
+msgid "Category"
+msgstr "Kategorie"
 
 #: templates/AKSubmission/ak_detail.html:31
+#: templates/AKSubmission/ak_list.html:25
 #: templates/AKSubmission/ak_list_table.html:6
 msgid "Tags"
 msgstr "Tags"
@@ -63,6 +64,12 @@ msgstr "Raum"
 msgid "AKs"
 msgstr "AKs"
 
+#: templates/AKSubmission/ak_list.html:18
+#, fuzzy
+#| msgid "Category"
+msgid "Categories"
+msgstr "Kategorie"
+
 #: templates/AKSubmission/ak_list_table.html:6
 msgid "Name"
 msgstr "Name"
diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html
index 3180e1fc..d5a58cbf 100644
--- a/AKSubmission/templates/AKSubmission/ak_detail.html
+++ b/AKSubmission/templates/AKSubmission/ak_detail.html
@@ -26,7 +26,12 @@
 
     <table class="table table-borderless">
         <tr><td>{% trans "Who?" %}</td><td>{{ ak.owners_list }}</td></tr>
-        <tr><td>{% trans "Type" %}</td><td><a href="{% url 'submit:ak_list_by_type' event_slug=ak.event.slug type_pk=ak.type.pk %}"><span class="badge badge-primary">{{ ak.type }}</span></a></td></tr>
+        <tr>
+            <td>{% trans 'Category' %}</td>
+            <td>
+                <a href="{% url 'submit:ak_list_by_category' event_slug=ak.event.slug category_pk=ak.category.pk %}"><span
+                        class="badge badge-primary">{{ ak.category }}</span></a></td>
+        </tr>
         <tr>
             <td>{% trans "Tags" %}</td>
             <td>
diff --git a/AKSubmission/templates/AKSubmission/ak_list.html b/AKSubmission/templates/AKSubmission/ak_list.html
index ac86f6d4..7a70d924 100644
--- a/AKSubmission/templates/AKSubmission/ak_list.html
+++ b/AKSubmission/templates/AKSubmission/ak_list.html
@@ -15,14 +15,15 @@
 {% block content %}
     <h1>{{ event.name }}: {% trans "AK Submission" %}</h1>
 
-    <b>Types:</b>
-    {% for type in types %}
-        <a href="{% url 'submit:ak_list_by_type' event_slug=event.slug type_pk=type.pk %}"><span class="badge badge-primary">{{ type }}</span></a>
+    <b>{% trans 'Categories' %}:</b>
+    {% for category in categories %}
+        <a href="{% url 'submit:ak_list_by_category' event_slug=event.slug category_pk=category.pk %}"><span
+                class="badge badge-primary">{{ category }}</span></a>
     {% endfor %}
 
     <br><br>
 
-    <b>Tags:</b>
+    <b>{% trans 'Tags' %}:</b>
     {% for tag in tags.all %}
         <a href="{% url 'submit:ak_list_by_tag' event_slug=event.slug tag_pk=tag.pk %}"><span class="badge badge-primary">{{ tag }}</span></a>
     {% endfor %}
diff --git a/AKSubmission/templates/AKSubmission/ak_list_table.html b/AKSubmission/templates/AKSubmission/ak_list_table.html
index b56d69bd..06b13a1b 100644
--- a/AKSubmission/templates/AKSubmission/ak_list_table.html
+++ b/AKSubmission/templates/AKSubmission/ak_list_table.html
@@ -3,7 +3,13 @@
 
 <table id="akTable" class="table table-striped">
   <thead>
-    <tr><th>{% trans "Name" %}</th><th>{% trans "Who?" %}</th><th>{% trans "Type" %}</th><th>{% trans "Tags" %}</th><th></th></tr>
+  <tr>
+      <th>{% trans "Name" %}</th>
+      <th>{% trans "Who?" %}</th>
+      <th>{% trans 'Category' %}</th>
+      <th>{% trans "Tags" %}</th>
+      <th></th>
+  </tr>
   </thead>
   <tbody>
     {% for ak in AKs %}
@@ -16,7 +22,8 @@
                 {% endif %}
             </td>
             <td>{{ ak.owners_list }}</td>
-            <td><a href="{% url 'submit:ak_list_by_type' event_slug=event.slug type_pk=ak.type.pk %}"><span class="badge badge-primary">{{ ak.type }}</span></a></td>
+            <td><a href="{% url 'submit:ak_list_by_category' event_slug=event.slug category_pk=ak.category.pk %}"><span
+                    class="badge badge-primary">{{ ak.category }}</span></a></td>
             <td>
                 {% for tag in ak.tags.all %}
                     <a href="{% url 'submit:ak_list_by_tag' event_slug=event.slug tag_pk=tag.pk %}"><span class="badge badge-info">{{ tag }}</span></a>
diff --git a/AKSubmission/urls.py b/AKSubmission/urls.py
index 5c5c9c5f..54092fb6 100644
--- a/AKSubmission/urls.py
+++ b/AKSubmission/urls.py
@@ -11,7 +11,7 @@ urlpatterns = [
             path('', views.SubmissionOverviewView.as_view(), name='submission_overview'),
             path('ak/<int:pk>', views.AKDetailView.as_view(), name='ak_detail'),
             path('aks/', views.AKListView.as_view(), name='ak_list'),
-            path('aks/type/<int:type_pk>', views.AKListByTypeView.as_view(), name='ak_list_by_type'),
+            path('aks/category/<int:category_pk>', views.AKListByCategoryView.as_view(), name='ak_list_by_category'),
             path('aks/tag/<int:tag_pk>', views.AKListByTagView.as_view(), name='ak_list_by_tag'),
         ])
     ),
diff --git a/AKSubmission/views.py b/AKSubmission/views.py
index 08cf8ae2..66426e55 100644
--- a/AKSubmission/views.py
+++ b/AKSubmission/views.py
@@ -1,17 +1,16 @@
 from django.http import Http404
+from django.utils.translation import gettext_lazy as _
 from django.views.generic import ListView, DetailView
 
-from AKModel.models import AK, AKType, AKTag
+from AKModel.models import AK, AKCategory, AKTag
 from AKModel.views import FilterByEventSlugMixin
 
-from django.utils.translation import gettext_lazy as _
-
 
 class SubmissionOverviewView(FilterByEventSlugMixin, ListView):
     model = AK
     context_object_name = "AKs"
     template_name = "AKSubmission/submission_overview.html"
-    ordering = ["type"]
+    ordering = ['category']
 
 
 class AKDetailView(DetailView):
@@ -28,30 +27,30 @@ class AKListView(FilterByEventSlugMixin, ListView):
 
     def get_context_data(self, *, object_list=None, **kwargs):
         context = super().get_context_data(object_list=object_list, **kwargs)
-        context["types"] = AKType.objects.all()
+        context['categories'] = AKCategory.objects.all()
         context["tags"] = AKTag.objects.all()
         context["filter_condition_string"] = self.filter_condition_string
         return context
 
 
-class AKListByTypeView(AKListView):
-    type = None
+class AKListByCategoryView(AKListView):
+    category = None
 
     def get_queryset(self):
-        # Find type based on event slug
+        # Find category based on event slug
         try:
-            self.type = AKType.objects.get(pk=self.kwargs['type_pk'])
-            self.filter_condition_string = f"{_('Type')} = {self.type.name}"
-        except AKType.DoesNotExist:
+            self.category = AKCategory.objects.get(pk=self.kwargs['category_pk'])
+            self.filter_condition_string = f"{_('Category')} = {self.category.name}"
+        except AKCategory.DoesNotExist:
             raise Http404
-        return super().get_queryset().filter(type=self.type)
+        return super().get_queryset().filter(category=self.category)
 
 
 class AKListByTagView(AKListView):
     tag = None
 
     def get_queryset(self):
-        # Find type based on event slug
+        # Find category based on event slug
         try:
             self.tag = AKTag.objects.get(pk=self.kwargs['tag_pk'])
             self.filter_condition_string = f"{_('Tag')} = {self.tag.name}"
-- 
GitLab