diff --git a/AKDashboard/locale/de_DE/LC_MESSAGES/django.po b/AKDashboard/locale/de_DE/LC_MESSAGES/django.po index 1520bffefccb65c63b44b38b9180a893e7351d01..9aa09c67152d95726e82f2c697594af9ac69af0e 100644 --- a/AKDashboard/locale/de_DE/LC_MESSAGES/django.po +++ b/AKDashboard/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-09-20 21:40+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po index 91b245972eae61340e93f91b362ea61924edd84e..a2635bc4321e16e7449ee8036cdeae1adf170cb7 100644 --- a/AKModel/locale/de_DE/LC_MESSAGES/django.po +++ b/AKModel/locale/de_DE/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-09-29 23:27+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/AKPlan/locale/de_DE/LC_MESSAGES/django.po b/AKPlan/locale/de_DE/LC_MESSAGES/django.po index 571698ad9c2768d579630ab1aa771f479185c8dc..fa3fb4f59db0d4b0775676443e880d599f28f1aa 100644 --- a/AKPlan/locale/de_DE/LC_MESSAGES/django.po +++ b/AKPlan/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-12 16:40+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/AKPlanning/locale/de_DE/LC_MESSAGES/django.po b/AKPlanning/locale/de_DE/LC_MESSAGES/django.po index 6f94ccd2d6a30a0eda5f7ec35e8accb86bf59ef3..8a030d4e5c78135c2daec81cc50414e70763cc22 100644 --- a/AKPlanning/locale/de_DE/LC_MESSAGES/django.po +++ b/AKPlanning/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-19 06:38+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po index 1285a437ac431978e7b42bbbde0a83b6db500e81..156d0123119d6e428864e46cbad57f0e6ed76880 100644 --- a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po +++ b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-09-28 22:17+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -66,7 +66,7 @@ msgstr "AK" #: AKSubmission/templates/AKSubmission/ak_edit.html:13 #: AKSubmission/templates/AKSubmission/ak_history.html:16 #: AKSubmission/templates/AKSubmission/ak_overview.html:27 -#: AKSubmission/templates/AKSubmission/akmessage_add.html:12 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:13 #: AKSubmission/templates/AKSubmission/akowner_create_update.html:12 #: AKSubmission/templates/AKSubmission/akslot_add_update.html:12 #: AKSubmission/templates/AKSubmission/akslot_delete.html:12 @@ -104,11 +104,14 @@ msgid "History" msgstr "Versionsgeschichte" #: AKSubmission/templates/AKSubmission/ak_detail.html:59 -msgid "Add confident message to organizers" -msgstr "" +#: AKSubmission/templates/AKSubmission/akmessage_add.html:8 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:16 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:22 +msgid "Add confidential message to organizers" +msgstr "Sende eine provate Nachricht an das Organisationsteam" #: AKSubmission/templates/AKSubmission/ak_detail.html:62 -#: AKSubmission/templates/AKSubmission/ak_detail.html:177 +#: AKSubmission/templates/AKSubmission/ak_detail.html:201 #: AKSubmission/templates/AKSubmission/ak_edit.html:16 #: AKSubmission/templates/AKSubmission/ak_table.html:53 msgid "Edit" @@ -120,89 +123,116 @@ msgstr "Bearbeiten" msgid "AK Wish" msgstr "AK-Wunsch" -#: AKSubmission/templates/AKSubmission/ak_detail.html:71 +#: AKSubmission/templates/AKSubmission/ak_detail.html:74 +#, python-format +msgid "" +"\n" +" This AK currently takes place for another " +"%(featured_slot_remaining)s minute(s) in %(room)s. \n" +" " +msgstr "" +"\n" +" Dieser AK findet noch %(featured_slot_remaining)s " +"Minute(n) in %(room)s statt. \n" +" " + +#: AKSubmission/templates/AKSubmission/ak_detail.html:79 +#, python-format +msgid "" +"\n" +" This AK starts in %(featured_slot_remaining)s " +"minute(s) in %(room)s. \n" +" " +msgstr "" +"\n" +" This AK beginnt in %(featured_slot_remaining)s " +"Minute(n) in %(room)s. \n" +" " + +#: AKSubmission/templates/AKSubmission/ak_detail.html:86 +#: AKSubmission/templates/AKSubmission/ak_detail.html:209 +msgid "Go to virtual room" +msgstr "Zum virtuellen Raum" + +#: AKSubmission/templates/AKSubmission/ak_detail.html:95 #: AKSubmission/templates/AKSubmission/ak_table.html:10 msgid "Who?" msgstr "Wer?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:77 +#: AKSubmission/templates/AKSubmission/ak_detail.html:101 #: AKSubmission/templates/AKSubmission/ak_history.html:36 #: AKSubmission/templates/AKSubmission/ak_table.html:11 msgid "Category" msgstr "Kategorie" -#: AKSubmission/templates/AKSubmission/ak_detail.html:84 +#: AKSubmission/templates/AKSubmission/ak_detail.html:108 #: AKSubmission/templates/AKSubmission/ak_history.html:37 msgid "Track" msgstr "Track" -#: AKSubmission/templates/AKSubmission/ak_detail.html:89 +#: AKSubmission/templates/AKSubmission/ak_detail.html:113 msgid "Present this AK" msgstr "Diesen AK vorstellen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:93 +#: AKSubmission/templates/AKSubmission/ak_detail.html:117 #: AKSubmission/templates/AKSubmission/ak_table.html:12 msgid "Tags" msgstr "Tags" -#: AKSubmission/templates/AKSubmission/ak_detail.html:99 +#: AKSubmission/templates/AKSubmission/ak_detail.html:123 msgid "Reso?" msgstr "Reso?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:106 +#: AKSubmission/templates/AKSubmission/ak_detail.html:130 msgid "Requirements" msgstr "Anforderungen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:119 +#: AKSubmission/templates/AKSubmission/ak_detail.html:143 msgid "Conflicting AKs" msgstr "AK Konflikte" -#: AKSubmission/templates/AKSubmission/ak_detail.html:127 +#: AKSubmission/templates/AKSubmission/ak_detail.html:151 msgid "Prerequisite AKs" msgstr "AK Voraussetzungen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:135 +#: AKSubmission/templates/AKSubmission/ak_detail.html:159 msgid "Notes" msgstr "Notizen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:152 +#: AKSubmission/templates/AKSubmission/ak_detail.html:176 #: AKSubmission/templates/AKSubmission/akslot_delete.html:35 msgid "Duration" msgstr "Dauer" -#: AKSubmission/templates/AKSubmission/ak_detail.html:154 +#: AKSubmission/templates/AKSubmission/ak_detail.html:178 msgid "When?" msgstr "Wann?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:155 +#: AKSubmission/templates/AKSubmission/ak_detail.html:179 msgid "Room" msgstr "Raum" -#: AKSubmission/templates/AKSubmission/ak_detail.html:180 +#: AKSubmission/templates/AKSubmission/ak_detail.html:204 msgid "Delete" msgstr "Löschen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:185 -msgid "Go to virtual room" -msgstr "Zum virtuellen Raum" - -#: AKSubmission/templates/AKSubmission/ak_detail.html:191 +#: AKSubmission/templates/AKSubmission/ak_detail.html:215 msgid "Schedule" msgstr "Schedule" -#: AKSubmission/templates/AKSubmission/ak_detail.html:203 +#: AKSubmission/templates/AKSubmission/ak_detail.html:227 msgid "Add another slot" msgstr "Einen neuen AK-Slot hinzufügen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:207 +#: AKSubmission/templates/AKSubmission/ak_detail.html:231 msgid "Possible Times" msgstr "Mögliche Zeiten" -#: AKSubmission/templates/AKSubmission/ak_detail.html:211 +#: AKSubmission/templates/AKSubmission/ak_detail.html:235 msgid "Start" msgstr "Start" -#: AKSubmission/templates/AKSubmission/ak_detail.html:212 +#: AKSubmission/templates/AKSubmission/ak_detail.html:236 msgid "End" msgstr "Ende" @@ -234,7 +264,7 @@ msgstr "Diesen AK vorstellen" msgid "Reso" msgstr "Reso" -#: AKSubmission/templates/AKSubmission/ak_list.html:6 AKSubmission/views.py:34 +#: AKSubmission/templates/AKSubmission/ak_list.html:6 AKSubmission/views.py:39 msgid "All AKs" msgstr "Alle AKs" @@ -258,24 +288,18 @@ msgstr "Details" msgid "There are no AKs in this category yet" msgstr "Es gibt noch keine AKs in dieser Kategorie" -#: AKSubmission/templates/AKSubmission/akmessage_add.html:7 -#: AKSubmission/templates/AKSubmission/akmessage_add.html:15 -#: AKSubmission/templates/AKSubmission/akmessage_add.html:21 -msgid "Add message to organizers" -msgstr "" - -#: AKSubmission/templates/AKSubmission/akmessage_add.html:27 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:28 msgid "Send" msgstr "Senden" -#: AKSubmission/templates/AKSubmission/akmessage_add.html:31 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:32 #: AKSubmission/templates/AKSubmission/akowner_create_update.html:27 #: AKSubmission/templates/AKSubmission/akslot_add_update.html:30 #: AKSubmission/templates/AKSubmission/submit_new.html:45 msgid "Reset Form" msgstr "Formular leeren" -#: AKSubmission/templates/AKSubmission/akmessage_add.html:35 +#: AKSubmission/templates/AKSubmission/akmessage_add.html:36 #: AKSubmission/templates/AKSubmission/akowner_create_update.html:31 #: AKSubmission/templates/AKSubmission/akslot_add_update.html:34 #: AKSubmission/templates/AKSubmission/akslot_delete.html:46 @@ -366,64 +390,64 @@ msgstr "" msgid "Submit" msgstr "Eintragen" -#: AKSubmission/views.py:65 +#: AKSubmission/views.py:70 msgid "Wishes" msgstr "Wünsche" -#: AKSubmission/views.py:65 +#: AKSubmission/views.py:70 msgid "AKs one would like to have" msgstr "" "AKs die sich gewünscht wurden, aber bei denen noch nicht klar ist, wer sie " "macht. Falls du dir das vorstellen kannst, trag dich einfach ein" -#: AKSubmission/views.py:81 +#: AKSubmission/views.py:86 msgid "Currently planned AKs" msgstr "Aktuell geplante AKs" -#: AKSubmission/views.py:157 +#: AKSubmission/views.py:184 msgid "Event inactive. Cannot create or update." msgstr "Event inaktiv. Hinzufügen/Bearbeiten nicht möglich." -#: AKSubmission/views.py:173 +#: AKSubmission/views.py:200 msgid "AK successfully created" msgstr "AK erfolgreich angelegt" -#: AKSubmission/views.py:231 +#: AKSubmission/views.py:258 msgid "AK successfully updated" msgstr "AK erfolgreich aktualisiert" -#: AKSubmission/views.py:261 +#: AKSubmission/views.py:288 msgid "Interest saved" msgstr "Interesse gespeichert" -#: AKSubmission/views.py:310 +#: AKSubmission/views.py:337 msgid "Person Info successfully updated" msgstr "Personen-Info erfolgreich aktualisiert" -#: AKSubmission/views.py:330 +#: AKSubmission/views.py:357 msgid "No user selected" msgstr "Keine Person ausgewählt" -#: AKSubmission/views.py:356 +#: AKSubmission/views.py:383 msgid "AK Slot successfully added" msgstr "AK-Slot erfolgreich angelegt" -#: AKSubmission/views.py:370 +#: AKSubmission/views.py:397 msgid "You cannot edit a slot that has already been scheduled" msgstr "Bereits geplante AK-Slots können nicht mehr bearbeitet werden" -#: AKSubmission/views.py:380 +#: AKSubmission/views.py:407 msgid "AK Slot successfully updated" msgstr "AK-Slot erfolgreich aktualisiert" -#: AKSubmission/views.py:393 +#: AKSubmission/views.py:420 msgid "You cannot delete a slot that has already been scheduled" msgstr "Bereits geplante AK-Slots können nicht mehr gelöscht werden" -#: AKSubmission/views.py:403 +#: AKSubmission/views.py:430 msgid "AK Slot successfully deleted" msgstr "AK-Slot erfolgreich angelegt" -#: AKSubmission/views.py:424 +#: AKSubmission/views.py:451 msgid "Message to organizers successfully saved" msgstr "Nachricht an die Organisator*innen erfolgreich gespeichert" diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html index 0819f04a44865080cee5ec7c5f1fc05eee76ebfc..e45444b94e29350d1d3dfbb0fddaa07cb3d93ff7 100644 --- a/AKSubmission/templates/AKSubmission/ak_detail.html +++ b/AKSubmission/templates/AKSubmission/ak_detail.html @@ -56,7 +56,7 @@ title="{% trans 'History' %}" class="btn btn-light">{% fa5_icon 'clock' 'fas' %}</a> {% if ak.event.active %} <a href="{% url 'submit:akmessage_add' event_slug=ak.event.slug pk=ak.pk %}" data-toggle="tooltip" - title="{% trans 'Add confident message to organizers' %}" + title="{% trans 'Add confidential message to organizers' %}" class="btn btn-warning">{% fa5_icon 'envelope' 'fas' %}</a> <a href="{% url 'submit:ak_edit' event_slug=ak.event.slug pk=ak.pk %}" data-toggle="tooltip" title="{% trans 'Edit' %}" @@ -66,6 +66,31 @@ <h2>{% if ak.wish %}{% trans "AK Wish" %}: {% endif %}{{ ak.name }}</h2> + {# Show current or upcoming slot featured in a box on top of the plage #} + {% if featured_slot_type != "NONE" %} + <div class="card border-success mt-3 mb-3"> + <div class="card-body font-weight-bold"> + {% if featured_slot_type == "CURRENT" %} + {% blocktrans with room=featured_slot.room %} + This AK currently takes place for another {{ featured_slot_remaining }} minute(s) in {{ room }}. + + {% endblocktrans %} + + {% elif featured_slot_type == "UPCOMING" %} + {% blocktrans with room=featured_slot.room %} + This AK starts in {{ featured_slot_remaining }} minute(s) in {{ room }}. + {% endblocktrans %} + {% endif %} + + {% if "AKOnline"|check_app_installed and featured_slot.room.virtualroom and featured_slot.room.virtualroom.url != '' %} + <a class="btn btn-success" href="{{ featured_slot.room.virtualroom.url }}"> + {% fa5_icon 'external-link-alt' 'fas' %} {% trans "Go to virtual room" %} + </a> + {% endif %} + </div> + </div> + {% endif %} + <table class="table table-borderless"> <tr> <td>{% trans "Who?" %}</td> diff --git a/AKSubmission/templates/AKSubmission/akmessage_add.html b/AKSubmission/templates/AKSubmission/akmessage_add.html index f7c99c766adda9aa0b7320681902f851815f7a35..b91667c9ae4bc7f9fb9121ea823c288553a85640 100644 --- a/AKSubmission/templates/AKSubmission/akmessage_add.html +++ b/AKSubmission/templates/AKSubmission/akmessage_add.html @@ -4,7 +4,8 @@ {% load bootstrap4 %} {% load fontawesome_5 %} -{% block title %}{% trans "AKs" %}: {{ event.name }} - {% trans "Add message to organizers" %}{% endblock %} +{% block title %}{% trans "AKs" %}: {{ event.name }} - + {% trans "Add confidential message to organizers" %}{% endblock %} {% block breadcrumbs %} {% include "AKSubmission/submission_breadcrumbs.html" %} @@ -12,13 +13,13 @@ href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li> - <li class="breadcrumb-item active">{% trans "Add message to organizers" %}</li> + <li class="breadcrumb-item active">{% trans "Add confidential message to organizers" %}</li> {% endblock %} {% block content %} {% block headline %} <h2>{{ ak }}</h2> - <h3>{% trans 'Add message to organizers' %}</h3> + <h3>{% trans 'Add confidential message to organizers' %}</h3> {% endblock %} <form method="POST" class="post-form">{% csrf_token %} {% bootstrap_form form %} diff --git a/AKSubmission/views.py b/AKSubmission/views.py index f2e1a160c9184643ff660d15eb36ef24a5dda856..e1c632aa2f4a0b41f2bbcfb71716cdd3b9763dda 100644 --- a/AKSubmission/views.py +++ b/AKSubmission/views.py @@ -1,8 +1,13 @@ +from datetime import timedelta +from math import floor + +from django.apps import apps from django.conf import settings from django.contrib import messages from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404, redirect from django.urls import reverse_lazy +from django.utils.datetime_safe import datetime from django.utils.translation import gettext_lazy as _ from django.views import View from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView, RedirectView, TemplateView @@ -130,6 +135,28 @@ class AKDetailView(EventSlugMixin, DetailView): def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(object_list=object_list, **kwargs) context["availabilities"] = Availability.objects.filter(ak=context["ak"]) + + # Is this AK taking place now or soon (used for top page visualization) + context["featured_slot_type"] = "NONE" + if apps.is_installed("AKPlan"): + current_timestamp = datetime.now().astimezone(self.event.timezone) + in_two_hours = current_timestamp + timedelta(hours=2) + slots = context["ak"].akslot_set.filter(start__isnull=False, room__isnull=False) + for slot in slots: + if slot.end > current_timestamp: + if slot.start <= current_timestamp: + context["featured_slot_type"] = "CURRENT" + remaining = slot.end - current_timestamp + elif slot.start <= in_two_hours: + context["featured_slot_type"] = "UPCOMING" + remaining = slot.start - current_timestamp + else: + continue + + context["featured_slot"] = slot + context["featured_slot_remaining"] = floor(remaining.days * 24 * 60 + remaining.seconds / 60) + break + return context diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index e323ef5c5bb1f8d6e5f59dce352aeb2e4bb59a1b..b110f747eeb264985716b4d37918ba3fc4a29bfb 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-20 21:15+0000\n" +"POT-Creation-Date: 2020-11-03 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"