diff --git a/dav_base/static/dav_base/css/local.css b/dav_base/static/dav_base/css/local.css
index b7362e3..90b1278 100644
--- a/dav_base/static/dav_base/css/local.css
+++ b/dav_base/static/dav_base/css/local.css
@@ -150,23 +150,51 @@ thead input {
}
/*
- * We need more label colors
+ * We need more text colors (for event stati)
+ */
+.text-dav-purple {
+ color: #866dac;
+}
+.text-dav-lime {
+ color: #859201;
+}
+.text-dav-cyan {
+ color: #54bbd9;
+}
+.text-dav-caramel {
+ color: #9c5b22;
+}
+.text-dav-mandarin {
+ color: #b43a12;
+}
+
+/*
+ * We need more label colors (for event stati)
*/
.label-black {
background-color: #333;
}
-.label-dav-brown {
- background-color: #925f36;
-}
.label-dav-purple {
background-color: #a694c2;
}
+.label-dav-lime {
+ background-color: #bccf07;
+}
.label-dav-cyan {
background-color: #86cfe4;
}
+.label-dav-caramel {
+ background-color: #ce792d;
+}
+.label-dav-mandarin {
+ background-color: #e84e1b;
+}
+.label-dav-brown {
+ background-color: #925f36;
+}
/*
- * We need more button colors
+ * We need more button colors (for event stati)
*/
.btn-black {
background-color: #333;
@@ -177,4 +205,54 @@ thead input {
background-color: #555;
border-color: #ccc;
color: #fff;
-}
\ No newline at end of file
+}
+.btn-dav-purple {
+ background-color: #a694c2;
+ border-color: #8067a8;
+ color: #fff;
+}
+.btn-dav-purple.focus, .btn-dav-purple:focus, .btn-dav-purple:hover {
+ background-color: #866dac;
+ border-color: #8067a8;
+ color: #fff;
+}
+.btn-dav-lime {
+ background-color: #bccf07;
+ border-color: #7c8801;
+ color: #fff;
+}
+.btn-dav-lime.focus, .btn-dav-lime:focus, .btn-dav-lime:hover {
+ background-color: #859201;
+ border-color: #7c8801;
+ color: #fff;
+}
+.btn-dav-cyan {
+ background-color: #86cfe4;
+ border-color: #4cb8d7;
+ color: #fff;
+}
+.btn-dav-cyan.focus, .btn-dav-cyan:focus, .btn-dav-cyan:hover {
+ background-color: #54bbd9;
+ border-color: #4cb8d7;
+ color: #fff;
+}
+.btn-dav-caramel {
+ background-color: #ce792d;
+ border-color: #935720;
+ color: #fff;
+}
+.btn-dav-caramel.focus, .btn-dav-caramel:focus, .btn-dav-caramel:hover {
+ background-color: #9c5b22;
+ border-color: #935720;
+ color: #fff;
+}
+.btn-dav-mandarin {
+ background-color: #e84e1b;
+ border-color: #aa3711;
+ color: #fff;
+}
+.btn-dav-mandarin.focus, .btn-dav-mandarin:focus, .btn-dav-mandarin:hover {
+ background-color: #b43a12;
+ border-color: #aa3711;
+ color: #fff;
+}
diff --git a/dav_event_office/templates/dav_event_office/event_detail.html b/dav_event_office/templates/dav_event_office/event_detail.html
index ef1402e..8ac5fdc 100644
--- a/dav_event_office/templates/dav_event_office/event_detail.html
+++ b/dav_event_office/templates/dav_event_office/event_detail.html
@@ -39,8 +39,10 @@
{% if not event.registration_required %}
{% trans 'Anmeldung nicht erforderlich' %}
- {% elif is_done %}
-
{% trans 'Veranstaltung beendet' %}
+ {% elif is_canceled %}
+
{% trans 'Veranstaltung abgesagt' %}
+ {% elif is_realized or is_expired %}
+
{% trans 'Veranstaltung beendet' %}
{% elif event.registration_closed %}
{% trans 'Anmeldung geschlossen' %}
{% elif event.is_deadline_expired %}
diff --git a/dav_event_office/templates/dav_event_office/event_list.html b/dav_event_office/templates/dav_event_office/event_list.html
index 4da5624..9e145f2 100644
--- a/dav_event_office/templates/dav_event_office/event_list.html
+++ b/dav_event_office/templates/dav_event_office/event_list.html
@@ -59,7 +59,7 @@
{{ event.get_numeric_date }}
|
-
+ |
{% render_event_status event %}
|
diff --git a/dav_events/emails.py b/dav_events/emails.py
index 79fdce3..0b852af 100644
--- a/dav_events/emails.py
+++ b/dav_events/emails.py
@@ -115,3 +115,19 @@ class EventRegistrationClosedMail(AbstractEventMail):
context = super(EventRegistrationClosedMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
return context
+
+
+class EventCanceledMail(AbstractEventMail):
+ _subject = u'Veranstaltung abgesagt'
+ _template_name = 'dav_events/emails/event_canceled.txt'
+
+ def __init__(self, editor=None, *args, **kwargs):
+ self._editor = editor
+ super(EventCanceledMail, self).__init__(*args, **kwargs)
+
+ def _get_context_data(self, extra_context=None):
+ context = super(EventCanceledMail, self)._get_context_data(extra_context=extra_context)
+ context['editor'] = self._editor
+ return context
+
+
diff --git a/dav_events/migrations/0041_auto_20210107_1220.py b/dav_events/migrations/0041_auto_20210107_1220.py
new file mode 100644
index 0000000..ac5b547
--- /dev/null
+++ b/dav_events/migrations/0041_auto_20210107_1220.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2021-01-07 11:20
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('dav_events', '0040_auto_20201216_1712'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='eventstatus',
+ name='bootstrap_context',
+ field=models.CharField(blank=True, choices=[('default', 'default'), ('primary', 'primary'), ('success', 'success'), ('info', 'info'), ('warning', 'warning'), ('danger', 'danger'), ('black', 'black'), ('dav-purple', 'dav-purple'), ('dav-lime', 'dav-lime'), ('dav-cyan', 'dav-cyan'), ('dav-caramel', 'dav-caramel'), ('dav-mandarin', 'dav-mandarin'), ('dav-brown', 'dav-brown')], max_length=20),
+ ),
+ ]
diff --git a/dav_events/models/eventstatus.py b/dav_events/models/eventstatus.py
index 90b255e..af7f5ce 100644
--- a/dav_events/models/eventstatus.py
+++ b/dav_events/models/eventstatus.py
@@ -13,6 +13,12 @@ BOOTSTRAP_CONTEXT_CHOICES = (
('warning', 'warning'),
('danger', 'danger'),
('black', 'black'),
+ ('dav-purple', 'dav-purple'),
+ ('dav-lime', 'dav-lime'),
+ ('dav-cyan', 'dav-cyan'),
+ ('dav-caramel', 'dav-caramel'),
+ ('dav-mandarin', 'dav-mandarin'),
+ ('dav-brown', 'dav-brown'),
)
diff --git a/dav_events/templates/dav_events/emails/event_canceled.txt b/dav_events/templates/dav_events/emails/event_canceled.txt
new file mode 100644
index 0000000..5e7423e
--- /dev/null
+++ b/dav_events/templates/dav_events/emails/event_canceled.txt
@@ -0,0 +1,14 @@
+Hallo {{ recipient.first_name }},
+
+{{ editor.get_full_name|default:'Jemand' }} hat die folgende Veranstaltung abgesagt:
+ {{ event }}
+
+Link zur Veranstaltung:
+ {{ base_url }}{{ event.get_absolute_url }}
+
+Ausschreibung:
+==============
+{{ event.render_as_text }}{% if internal_note %}
+Bearbeitungshinweis:
+====================
+{{ internal_note }}{% endif %}
\ No newline at end of file
diff --git a/dav_events/templates/dav_events/event_detail.html b/dav_events/templates/dav_events/event_detail.html
index 21ef44e..b2865d7 100644
--- a/dav_events/templates/dav_events/event_detail.html
+++ b/dav_events/templates/dav_events/event_detail.html
@@ -146,6 +146,28 @@
{% trans 'Veröffentlichung bestätigen' %}
{% endif %}
+ {% if has_permission_realize and is_started and not is_canceled %}
+
+ {% if is_realized %}
+ {% bootstrap_icon 'check' %}
+ {% else %}
+ {% bootstrap_icon 'unchecked' %}
+ {% endif %}
+ {% trans 'Durchgeführt' %}
+
+ {% endif %}
+ {% if has_permission_cancel and is_submitted and not is_realized %}
+
+ {% if is_canceled %}
+ {% bootstrap_icon 'check' %}
+ {% else %}
+ {% bootstrap_icon 'unchecked' %}
+ {% endif %}
+ {% trans 'Abgesagt' %}
+
+ {% endif %}
{% if has_permission_clear %}
diff --git a/dav_events/templates/dav_events/event_list.html b/dav_events/templates/dav_events/event_list.html
index 0d115e5..2716654 100644
--- a/dav_events/templates/dav_events/event_list.html
+++ b/dav_events/templates/dav_events/event_list.html
@@ -67,7 +67,7 @@
{{ event.get_numeric_date }}
|
-
+ |
{% render_event_status event %}
|
diff --git a/dav_events/templates/dav_events/event_registrations.html b/dav_events/templates/dav_events/event_registrations.html
index 531557e..9343c60 100644
--- a/dav_events/templates/dav_events/event_registrations.html
+++ b/dav_events/templates/dav_events/event_registrations.html
@@ -182,8 +182,10 @@
{% trans 'Anmeldestatus' %}:
{% if not event.registration_required %}
{% trans 'Anmeldung nicht erforderlich' %}
- {% elif is_done %}
-
{% trans 'Veranstaltung beendet' %}
+ {% elif is_canceled %}
+
{% trans 'Veranstaltung abgesagt' %}
+ {% elif is_realized or is_expired %}
+
{% trans 'Veranstaltung beendet' %}
{% elif event.registration_closed %}
{% trans 'Anmeldung geschlossen' %}
{% elif event.is_deadline_expired %}
diff --git a/dav_events/templates/dav_events/event_update_form.html b/dav_events/templates/dav_events/event_update_form.html
index 151b60c..7c72115 100644
--- a/dav_events/templates/dav_events/event_update_form.html
+++ b/dav_events/templates/dav_events/event_update_form.html
@@ -54,7 +54,17 @@