From 23d813560e2778d774523ecafafbf32beadee421 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?=
 <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de>
Date: Sat, 16 Jan 2021 20:18:21 +0100
Subject: [PATCH] AKModel: Improve AK Slot time helper methods

Use more pythonic way to calculate times and construct strings
---
 AKModel/models.py | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/AKModel/models.py b/AKModel/models.py
index a6254aaa..6163677c 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -341,9 +341,8 @@ class AKSlot(models.Model):
         """
         Display duration of slot in format hours:minutes, e.g. 1.5 -> "1:30"
         """
-        hours = int(self.duration)
-        minutes = (self.duration * 60) % 60
-        return '%d:%02d' % (hours, minutes)
+        hours, minutes = divmod(self.duration * 60, 60)
+        return f"{hours}:{minutes:2.0f}"
 
     @property
     def start_simplified(self):
@@ -361,13 +360,11 @@ class AKSlot(models.Model):
         """
         if self.start is None:
             return _("Not scheduled yet")
-        result = self.start.astimezone(self.event.timezone).strftime('%a %H:%M')
-        result += ' - '
-        if self.start.astimezone(self.event.timezone).day == self.end.astimezone(self.event.timezone).day:
-            result += self.end.astimezone(self.event.timezone).strftime('%H:%M')
-        else:
-            result += self.end.astimezone(self.event.timezone).strftime('%a %H:%M')
-        return result
+
+        start = self.start.astimezone(self.event.timezone)
+        end = self.end.astimezone(self.event.timezone)
+
+        return f"{start.strftime('%a %H:%M')} - {end.strftime('%H:%M') if start.day == end.day else end.strftime('%a %H:%M')}"
 
     @property
     def end(self):
-- 
GitLab