Export participants to different formats

* CSV
* PDF (requires Python dependency `weasyprint`)
* ODS (requires Python dependency `pyexcel_ods3`)

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-10-04 18:59:41 +02:00
parent 5dd24e1c9e
commit 0c667b13ae
121 changed files with 10817 additions and 6872 deletions

View File

@@ -155,7 +155,7 @@ msgstr "Es wurde kein Benutzer mit dieser E-Mail gefunden"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:31 lib/graphql/resolvers/participant.ex:209 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
msgid "Profile is not owned by authenticated user"
msgstr "Profil ist nicht im Besitz des authentifizierten Benutzers"
@@ -332,13 +332,13 @@ msgid "Profile already suspended"
msgstr "Profil bereits gesperrt"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:95
#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Eine gültige E-Mail wird von Ihrer Instanz benötigt"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
#: lib/graphql/resolvers/participant.ex:142
#: lib/graphql/resolvers/participant.ex:90
#: lib/graphql/resolvers/participant.ex:143
msgid "Anonymous participation is not enabled"
msgstr "Anonyme Teilnahme ist nicht möglich"
@@ -373,7 +373,7 @@ msgid "Error while updating report"
msgstr "Fehler beim Aktualisieren des Reports"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "Veranstaltungs-ID nicht gefunden"
@@ -384,13 +384,14 @@ msgid "Event not found"
msgstr "Veranstaltung nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
#: lib/graphql/resolvers/participant.ex:127 lib/graphql/resolvers/participant.ex:154
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
#: lib/graphql/resolvers/participant.ex:349
msgid "Event with this ID %{id} doesn't exist"
msgstr "Veranstaltung mit dieser ID %{id} existiert nicht"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:102
#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Interner Fehler"
@@ -411,14 +412,13 @@ msgid "No such feed token"
msgstr "Kein solches Feed-Token"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:258
#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "Teilnehmer hat bereits Rolle %{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:186
#: lib/graphql/resolvers/participant.ex:219 lib/graphql/resolvers/participant.ex:251
#: lib/graphql/resolvers/participant.ex:261
#: lib/graphql/resolvers/participant.ex:187
#: lib/graphql/resolvers/participant.ex:220 lib/graphql/resolvers/participant.ex:263
msgid "Participant not found"
msgstr "Teilnehmer nicht gefunden"
@@ -479,12 +479,12 @@ msgid "Resource doesn't exist"
msgstr "Ressource ist nicht vorhanden"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:123
#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr "Die Veranstaltung hat bereits ihre maximale Kapazität erreicht"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:281
#: lib/graphql/resolvers/participant.ex:283
msgid "This token is invalid"
msgstr "Dieses Token ist ungültig"
@@ -520,7 +520,7 @@ msgid "You already have a profile for this user"
msgstr "Sie haben bereits ein Profil für diesen Benutzer"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:133
#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Sie sind bereits ein Teilnehmer dieser Veranstaltung"
@@ -561,8 +561,8 @@ msgstr ""
"Sie dürfen einen Kommentar nicht aktualisieren, wenn Sie nicht verbunden sind"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:180
#: lib/graphql/resolvers/participant.ex:213
#: lib/graphql/resolvers/participant.ex:181
#: lib/graphql/resolvers/participant.ex:214
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Sie können die Veranstaltung nicht verlassen, weil Sie der einzige "
@@ -686,12 +686,12 @@ msgid "You need to be logged-in to delete resources"
msgstr "Sie müssen eingeloggt sein, um Ressourcen zu löschen"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:107
#: lib/graphql/resolvers/participant.ex:108
msgid "You need to be logged-in to join an event"
msgstr "Sie müssen eingeloggt sein, um einer Veranstaltung beizutreten"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:224
#: lib/graphql/resolvers/participant.ex:225
msgid "You need to be logged-in to leave an event"
msgstr "Sie müssen eingeloggt sein, um eine Veranstaltung zu verlassen"
@@ -845,7 +845,7 @@ msgid "Organizer profile is not owned by the user"
msgstr "Organizer-Profil ist nicht im Besitz des Benutzers"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
#: lib/graphql/resolvers/participant.ex:93
msgid "Profile ID provided is not the anonymous profile one"
msgstr "Die angegebene Profil-ID ist nicht die des anonymen Profils"
@@ -876,7 +876,8 @@ msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:255
#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
#: lib/graphql/resolvers/participant.ex:341
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Dieses Moderatorenprofil hat keine Berechtigung für diese Veranstaltung"
@@ -916,7 +917,7 @@ msgid "Error while uploading pictures"
msgstr "Fehler beim Aktualisieren des Reports"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:189
#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr ""
@@ -936,7 +937,7 @@ msgid "Failed to validate user email"
msgstr "Benutzer kann nicht validiert werden"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:145
#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr ""
@@ -954,3 +955,23 @@ msgstr ""
#: lib/graphql/resolvers/user.ex:404
msgid "You cannot change your password."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:310
msgid "Format not supported"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:322
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:330
msgid "An error occured while saving export"
msgstr ""
#, elixir-format
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""