From 1bee2b3eeb3a606b18857304b02fc59e90c10c77 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Mon, 27 Jun 2022 19:56:19 +0200
Subject: [PATCH] Change icon choices of Group roles

---
 aleksis/apps/alsijil/models.py                             | 7 +++++++
 .../apps/alsijil/templates/alsijil/group_role/chip.html    | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index 16d6c7d3e..3b938941c 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -5,6 +5,7 @@ from urllib.parse import urlparse
 from django.db import models
 from django.db.models.constraints import CheckConstraint
 from django.db.models.query_utils import Q
+from django.urls import reverse
 from django.utils.formats import date_format
 from django.utils.translation import gettext_lazy as _
 
@@ -31,6 +32,7 @@ from aleksis.apps.alsijil.managers import (
 from aleksis.apps.chronos.managers import GroupPropertiesMixin
 from aleksis.apps.chronos.mixins import WeekRelatedMixin
 from aleksis.apps.chronos.models import Event, ExtraLesson, LessonPeriod, TimePeriod
+from aleksis.core.data_checks import field_validation_data_check_factory
 from aleksis.core.mixins import ExtensibleModel, GlobalPermissionModel
 from aleksis.core.models import SchoolTerm
 from aleksis.core.util.core_helpers import get_site_preferences
@@ -450,6 +452,8 @@ class ExtraMark(ExtensibleModel):
 
 
 class GroupRole(ExtensibleModel):
+    data_checks = [field_validation_data_check_factory("alsijil", "GroupRole", "icon")]
+
     objects = GroupRoleManager.from_queryset(GroupRoleQuerySet)()
 
     name = models.CharField(max_length=255, verbose_name=_("Name"))
@@ -467,6 +471,9 @@ class GroupRole(ExtensibleModel):
         ]
         permissions = (("assign_group_role", _("Can assign group role")),)
 
+    def get_absolute_url(self) -> str:
+        return reverse("edit_group_role", args=[self.id])
+
 
 class GroupRoleAssignment(GroupPropertiesMixin, ExtensibleModel):
     objects = GroupRoleAssignmentManager.from_queryset(GroupRoleAssignmentQuerySet)()
diff --git a/aleksis/apps/alsijil/templates/alsijil/group_role/chip.html b/aleksis/apps/alsijil/templates/alsijil/group_role/chip.html
index 530ffa05b..41e520302 100644
--- a/aleksis/apps/alsijil/templates/alsijil/group_role/chip.html
+++ b/aleksis/apps/alsijil/templates/alsijil/group_role/chip.html
@@ -1,7 +1,7 @@
 {# -*- engine:django -*- #}
 
 <div class="chip white-text" style="background-color: {{ role.colour|default:"black" }};">
-  <i class="material-icons left">{{ role.icon|default:"assignment_ind" }}</i>
+  <i class="material-icons iconify left" data-icon="mdi:{{ role.icon|default:"clipboard-account-outline" }}"></i>
   {{ role.name }}
   {% if small %}
     <small>({{ small }})</small>
-- 
GitLab