From 3919ab809eec39b69107b0eee92c48a667e6506a Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Wed, 20 Nov 2024 11:48:14 +0000
Subject: [PATCH] changed output format of SeminarCycleDate::toString,
 CourseDate::getFullName and CourseExDate::getFullName and made the output of
 CourseDateList::toHtml a list with invisible list items, fixes #4889

Closes #4889

Merge request studip/studip!3662
---
 lib/models/CourseDate.php            |  2 +-
 lib/models/CourseExDate.php          | 35 +++++++++++++++++++++-------
 lib/models/SeminarCycleDate.php      |  2 +-
 templates/dates/course_date_list.php |  2 +-
 4 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/lib/models/CourseDate.php b/lib/models/CourseDate.php
index f33332e2383..82dd692eed5 100644
--- a/lib/models/CourseDate.php
+++ b/lib/models/CourseDate.php
@@ -331,7 +331,7 @@ class CourseDate extends SimpleORMap implements PrivacyObject, Event
             $string = sprintf(
                 '%1$s, %2$s - %3$s',
                 $day_of_week,
-                date('d.m.Y H:i', $this->date),
+                date('d.m.y, H:i', $this->date),
                 $formatted_end
             );
         }
diff --git a/lib/models/CourseExDate.php b/lib/models/CourseExDate.php
index eb0f90a8e10..ec6e312d778 100644
--- a/lib/models/CourseExDate.php
+++ b/lib/models/CourseExDate.php
@@ -135,17 +135,36 @@ class CourseExDate extends SimpleORMap implements PrivacyObject, Event
             return '';
         }
 
-        $latter_template = $format === 'verbose'
-                         ? _('%R Uhr')
-                         : '%R';
-
         if (($this->end_time - $this->date) / 60 / 60 > 23) {
-            return strftime('%a., %x' . ' (' . _('ganztägig') . ')' , $this->date) . " (" . _("fällt aus") . ")";
+            $date_string = studip_interpolate(
+                $format === 'verbose'
+                    ? _('%{weekday}, %{date}, %{start} - %{end} Uhr (ganztägig, fällt aus)')
+                    : _('%{weekday}, %{date}, %{start} - %{end} (ganztägig, fällt aus)')
+                ,
+                [
+                    'weekday' => getWeekday(date('N', $this->date)),
+                    'date'    => date('d.m.y', $this->date),
+                    'start'   => date('H:i', $this->date),
+                    'end'     => date('H:i', $this->end_time),
+                ]
+            );
+            return $date_string;
         }
 
-        return strftime('%a., %x, %R', $this->date) . ' - '
-             . strftime($latter_template, $this->end_time)
-             . ' (' . _('fällt aus') . ')';
+        $date_string = studip_interpolate(
+            $format === 'verbose'
+                ? _('%{weekday}, %{date}, %{start} - %{end} Uhr (fällt aus)')
+                : _('%{weekday}, %{date}, %{start} - %{end} (fällt aus)')
+            ,
+            [
+                'weekday' => getWeekday(date('N', $this->date)),
+                'date'    => date('d.m.y', $this->date),
+                'start'   => date('H:i', $this->date),
+                'end'     => date('H:i', $this->end_time),
+            ]
+        );
+
+        return $date_string;
     }
 
     /**
diff --git a/lib/models/SeminarCycleDate.php b/lib/models/SeminarCycleDate.php
index 9a922e99360..74b0c78ed99 100644
--- a/lib/models/SeminarCycleDate.php
+++ b/lib/models/SeminarCycleDate.php
@@ -253,7 +253,7 @@ class SeminarCycleDate extends SimpleORMap
                 }
                 $first_date = $this->getFirstDate();
                 if ($first_date) {
-                    $parameters['start_date'] = date('d.m.Y', $first_date->date);
+                    $parameters['start_date'] = date('d.m.y', $first_date->date);
                 }
                 if ($room && $first_date) {
                     $text = _('%{weekday}, %{beginning} - %{end}, %{interval} (ab dem %{start_date} im Raum %{room_name})');
diff --git a/templates/dates/course_date_list.php b/templates/dates/course_date_list.php
index 4fbc34f025d..8fdcd6903ca 100644
--- a/templates/dates/course_date_list.php
+++ b/templates/dates/course_date_list.php
@@ -10,7 +10,7 @@
  */
 ?>
 <? if (!$collection->isEmpty()) : ?>
-    <ul>
+    <ul class="list-unstyled">
         <? foreach ($collection->getRegularDates() as $regular_date) : ?>
             <li><?= $regular_date->toString('long-start') ?></li>
         <? endforeach ?>
-- 
GitLab