diff --git a/forums/models.py b/forums/models.py
index ef03914f29c8739bffb8fd7794356079d19560cf..44117bd82e28064e78431d257b3fed90540a4119 100644
--- a/forums/models.py
+++ b/forums/models.py
@@ -63,7 +63,7 @@ class Forum(models.Model):
         ]
 
     def __str__(self):
-        return self.slug
+        return self.name
 
     def get_absolute_url(self):
         return reverse('forums:forum_detail', kwargs={'slug': self.slug})
@@ -129,17 +129,17 @@ class Meeting(Forum):
                                    self.date_until.strftime('%Y-%m-%d'))
 
     @property
-    def context_color(self):
-        """If meeting is future: primary; ongoing: green; voting: orange; finished: info."""
+    def context_colors(self):
+        """If meeting is future: primary; ongoing: success; voting: warning; finished: info."""
         today = datetime.date.today()
         if today < self.date_from:
-            return 'primary'
+            return {'bg': 'primary', 'text': 'white', 'message': 'Meeting is coming up'}
         elif today <= self.date_until:
-            return 'success'
+            return {'bg': 'success', 'text': 'light', 'message': 'Meeting is ongoing'}
         elif today < self.date_until + datetime.timedelta(days=8):
-            return 'warning'
+            return {'bg': 'warning', 'text': 'dark', 'message': 'Meeting is finished, voting open'}
         else:
-            return 'info'
+            return {'bg': 'info', 'text': 'dark', 'message': 'Meeting is finished'}
 
 
 class Post(models.Model):
diff --git a/forums/templates/forums/forum_list.html b/forums/templates/forums/forum_list.html
index f7806ccea9ef9d01e0e5cc724bacfd711fe1f96b..9df6817b4da90a9e83ba3aaccd67b787706bbf8b 100644
--- a/forums/templates/forums/forum_list.html
+++ b/forums/templates/forums/forum_list.html
@@ -28,11 +28,15 @@
     <div class="card-columns">
       {% for forum in object_list %}
       <div class="card">
-	<div class="card-header d-flex justify-content-between">
+	<div class="card-header">
 	  {% if forum.meeting %}
-	  <span class="badge badge-{{ forum.meeting.context_color }}">Meeting:</span>
+	  {% with context_colors=forum.meeting.context_colors %}
+	  <span class="badge badge-{{ context_colors.bg }} mx-0 mb-2 p-2 text-{{ context_colors.text }}">{{ context_colors.message }}</span>
+	  {% endwith %}
+	  <br/>
 	  {% endif %}
-	  <a href="{{ forum.get_absolute_url }}">{{ forum }}</a>
+	  <span class="d-flex justify-content-between">
+	    <a href="{{ forum.get_absolute_url }}">{{ forum|truncatechars:30 }}</a>
 	  <span class="badge badge-primary badge-pill">{{ forum.nr_posts }} post{{ forum.nr_posts|pluralize }}</span>
 	</div>
 	<div class="card-body">
diff --git a/forums/views.py b/forums/views.py
index 2607f47a45a77e46c0ac9b87d927b52ade5c8166..f1a88aa746089a42f4d69019447298bfa4bdb981 100644
--- a/forums/views.py
+++ b/forums/views.py
@@ -56,10 +56,20 @@ class MeetingCreateView(ForumCreateView):
 
 class ForumUpdateView(PermissionRequiredMixin, UpdateView):
     permission_required = 'forums.update_forum'
-    model = Forum
-    form_class = ForumForm
     template_name = 'forums/forum_form.html'
 
+    def get_object(self, queryset=None):
+        try:
+            return Meeting.objects.get(slug=self.kwargs['slug'])
+        except Meeting.DoesNotExist:
+            return Forum.objects.get(slug=self.kwargs['slug'])
+
+    def get_form(self, form_class=None):
+        try:
+            self.object.meeting
+            return MeetingForm(**self.get_form_kwargs())
+        except Meeting.DoesNotExist:
+            return ForumForm(**self.get_form_kwargs())
 
 class ForumDeleteView(PermissionRequiredMixin, DeleteView):
     permission_required = 'forums.delete_forum'