diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ec8b7c480968aa41c296de7641d2d58e9b55a1d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,27 @@ +image: python:latest + +services: + - mysql:5.7 + +variables: + MYSQL_DATABASE: "test" + MYSQL_ROOT_PASSWORD: "mysql" + MYSQL_USER: "django" + MYSQL_PASSWORD: "mysql" + MYSQL_HOST: "mysql" + +cache: + paths: + - ~/.cache/pip/ + +before_script: + - python -V # Print out python version for debugging + - apt-get -qq update + - apt-get -qq install -y python-virtualenv python3 python3-dev python3-pip gettext default-libmysqlclient-dev + - export DJANGO_SETTINGS_MODULE=AKPlanning.settings_ci + - ./Utils/setup.sh --prod + +test: + script: + - source venv/bin/activate + - python manage.py test --settings AKPlanning.settings_ci diff --git a/AKDashboard/locale/de_DE/LC_MESSAGES/django.po b/AKDashboard/locale/de_DE/LC_MESSAGES/django.po index 0ba6ef4f81583d6490b5dadaa378bc8727673384..b641a0390f938bff9519e523f82186b554ec586e 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-05-12 22:53+0000\n" +"POT-Creation-Date: 2020-05-16 20:26+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/admin.py b/AKModel/admin.py index 79513901a21704099724766d0ad472baa4b0389c..649ab4e512f279613bda9b96ec620ff771f6af49 100644 --- a/AKModel/admin.py +++ b/AKModel/admin.py @@ -156,10 +156,10 @@ class AKAdmin(SimpleHistoryAdmin): @admin.register(Room) class RoomAdmin(admin.ModelAdmin): model = Room - list_display = ['name', 'building', 'capacity', 'event'] - list_filter = ['building', 'properties', 'event'] + list_display = ['name', 'location', 'capacity', 'event'] + list_filter = ['location', 'properties', 'event'] list_editable = [] - ordering = ['building', 'name'] + ordering = ['location', 'name'] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'event': diff --git a/AKModel/locale/de_DE/LC_MESSAGES/django.po b/AKModel/locale/de_DE/LC_MESSAGES/django.po index 436196640a8812fcc6f3c3e334337675f4b71213..5bb9eae145e5a932fa185858f86ffedddc49a0a0 100644 --- a/AKModel/locale/de_DE/LC_MESSAGES/django.po +++ b/AKModel/locale/de_DE/LC_MESSAGES/django.po @@ -60,9 +60,9 @@ msgstr "Bitte Verfügbarkeiten eintragen!" msgid "Event" msgstr "Event" -#: AKModel/availability/models.py:39 AKModel/models.py:70 AKModel/models.py:122 -#: AKModel/models.py:141 AKModel/models.py:173 AKModel/models.py:226 -#: AKModel/models.py:268 AKModel/models.py:298 +#: AKModel/availability/models.py:39 AKModel/models.py:69 AKModel/models.py:121 +#: AKModel/models.py:140 AKModel/models.py:172 AKModel/models.py:225 +#: AKModel/models.py:267 AKModel/models.py:297 msgid "Associated event" msgstr "Zugehöriges Event" @@ -74,8 +74,8 @@ msgstr "Person" msgid "Person whose availability this is" msgstr "Person deren Verfügbarkeit hier abgebildet wird" -#: AKModel/availability/models.py:56 AKModel/models.py:271 -#: AKModel/models.py:290 +#: AKModel/availability/models.py:56 AKModel/models.py:270 +#: AKModel/models.py:289 msgid "Room" msgstr "Raum" @@ -83,8 +83,8 @@ msgstr "Raum" msgid "Room whose availability this is" msgstr "Raum dessen Verfügbarkeit hier abgebildet wird" -#: AKModel/availability/models.py:65 AKModel/models.py:231 -#: AKModel/models.py:289 +#: AKModel/availability/models.py:65 AKModel/models.py:230 +#: AKModel/models.py:288 msgid "AK" msgstr "AK" @@ -92,7 +92,7 @@ msgstr "AK" msgid "AK whose availability this is" msgstr "Verfügbarkeiten" -#: AKModel/availability/models.py:74 AKModel/models.py:125 +#: AKModel/availability/models.py:74 AKModel/models.py:124 msgid "AK Category" msgstr "AK Kategorie" @@ -104,87 +104,87 @@ msgstr "AK Kategorie dessen Verfügbarkeit hier abgebildet wird" msgid "Availabilities" msgstr "Verfügbarkeiten" -#: AKModel/models.py:17 AKModel/models.py:116 AKModel/models.py:137 -#: AKModel/models.py:156 AKModel/models.py:170 AKModel/models.py:188 -#: AKModel/models.py:260 +#: AKModel/models.py:16 AKModel/models.py:115 AKModel/models.py:136 +#: AKModel/models.py:155 AKModel/models.py:169 AKModel/models.py:187 +#: AKModel/models.py:259 msgid "Name" msgstr "Name" -#: AKModel/models.py:18 +#: AKModel/models.py:17 msgid "Name or iteration of the event" msgstr "Name oder Iteration des Events" -#: AKModel/models.py:19 +#: AKModel/models.py:18 msgid "Short Form" msgstr "Kurzer Name" -#: AKModel/models.py:20 +#: AKModel/models.py:19 msgid "Short name of letters/numbers/dots/dashes/underscores used in URLs." msgstr "" "Kurzname bestehend aus Buchstaben, Nummern, Punkten und Unterstrichen zur " "Nutzung in URLs" -#: AKModel/models.py:22 +#: AKModel/models.py:21 msgid "Place" msgstr "Ort" -#: AKModel/models.py:23 +#: AKModel/models.py:22 msgid "City etc. the event takes place in" msgstr "Stadt o.ä. in der das Event stattfindet" -#: AKModel/models.py:25 +#: AKModel/models.py:24 msgid "Time Zone" msgstr "Zeitzone" -#: AKModel/models.py:25 +#: AKModel/models.py:24 msgid "Time Zone where this event takes place in" msgstr "Zeitzone in der das Event stattfindet" -#: AKModel/models.py:26 +#: AKModel/models.py:25 msgid "Start" msgstr "Start" -#: AKModel/models.py:26 +#: AKModel/models.py:25 msgid "Time the event begins" msgstr "Zeit zu der das Event beginnt" -#: AKModel/models.py:27 +#: AKModel/models.py:26 msgid "End" msgstr "Ende" -#: AKModel/models.py:27 +#: AKModel/models.py:26 msgid "Time the event ends" msgstr "Zeit zu der das Event endet" -#: AKModel/models.py:29 +#: AKModel/models.py:28 msgid "Active State" msgstr "Aktiver Status" -#: AKModel/models.py:29 +#: AKModel/models.py:28 msgid "Marks currently active events" msgstr "Markiert aktuell aktive Events" -#: AKModel/models.py:31 +#: AKModel/models.py:30 msgid "Base URL" msgstr "URL-Prefix" -#: AKModel/models.py:31 +#: AKModel/models.py:30 msgid "Prefix for wiki link construction" msgstr "Prefix für die automatische Generierung von Wiki-Links" -#: AKModel/models.py:32 +#: AKModel/models.py:31 msgid "Default Slot Length" msgstr "Standardslotlänge" -#: AKModel/models.py:33 +#: AKModel/models.py:32 msgid "Default length in hours that is assumed for AKs in this event." msgstr "Standardlänge von Slots (in Stunden) für dieses Event" -#: AKModel/models.py:35 +#: AKModel/models.py:34 msgid "Contact email address" msgstr "E-Mail Kontaktadresse" -#: AKModel/models.py:37 +#: AKModel/models.py:36 msgid "" "An email address that is displayed on every page and can be used for all " "kinds of questions" @@ -192,35 +192,35 @@ msgstr "" "Eine Mailadresse die auf jeder Seite angezeigt wird und für alle Arten von " "Fragen genutzt werden kann" -#: AKModel/models.py:41 +#: AKModel/models.py:40 msgid "Events" msgstr "Events" -#: AKModel/models.py:64 +#: AKModel/models.py:63 msgid "Nickname" msgstr "Spitzname" -#: AKModel/models.py:64 +#: AKModel/models.py:63 msgid "Name to identify an AK owner by" msgstr "Name durch den eine AK Leitung identifiziert wird" -#: AKModel/models.py:65 +#: AKModel/models.py:64 msgid "Slug" msgstr "Slug" -#: AKModel/models.py:65 +#: AKModel/models.py:64 msgid "Slug for URL generation" msgstr "Slug für URL-Generierung" -#: AKModel/models.py:66 +#: AKModel/models.py:65 msgid "Institution" msgstr "Instutution" -#: AKModel/models.py:66 +#: AKModel/models.py:65 msgid "Uni etc." msgstr "Universität o.ä." -#: AKModel/models.py:67 AKModel/models.py:197 +#: AKModel/models.py:66 AKModel/models.py:196 msgid "Web Link" msgstr "Internet Link" @@ -426,15 +426,15 @@ msgstr "AKs" msgid "Name or number of the room" msgstr "Name oder Nummer des Raums" +#: AKModel/models.py:260 +msgid "Location" +msgstr "Ort" + #: AKModel/models.py:261 -msgid "Building" -msgstr "Gebäude" +msgid "Name or number of the location" +msgstr "Name oder Nummer des Ortes" #: AKModel/models.py:262 -msgid "Name or number of the building" -msgstr "Name oder Nummer des Gebäudes" - -#: AKModel/models.py:263 msgid "Capacity" msgstr "Kapazität" @@ -498,18 +498,6 @@ msgstr "Noch nicht geplant" msgid "Administration" msgstr "Verwaltung" -#: AKModel/templates/AKModel/user.html:31 -msgid "Hello" -msgstr "Hallo" - -#: AKModel/templates/AKModel/user.html:34 -msgid "Go to backend" -msgstr "Verwaltungsseite öffnen" - -#: AKModel/templates/AKModel/user.html:37 -msgid "Please wait for an administrator to confirm your account" -msgstr "Bitte warten, bis ein Administrator den Account bestätigt hat" - #: AKModel/templates/AKModel/user.html:40 msgid "Logout" msgstr "Ausloggen" @@ -560,6 +548,16 @@ msgstr "Eventstatus" #~ msgid "Notes to organizers" #~ msgstr "Notizen an die Organisator*innen" +#: AKModel/templates/AKModel/user.html:31 +msgid "Hello" +msgstr "Hallo" + +#: AKModel/templates/AKModel/user.html:34 +msgid "Go to backend" +msgstr "Zum Backend" + +#: AKModel/templates/AKModel/user.html:37 +msgid "Please wait for an administrator to confirm your account" +msgstr "" +"Bitte warte darauf, dass ein*e Administrator*in deinen Account bestätigt" -#~ msgid "E-Mail Address" -#~ msgstr "E-Mail Adresse" diff --git a/AKModel/migrations/0017_owner_slug.py b/AKModel/migrations/0017_owner_slug.py index c4fbb31bf88f41938b1687c80df961f64ee3a828..2be7775a01d0e09533db1b85ef218276ecf38273 100644 --- a/AKModel/migrations/0017_owner_slug.py +++ b/AKModel/migrations/0017_owner_slug.py @@ -33,9 +33,8 @@ class Migration(migrations.Migration): migrate_data_forward, migrations.RunPython.noop, ), - migrations.AlterField( - model_name='akowner', - name='slug', - field=models.SlugField(blank=True, help_text='Slug for URL generation', unique=True, max_length=64, verbose_name='Slug') + migrations.AlterUniqueTogether( + name='akowner', + unique_together={('event', 'name', 'institution'), ('event', 'slug')}, ) ] diff --git a/AKModel/migrations/0028_unique_constraints.py b/AKModel/migrations/0028_unique_constraints.py index 2cba695a4379d44d4b0393d1a32d2a12a512b32c..112db71e5b4897e9f880829d4d4d0d744b6afa34 100644 --- a/AKModel/migrations/0028_unique_constraints.py +++ b/AKModel/migrations/0028_unique_constraints.py @@ -38,10 +38,6 @@ class Migration(migrations.Migration): name='akcategory', unique_together={('event', 'name')}, ), - migrations.AlterUniqueTogether( - name='akowner', - unique_together={('event', 'name', 'institution'), ('event', 'slug')}, - ), migrations.AlterUniqueTogether( name='akrequirement', unique_together={('event', 'name')}, diff --git a/AKModel/migrations/0033_AKOnline.py b/AKModel/migrations/0033_AKOnline.py new file mode 100644 index 0000000000000000000000000000000000000000..c3d4e6bcdf239d3a68d84f480dd66a6c088bf1a1 --- /dev/null +++ b/AKModel/migrations/0033_AKOnline.py @@ -0,0 +1,17 @@ +# Generated by Django 3.0.6 on 2020-05-17 20:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ('AKModel', '0032_AK_history'), + ] + + operations = [ + migrations.RenameField( + model_name='room', + old_name='building', + new_name='location', + ), + ] diff --git a/AKModel/models.py b/AKModel/models.py index c46c90f9ddd3c9797a7bff58509d9d79b1569406..9d507ea3941474881e3cb1239b9b9a44131e8787 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -1,10 +1,9 @@ -from datetime import timedelta - -from django.utils.datetime_safe import datetime import itertools +from datetime import timedelta from django.db import models from django.utils import timezone +from django.utils.datetime_safe import datetime from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from simple_history.models import HistoricalRecords @@ -258,8 +257,8 @@ class Room(models.Model): """ A room describes where an AK can be held. """ name = models.CharField(max_length=64, verbose_name=_('Name'), help_text=_('Name or number of the room')) - building = models.CharField(max_length=256, blank=True, verbose_name=_('Building'), - help_text=_('Name or number of the building')) + location = models.CharField(max_length=256, blank=True, verbose_name=_('Location'), + help_text=_('Name or number of the location')) capacity = models.IntegerField(verbose_name=_('Capacity'), help_text=_('Maximum number of people')) properties = models.ManyToManyField(to=AKRequirement, blank=True, verbose_name=_('Properties'), help_text=_('AK requirements fulfilled by the room')) @@ -270,13 +269,13 @@ class Room(models.Model): class Meta: verbose_name = _('Room') verbose_name_plural = _('Rooms') - ordering = ['building', 'name'] - unique_together = ['event', 'name', 'building'] + ordering = ['location', 'name'] + unique_together = ['event', 'name', 'location'] @property def title(self): - if self.building: - return f"{self.building} {self.name}" + if self.location: + return f"{self.location} {self.name}" return self.name def __str__(self): diff --git a/AKOnline/__init__.py b/AKOnline/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/AKOnline/admin.py b/AKOnline/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..bdcd8d4d10358eed188cd06216220026ece2ac3c --- /dev/null +++ b/AKOnline/admin.py @@ -0,0 +1,9 @@ +from django.contrib import admin + +from AKModel.admin import RoomAdmin +from AKOnline.models import VirtualRoom + + +@admin.register(VirtualRoom) +class VirtualRoomAdmin(RoomAdmin): + model = VirtualRoom diff --git a/AKOnline/apps.py b/AKOnline/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..16078585764016d5c291069a30b9f90022a89e16 --- /dev/null +++ b/AKOnline/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class AkonlineConfig(AppConfig): + name = 'AKOnline' diff --git a/AKOnline/migrations/0001_AKOnline.py b/AKOnline/migrations/0001_AKOnline.py new file mode 100644 index 0000000000000000000000000000000000000000..d6040731fac9a3f0ec515a816dc48fcb06f01f42 --- /dev/null +++ b/AKOnline/migrations/0001_AKOnline.py @@ -0,0 +1,29 @@ +# Generated by Django 3.0.6 on 2020-05-17 20:02 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + ('AKModel', '0033_AKOnline'), + ] + + operations = [ + migrations.CreateModel( + name='VirtualRoom', + fields=[ + ('room_ptr', + models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, + primary_key=True, serialize=False, to='AKModel.Room')), + ('url', models.URLField(blank=True, help_text='URL to the room or server', verbose_name='URL')), + ], + options={ + 'verbose_name': 'Virtual Room', + 'verbose_name_plural': 'Virtual Rooms', + }, + bases=('AKModel.room',), + ), + ] diff --git a/AKOnline/migrations/__init__.py b/AKOnline/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/AKOnline/models.py b/AKOnline/models.py new file mode 100644 index 0000000000000000000000000000000000000000..c3496b01a719293920496c7b6432144114c71bf3 --- /dev/null +++ b/AKOnline/models.py @@ -0,0 +1,14 @@ +from django.db import models +from django.utils.translation import gettext_lazy as _ + +from AKModel.models import Event, Room + + +class VirtualRoom(Room): + """ A virtual room where an AK can be held. + """ + url = models.URLField(verbose_name=_("URL"), help_text=_("URL to the room or server"), blank=True) + + class Meta: + verbose_name = _('Virtual Room') + verbose_name_plural = _('Virtual Rooms') diff --git a/AKOnline/tests.py b/AKOnline/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..a39b155ac3ee946fb97efafe6ecbb42f571cd7ad --- /dev/null +++ b/AKOnline/tests.py @@ -0,0 +1 @@ +# Create your tests here. diff --git a/AKOnline/views.py b/AKOnline/views.py new file mode 100644 index 0000000000000000000000000000000000000000..60f00ef0ef347811e7b0c0921b7fda097acd9fcc --- /dev/null +++ b/AKOnline/views.py @@ -0,0 +1 @@ +# Create your views here. diff --git a/AKPlan/locale/de_DE/LC_MESSAGES/django.po b/AKPlan/locale/de_DE/LC_MESSAGES/django.po index 9abe99bdb6a65962a6697eee0caddf1dd3e6d8e3..bbe02474f0b06608332e3c1c6544d045feac7e6a 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-05-14 22:48+0000\n" +"POT-Creation-Date: 2020-05-16 20:26+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/views.py b/AKPlan/views.py index 44aca464f4b177c191657d003b74582ed492f6a1..cf8589128a38eac4b240661110e1598a13424d89 100644 --- a/AKPlan/views.py +++ b/AKPlan/views.py @@ -38,8 +38,8 @@ class PlanIndexView(FilterByEventSlugMixin, ListView): if akslot.room is not None: rooms.add(akslot.room) # Store buildings for hierarchical view - if akslot.room.building != '': - buildings.add(akslot.room.building) + if akslot.room.location != '': + buildings.add(akslot.room.location) # Recent AKs: Started but not ended yet if akslot.start <= current_timestamp <= akslot.end: diff --git a/AKPlanning/settings.py b/AKPlanning/settings.py index f1421794acc9029b8de67bdf33007e261451b941..04302f411194498fbb5e327bec60cff6f6004915 100644 --- a/AKPlanning/settings.py +++ b/AKPlanning/settings.py @@ -37,6 +37,7 @@ INSTALLED_APPS = [ 'AKSubmission.apps.AksubmissionConfig', 'AKScheduling.apps.AkschedulingConfig', 'AKPlan.apps.AkplanConfig', + 'AKOnline.apps.AkonlineConfig', 'AKModel.apps.AKAdminConfig', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/AKPlanning/settings_ci.py b/AKPlanning/settings_ci.py new file mode 100644 index 0000000000000000000000000000000000000000..6c09856926dabffa495a333749719278a616d15c --- /dev/null +++ b/AKPlanning/settings_ci.py @@ -0,0 +1,21 @@ +# noinspection PyUnresolvedReferences +from AKPlanning.settings import * + +DEBUG = False +SECRET_KEY = '+7#&=$grg7^x62m#3cuv)k$)tqx!xkj_o&y9sm)@@sgj7_7-!+' + +SESSION_COOKIE_SECURE = True +CSRF_COOKIE_SECURE = True + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'HOST': 'mysql', + 'NAME': 'test', + 'USER': 'django', + 'PASSWORD': 'mysql', + 'OPTIONS': { + 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" + } + } +} diff --git a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po index 3a84696f47aad94a467a0fd9035b7ae34dbe3d3b..6eac88f8e50bd80dc3c4d619687ca763748ed8a3 100644 --- a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po +++ b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po @@ -81,105 +81,103 @@ msgid "Interest" msgstr "Interesse" #: AKSubmission/templates/AKSubmission/ak_detail.html:34 -#, fuzzy -#| msgid "Interest" msgid "Show Interest" -msgstr "Interesse" +msgstr "Interesse bekunden" #: AKSubmission/templates/AKSubmission/ak_detail.html:40 #: AKSubmission/templates/AKSubmission/ak_table.html:48 msgid "Open external link" msgstr "Externen Link öffnen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:45 +#: AKSubmission/templates/AKSubmission/ak_detail.html:44 #: AKSubmission/templates/AKSubmission/ak_history.html:19 #: AKSubmission/templates/AKSubmission/ak_history.html:31 msgid "History" msgstr "Versionsgeschichte" -#: AKSubmission/templates/AKSubmission/ak_detail.html:48 -#: AKSubmission/templates/AKSubmission/ak_detail.html:147 +#: AKSubmission/templates/AKSubmission/ak_detail.html:47 +#: AKSubmission/templates/AKSubmission/ak_detail.html:146 #: AKSubmission/templates/AKSubmission/ak_edit.html:16 #: AKSubmission/templates/AKSubmission/ak_table.html:53 msgid "Edit" msgstr "Bearbeiten" -#: AKSubmission/templates/AKSubmission/ak_detail.html:53 +#: AKSubmission/templates/AKSubmission/ak_detail.html:52 #: AKSubmission/templates/AKSubmission/ak_history.html:31 #: AKSubmission/templates/AKSubmission/ak_table.html:35 msgid "AK Wish" msgstr "AK-Wunsch" -#: AKSubmission/templates/AKSubmission/ak_detail.html:57 +#: AKSubmission/templates/AKSubmission/ak_detail.html:56 #: AKSubmission/templates/AKSubmission/ak_table.html:10 msgid "Who?" msgstr "Wer?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:63 +#: AKSubmission/templates/AKSubmission/ak_detail.html:62 #: AKSubmission/templates/AKSubmission/ak_history.html:36 #: AKSubmission/templates/AKSubmission/ak_table.html:11 msgid "Category" msgstr "Kategorie" -#: AKSubmission/templates/AKSubmission/ak_detail.html:69 +#: AKSubmission/templates/AKSubmission/ak_detail.html:68 msgid "Present this AK" msgstr "Diesen AK vorstellen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:73 +#: AKSubmission/templates/AKSubmission/ak_detail.html:72 #: AKSubmission/templates/AKSubmission/ak_table.html:12 msgid "Tags" msgstr "Tags" -#: AKSubmission/templates/AKSubmission/ak_detail.html:79 +#: AKSubmission/templates/AKSubmission/ak_detail.html:78 msgid "Reso?" msgstr "Reso?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:86 +#: AKSubmission/templates/AKSubmission/ak_detail.html:85 msgid "Requirements" msgstr "Anforderungen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:99 +#: AKSubmission/templates/AKSubmission/ak_detail.html:98 msgid "Conflicting AKs" msgstr "AK Konflikte" -#: AKSubmission/templates/AKSubmission/ak_detail.html:107 +#: AKSubmission/templates/AKSubmission/ak_detail.html:106 msgid "Prerequisite AKs" msgstr "AK Voraussetzungen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:115 +#: AKSubmission/templates/AKSubmission/ak_detail.html:114 msgid "Notes" msgstr "Notizen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:132 +#: AKSubmission/templates/AKSubmission/ak_detail.html:131 msgid "When?" msgstr "Wann?" -#: AKSubmission/templates/AKSubmission/ak_detail.html:133 +#: AKSubmission/templates/AKSubmission/ak_detail.html:132 #: AKSubmission/templates/AKSubmission/akslot_delete.html:35 msgid "Duration" msgstr "Dauer" -#: AKSubmission/templates/AKSubmission/ak_detail.html:134 +#: AKSubmission/templates/AKSubmission/ak_detail.html:133 msgid "Room" msgstr "Raum" -#: AKSubmission/templates/AKSubmission/ak_detail.html:150 +#: AKSubmission/templates/AKSubmission/ak_detail.html:149 msgid "Delete" msgstr "Löschen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:162 +#: AKSubmission/templates/AKSubmission/ak_detail.html:161 msgid "Add another slot" msgstr "Einen neuen AK-Slot hinzufügen" -#: AKSubmission/templates/AKSubmission/ak_detail.html:166 +#: AKSubmission/templates/AKSubmission/ak_detail.html:165 msgid "Possible Times" msgstr "Mögliche Zeiten" -#: AKSubmission/templates/AKSubmission/ak_detail.html:170 +#: AKSubmission/templates/AKSubmission/ak_detail.html:169 msgid "Start" msgstr "Start" -#: AKSubmission/templates/AKSubmission/ak_detail.html:171 +#: AKSubmission/templates/AKSubmission/ak_detail.html:170 msgid "End" msgstr "Ende" @@ -215,7 +213,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:30 msgid "All AKs" msgstr "Alle AKs" @@ -329,59 +327,56 @@ msgstr "" msgid "Submit" msgstr "Eintragen" -#: AKSubmission/views.py:65 +#: AKSubmission/views.py:50 msgid "Wishes" msgstr "Wünsche" -#: AKSubmission/views.py:65 +#: AKSubmission/views.py:50 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:66 msgid "Currently planned AKs" msgstr "Aktuell geplante AKs" -#: AKSubmission/views.py:157 +#: AKSubmission/views.py:141 msgid "Event inactive. Cannot create or update." msgstr "Event inaktiv. Hinzufügen/Bearbeiten nicht möglich." -#: AKSubmission/views.py:173 +#: AKSubmission/views.py:157 msgid "AK successfully created" msgstr "AK erfolgreich angelegt" -#: AKSubmission/views.py:231 +#: AKSubmission/views.py:215 msgid "AK successfully updated" msgstr "AK erfolgreich aktualisiert" -#: AKSubmission/views.py:309 +#: AKSubmission/views.py:293 msgid "Person Info successfully updated" msgstr "Personen-Info erfolgreich aktualisiert" -#: AKSubmission/views.py:329 +#: AKSubmission/views.py:313 msgid "No user selected" msgstr "Keine Person ausgewählt" -#: AKSubmission/views.py:355 +#: AKSubmission/views.py:339 msgid "AK Slot successfully added" msgstr "AK-Slot erfolgreich angelegt" -#: AKSubmission/views.py:369 +#: AKSubmission/views.py:353 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:379 +#: AKSubmission/views.py:363 msgid "AK Slot successfully updated" msgstr "AK-Slot erfolgreich aktualisiert" -#: AKSubmission/views.py:392 +#: AKSubmission/views.py:376 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:402 +#: AKSubmission/views.py:386 msgid "AK Slot successfully deleted" msgstr "AK-Slot erfolgreich angelegt" - -#~ msgid "Categories" -#~ msgstr "Kategorie" diff --git a/Utils/setup.sh b/Utils/setup.sh index 5ccdf50fb72881dcecae76c6db55f7a971da9a7a..aff0b60c07a878917f6031497cb5420c6416e97a 100755 --- a/Utils/setup.sh +++ b/Utils/setup.sh @@ -20,7 +20,7 @@ python manage.py migrate # Prepare static files and translations python manage.py collectstatic --noinput -python manage.py compilemessages +python manage.py compilemessages -l de_DE # Create superuser # Credentials are entered interactively on CLI diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 95f93235e7740d43012bb7e70dafcf970ef53a85..cff6314d53a95eeeaa80c95f6de6f0dfea58dc0d 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-18 09:42+0000\n" +"POT-Creation-Date: 2020-05-17 21:09+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" @@ -18,6 +18,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#: AKOnline/models.py:10 +msgid "URL" +msgstr "URL" + +#: AKOnline/models.py:10 +msgid "URL to the room or server" +msgstr "URL zum Raum/Server" + +#: AKOnline/models.py:13 +msgid "Virtual Room" +msgstr "Virtueller Raum" + +#: AKOnline/models.py:14 +msgid "Virtual Rooms" +msgstr "Virtuelle Räume" + #: templates/base.html:78 msgid "Impress" msgstr "Impressum" diff --git a/requirements.txt b/requirements.txt index 646382702dab0b482758fbe2f4d7985c37ef7dc8..ea1f26faff6c67ca94bbb2689b13c7675e65c224 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ django-timezone-field==4.0 djangorestframework==3.11.0 django-simple-history==2.10.0 django-registration-redux==2.8 +mysqlclient==1.4.6 # for production deployment