From cfe24e346ff88c206625ab8b4825cb34dc8ae7d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz>
Date: Sat, 2 Jan 2021 18:15:16 +0100
Subject: [PATCH] =?UTF-8?q?N=C3=A1zvy=20rol=C3=AD=20p=C5=99esunuty=20do=20?=
 =?UTF-8?q?mo/db.py?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Aby je šlo používat z db package (jinak by byl problém s cyklickou závislostí).
---
 mo/db.py     | 22 ++++++++++++++++++++++
 mo/rights.py | 10 +++++-----
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/mo/db.py b/mo/db.py
index c9db14e8..429be62a 100644
--- a/mo/db.py
+++ b/mo/db.py
@@ -285,6 +285,14 @@ class RoleType(MOEnum):
     opravovatel = auto()
 
 
+role_type_names = {
+    RoleType.garant: 'celostátní garant',
+    RoleType.garant_kraj: 'krajský garant',
+    RoleType.garant_okres: 'okresní garant',
+    RoleType.dozor: 'dozor',
+    RoleType.opravovatel: 'opravovatel',
+}
+
 class UserRole(Base):
     __tablename__ = 'user_roles'
 
@@ -302,6 +310,20 @@ class UserRole(Base):
     assigned_by_user = relationship('User', primaryjoin='UserRole.assigned_by == User.user_id')
     place = relationship('Place')
 
+    def __str__(self):
+        parts = [role_type_names[self.role]]
+        if self.seq:
+            parts.append(f"{self.seq}. kola")
+        if self.year:
+            parts.append(f"{self.year}. ročníku")
+        if self.category:
+            parts.append(f"kategorie {self.category}")
+        parts.append("pro")
+        parts.append(self.place.type_name())
+        parts.append(self.place.name)
+
+        return " ".join(parts)
+
 
 class PaperType(MOEnum):
     solution = auto()
diff --git a/mo/rights.py b/mo/rights.py
index 1d4c6ac5..e8257dd1 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -32,7 +32,7 @@ class Role:
 roles: List[Role] = [
     Role(
         role=db.RoleType.garant,
-        name='celostátní garant',
+        name=db.role_type_names[db.RoleType.garant],
         rights={
             Right.assign_rights,
             Right.edit_place,
@@ -45,7 +45,7 @@ roles: List[Role] = [
     ),
     Role(
         role=db.RoleType.garant_kraj,
-        name='krajský garant',
+        name=db.role_type_names[db.RoleType.garant_kraj],
         rights={
             Right.assign_rights,
             Right.edit_place,
@@ -58,7 +58,7 @@ roles: List[Role] = [
     ),
     Role(
         role=db.RoleType.garant_okres,
-        name='okresní garant',
+        name=db.role_type_names[db.RoleType.garant_okres],
         rights={
             Right.assign_rights,
             Right.edit_place,
@@ -69,7 +69,7 @@ roles: List[Role] = [
     ),
     Role(
         role=db.RoleType.dozor,
-        name='dozor',
+        name=db.role_type_names[db.RoleType.dozor],
         rights={
             Right.upload_solutions,
             Right.add_users,
@@ -77,7 +77,7 @@ roles: List[Role] = [
     ),
     Role(
         role=db.RoleType.opravovatel,
-        name='opravovatel',
+        name=db.role_type_names[db.RoleType.opravovatel],
         rights={
             Right.upload_feedback,
             Right.edit_points,
-- 
GitLab