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

@@ -163,7 +163,7 @@ msgstr "Пользователя с этим адресом электронно
#, 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 "Профиль не принадлежит аутентифицированному пользователю"
@@ -339,13 +339,13 @@ msgid "Profile already suspended"
msgstr "Профиль уже заблокирован"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:95
#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Вашему узлу требуется действующий адрес электронной почты"
#, 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 "Анонимное участие не разрешено"
@@ -380,7 +380,7 @@ msgid "Error while updating report"
msgstr "При обновлении отчёта произошла ошибка"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "Не найден id мероприятия"
@@ -391,13 +391,14 @@ msgid "Event not found"
msgstr "Мероприятие не найдено"
#, 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 "Мероприятия с ID %{id} не существует"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:102
#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Внутренняя ошибка"
@@ -418,14 +419,13 @@ msgid "No such feed token"
msgstr "Такого токена ленты не существует"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:258
#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "У участника уже есть роль %{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 "Участник не найден"
@@ -484,14 +484,14 @@ msgid "Resource doesn't exist"
msgstr "Ресурс не существует"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:123
#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr ""
"В мероприятии уже зарегистрировано максимально разрешённое количество "
"участников"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:281
#: lib/graphql/resolvers/participant.ex:283
msgid "This token is invalid"
msgstr "Этот токен недействителен"
@@ -527,7 +527,7 @@ msgid "You already have a profile for this user"
msgstr "У вас уже есть профиль для этого пользователя"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:133
#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Вы уже являетесь участником этого мероприятия"
@@ -567,8 +567,8 @@ msgid "You are not allowed to update a comment if not connected"
msgstr "Вы не можете обновить комментарий при отсутствии подключения"
#, 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 ""
"Вы не можете покинуть мероприятие, потому что являетесь единственным "
@@ -698,12 +698,12 @@ msgid "You need to be logged-in to delete resources"
msgstr "Вам необходимо войти в систему, чтобы иметь возможность удалять ресурсы"
#, 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 "Вам необходимо войти в систему, чтобы присоединиться к мероприятию"
#, 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 "Вам необходимо войти в систему, чтобы покинуть мероприятие"
@@ -859,7 +859,7 @@ msgid "Organizer profile is not owned by the user"
msgstr "Профиль организатора не принадлежит пользователю"
#, 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 "Указанный ID профиля не является анонимным"
@@ -890,7 +890,8 @@ msgid "Unable to fetch resource details from this URL."
msgstr "Невозможно получить сведения о ресурсе по этому URL-адресу."
#, 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 "Указанный профиль модератора не имеет доступа к этому событию"
@@ -935,7 +936,7 @@ msgid "Error while uploading pictures"
msgstr "При обновлении отчёта произошла ошибка"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:189
#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr ""
@@ -955,7 +956,7 @@ msgid "Failed to validate user email"
msgstr "Невозможно проверить пользователя"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:145
#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr ""
@@ -973,3 +974,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 ""