decidim-meetings 0.13.1 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/admin/decidim_meetings_manifest.js +1 -0
  3. data/app/assets/javascripts/decidim/meetings/admin/registrations_invite_form.es6 +25 -0
  4. data/app/cells/decidim/meetings/join_meeting_button/show.erb +2 -0
  5. data/app/cells/decidim/meetings/meeting_cell.rb +1 -1
  6. data/app/commands/decidim/meetings/admin/invite_user_to_join_meeting.rb +57 -8
  7. data/app/commands/decidim/meetings/admin/validate_registration_code.rb +51 -0
  8. data/app/commands/decidim/meetings/decline_invitation.rb +45 -0
  9. data/app/commands/decidim/meetings/join_meeting.rb +8 -3
  10. data/app/controllers/decidim/meetings/admin/attachment_collections_controller.rb +0 -4
  11. data/app/controllers/decidim/meetings/admin/attachments_controller.rb +0 -4
  12. data/app/controllers/decidim/meetings/admin/invites_controller.rb +14 -5
  13. data/app/controllers/decidim/meetings/admin/registrations_controller.rb +20 -0
  14. data/app/controllers/decidim/meetings/registrations_controller.rb +16 -0
  15. data/app/events/decidim/meetings/registration_code_validated_event.rb +15 -0
  16. data/app/forms/decidim/meetings/admin/close_meeting_form.rb +1 -1
  17. data/app/forms/decidim/meetings/admin/meeting_registration_invite_form.rb +9 -2
  18. data/app/forms/decidim/meetings/admin/validate_registration_code_form.rb +33 -0
  19. data/app/mailers/decidim/meetings/registration_mailer.rb +2 -1
  20. data/app/models/decidim/meetings/invite.rb +38 -0
  21. data/app/models/decidim/meetings/meeting.rb +6 -0
  22. data/app/models/decidim/meetings/registration.rb +18 -0
  23. data/app/permissions/decidim/meetings/admin/permissions.rb +2 -2
  24. data/app/permissions/decidim/meetings/permissions.rb +8 -1
  25. data/app/presenters/decidim/meetings/admin_log/invite_presenter.rb +35 -0
  26. data/app/presenters/decidim/meetings/invite_presenter.rb +26 -0
  27. data/app/queries/decidim/meetings/admin/invites.rb +59 -0
  28. data/app/serializers/decidim/meetings/data_portability_invite_serializer.rb +35 -0
  29. data/app/serializers/decidim/meetings/data_portability_registration_serializer.rb +1 -0
  30. data/app/serializers/decidim/meetings/registration_serializer.rb +1 -0
  31. data/app/views/decidim/meetings/admin/invite_join_meeting_mailer/invite.html.erb +1 -0
  32. data/app/views/decidim/meetings/admin/invites/_form.html.erb +34 -5
  33. data/app/views/decidim/meetings/admin/invites/index.html.erb +99 -0
  34. data/app/views/decidim/meetings/admin/meeting_copies/new.html.erb +1 -1
  35. data/app/views/decidim/meetings/admin/meetings/_form.html.erb +2 -3
  36. data/app/views/decidim/meetings/admin/meetings/index.html.erb +2 -0
  37. data/app/views/decidim/meetings/admin/registrations/_form.html.erb +1 -1
  38. data/app/views/decidim/meetings/admin/registrations/edit.html.erb +24 -0
  39. data/app/views/decidim/meetings/meetings/_meetings.html.erb +1 -1
  40. data/app/views/decidim/meetings/meetings/index.js.erb +0 -1
  41. data/app/views/decidim/meetings/meetings/show.html.erb +9 -0
  42. data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +2 -0
  43. data/app/views/decidim/participatory_spaces/_meeting.html.erb +1 -1
  44. data/app/views/devise/mailer/join_meeting.html.erb +1 -0
  45. data/app/views/devise/mailer/join_meeting.text.erb +4 -0
  46. data/config/locales/ca.yml +53 -5
  47. data/config/locales/en.yml +53 -5
  48. data/config/locales/es-PY.yml +52 -4
  49. data/config/locales/es.yml +53 -5
  50. data/config/locales/eu.yml +52 -4
  51. data/config/locales/fi.yml +164 -116
  52. data/config/locales/fr.yml +53 -5
  53. data/config/locales/gl.yml +52 -4
  54. data/config/locales/hu.yml +391 -0
  55. data/config/locales/it.yml +52 -4
  56. data/config/locales/nl.yml +52 -4
  57. data/config/locales/pl.yml +52 -4
  58. data/config/locales/pt-BR.yml +56 -8
  59. data/config/locales/pt.yml +52 -4
  60. data/config/locales/ru.yml +57 -9
  61. data/config/locales/sv.yml +135 -87
  62. data/config/locales/uk.yml +56 -8
  63. data/db/migrate/20180607142020_create_decidim_meetings_invites.rb +15 -0
  64. data/db/migrate/20180615160839_add_code_to_decidim_meetings_registrations.rb +7 -0
  65. data/db/migrate/20180711111023_add_validated_at_to_decidim_meetings_registrations.rb +7 -0
  66. data/lib/decidim/meetings.rb +1 -0
  67. data/lib/decidim/meetings/admin_engine.rb +3 -1
  68. data/lib/decidim/meetings/component.rb +2 -0
  69. data/lib/decidim/meetings/engine.rb +1 -0
  70. data/lib/decidim/meetings/registrations.rb +14 -0
  71. data/lib/decidim/meetings/registrations/code_generator.rb +39 -0
  72. data/lib/decidim/meetings/test/factories.rb +20 -4
  73. data/lib/decidim/meetings/version.rb +1 -1
  74. metadata +30 -14
  75. data/app/views/decidim/meetings/admin/invites/new.html.erb +0 -21
@@ -1,5 +1,5 @@
1
1
  <%= decidim_form_for(@form, url: meeting_copies_path(meeting), method: :post, html: { class: "form copy_meetings" }) do |f| %>
2
- <%= render partial: "form", object: f, locals: { title: t("meeting_copies.new.title", scope: "decidim.admin"), select: t("meeting_copies.new.select", scope: "decidim.admin")} %>
2
+ <%= render partial: "form", object: f, locals: { title: t("meeting_copies.new.title", scope: "decidim.admin"), select: t("meeting_copies.new.select", scope: "decidim.admin") } %>
3
3
 
4
4
  <div class="button--double form-general-submit">
5
5
  <%= f.submit t("meeting_copies.new.copy", scope: "decidim.admin") %>
@@ -2,14 +2,13 @@
2
2
  <div class="card-divider">
3
3
  <h2 class="card-title"><%= title %></h2>
4
4
  </div>
5
-
6
5
  <div class="card-section">
7
6
  <div class="row column">
8
- <%= form.translated :text_field, :title, autofocus: true %>
7
+ <%= form.translated :text_field, :title, autofocus: true, class: "js-hashtags", hashtaggable: true %>
9
8
  </div>
10
9
 
11
10
  <div class="row column">
12
- <%= form.translated :editor, :description %>
11
+ <%= form.translated :editor, :description, class: "js-hashtags", hashtaggable: true %>
13
12
  </div>
14
13
 
15
14
  <div class="row column">
@@ -71,6 +71,8 @@
71
71
  <%= icon_link_to "paperclip", meeting_attachments_path(meeting), t("actions.attachments", scope: "decidim.meetings"), class: "action-icon--attachments" %>
72
72
  <% end %>
73
73
 
74
+ <%= resource_permissions_link(meeting) %>
75
+
74
76
  <% if allowed_to? :destroy, :meeting, meeting: meeting %>
75
77
  <%= icon_link_to "circle-x", meeting_path(meeting), t("actions.destroy", scope: "decidim.meetings"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.meetings") } %>
76
78
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <div class="card-divider">
3
3
  <h2 class="card-title">
4
4
  <%= title %>
5
- <%= link_to t(".invite_user"), meeting.registrations_enabled ? new_meeting_registrations_invites_path(meeting) : "#", class: "button tiny button--title #{'disabled' unless allowed_to? :invite_user, :meeting, meeting: meeting}" %>
5
+ <%= link_to t(".invites"), meeting_registrations_invites_path(meeting), class: "button tiny button--title #{'disabled' unless allowed_to? :read_invites, :meeting, meeting: meeting}" %>
6
6
  <% if allowed_to? :export_registrations, :meeting, meeting: meeting %>
7
7
  <span class="exports dropdown tiny button button--simple button--title" data-toggle="export-dropdown"><%= t "actions.export", scope: "decidim.admin" %></span>
8
8
  <div class="dropdown-pane" id="export-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
@@ -1,3 +1,27 @@
1
+ <div class="card">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= t(".validate_registration_code") %>
5
+ </h2>
6
+ </div>
7
+ <div class="card-section">
8
+ <%= decidim_form_for(@validation_form, url: validate_registration_code_meeting_registrations_path, html: { class: "form validate_meeting_registration_code" }) do |f| %>
9
+
10
+ <div class="grid-x grid-margin-x">
11
+ <div class="auto cell">
12
+ <%= f.text_field :code %>
13
+ </div>
14
+
15
+ <div class="shrink cell">
16
+ <div class="text-center mt-sm">
17
+ <%= f.submit t(".validate") %>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <% end %>
22
+ </div>
23
+ </div>
24
+
1
25
  <%= decidim_form_for(@form, url: meeting_registrations_path, html: { class: "form edit_meeting_registrations" }) do |f| %>
2
26
  <%= render partial: "form", object: f %>
3
27
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  <div class="row small-up-1 medium-up-2 card-grid">
14
14
  <% meetings.each do |meeting| %>
15
- <%= card_for meeting, context: { current_user: current_user } %>
15
+ <%= card_for meeting %>
16
16
  <% end %>
17
17
  </div>
18
18
  <%= decidim_paginate meetings, order_start_time: params[:order_start_time], scope_id: params[:scope_id] %>
@@ -9,4 +9,3 @@ window.Decidim.currentMap = window.Decidim.loadMap(
9
9
  'map',
10
10
  JSON.parse('<%= escape_javascript meetings_data_for_map(geocoded_meetings).to_json.html_safe %>')
11
11
  );
12
-
@@ -6,6 +6,15 @@
6
6
  url: meeting_url(meeting.id)
7
7
  }) %>
8
8
 
9
+ <%
10
+ edit_link(
11
+ resource_locator(meeting).edit,
12
+ :update,
13
+ :meeting,
14
+ meeting: meeting
15
+ )
16
+ %>
17
+
9
18
  <div class="row column view-header">
10
19
  <h2 class="heading2"><%= translated_attribute meeting.title %></h2>
11
20
  <% if meeting.organizer.present? %>
@@ -1,3 +1,5 @@
1
1
  <p><%= t(".confirmed_html", title: translated_attribute(@meeting.title), url: @locator.url) %></p>
2
2
 
3
+ <p><%= t(".registration_code", code: @registration.code) %></p>
4
+
3
5
  <p><%= t(".details") %></p>
@@ -1 +1 @@
1
- <%= card_for meeting, size: :list_item, context: { current_user: current_user } %>
1
+ <%= card_for meeting, size: :list_item %>
@@ -4,6 +4,7 @@
4
4
  <%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting", invited_by: @resource.invited_by.name, application: @resource.organization.name) %>
5
5
  </p>
6
6
 
7
+ <p><%= link_to t("devise.mailer.invitation_instructions.decline"), accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).decline_invitation_meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %></p>
7
8
  <p><%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %></p>
8
9
 
9
10
  <% if @resource.invitation_due_at %>
@@ -2,6 +2,10 @@
2
2
 
3
3
  <%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting", invited_by: @resource.invited_by.name, application: @resource.organization.name) %>
4
4
 
5
+ <%= t("devise.mailer.invitation_instructions.decline") %>:
6
+ <% accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).decline_invitation_meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %>
7
+
8
+ <%= t("devise.mailer.invitation_instructions.accept") %>:
5
9
  <% accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %>
6
10
 
7
11
  <% if @resource.invitation_due_at %>
@@ -38,6 +38,10 @@ ca:
38
38
  base:
39
39
  too_many_minutes: La durada dels elements supera la durada de la trobada per %{count} minuts
40
40
  too_many_minutes_child: La durada del sub-ítem supera la durada del punt "%{parent_title}" del programa per %{count} minuts
41
+ meeting_registration_invite:
42
+ attributes:
43
+ email:
44
+ already_invited: Aquest correu electrònic ja ha estat convidat
41
45
  models:
42
46
  decidim/meetings/close_meeting_event: Trobada tancada
43
47
  decidim/meetings/create_meeting_event: Trobada
@@ -76,6 +80,7 @@ ca:
76
80
  announcement: Anunci
77
81
  comments_enabled: Comentaris habilitats
78
82
  default_registration_terms: Termes de registre per defecte
83
+ resources_permissions_enabled: Es poden establir permisos d'accions per a cada trobada
79
84
  step:
80
85
  announcement: Anunci
81
86
  comments_blocked: Comentaris bloquejats
@@ -101,6 +106,11 @@ ca:
101
106
  email_outro: Has rebut aquesta notificació perquè estàs seguint la trobada "%{resource_title}". Pots deixar-la de seguir des de l'enllaç anterior.
102
107
  email_subject: La trobada "%{resource_title}" s'ha actualitzat
103
108
  notification_title: La trobada <a href="%{resource_path}">%{resource_title}</a> ha estat actualitzada.
109
+ registration_code_validated:
110
+ email_intro: S'ha validat el teu codi de registre "%{registration_code}".
111
+ email_outro: Has rebut aquesta notificació perquè s'ha validat el teu codi de registre per a la trobada "%{resource_title}".
112
+ email_subject: S'ha validat el teu codi de registre "%{registration_code}"
113
+ notification_title: S'ha validat el teu codi de registre "%{registration_code}" per a la trobada <a href="%{resource_path}">%{resource_title}</a>.
104
114
  registrations_enabled:
105
115
  email_intro: 'La trobada "%{resource_title}" ha activat inscripcions. Pots registrar-te a la seva pàgina:'
106
116
  email_outro: Has rebut aquesta notificació perquè estàs seguint la trobada "%{resource_title}". Pots deixar-la de seguir des de l'enllaç anterior.
@@ -160,16 +170,31 @@ ca:
160
170
  registrations: Inscripcions
161
171
  invite_join_meeting_mailer:
162
172
  invite:
163
- invited_you_to_join_a_meeting: "%{invited_by} t'ha convidat a participar en una trobada a %{application}. Pots acceptar la invitació a través de l'enllaç següent."
173
+ decline: Declina la invitació
174
+ invited_you_to_join_a_meeting: "%{invited_by} t'ha convidat a unir-te a una reunió a l' %{application}. Pots rebutjar o acceptar la invitació a través dels enllaços a continuació."
164
175
  join: Uneix-te a la trobada '%{meeting_title}'
165
176
  invites:
166
177
  create:
167
178
  error: Hi ha hagut un problema al convidar l'usuari a unir-se a la trobada.
168
179
  success: L'usuari s'ha convidat correctament a unir-se a la trobada.
169
- new:
170
- explanation: L'usuari serà convidat a participar en una trobada. Si el correu electrònic no està registrat, també se'l convidarà a l'organització.
180
+ form:
181
+ attendee_type: Tipus d'assistent
182
+ existing_user: Usuari existent
171
183
  invite: Convidar
172
- new_invite: Convida l'usuari
184
+ invite_explanation: L'usuari serà convidat a participar a la trobada i també a l'organització.
185
+ non_user: Usuari no existent
186
+ select_user: Selecciona l'usuari
187
+ index:
188
+ filter:
189
+ accepted: Acceptades
190
+ all: Totes
191
+ rejected: Rebutjades
192
+ sent: Enviat
193
+ filter_by: Filtra per
194
+ invite_attendee: Convida l'assistent
195
+ invites: Invitacions
196
+ registrations_disabled: No pots convidar un assistent perquè les inscripcions estan inhabilitades.
197
+ search: Cerca
173
198
  meeting_closes:
174
199
  edit:
175
200
  close: Tancar
@@ -226,9 +251,11 @@ ca:
226
251
  registrations:
227
252
  edit:
228
253
  save: Desa
254
+ validate: Validar
255
+ validate_registration_code: Valida el codi de registre
229
256
  form:
230
257
  available_slots_help: Deixeu-lo a 0 si teniu espais il·limitats disponibles.
231
- invite_user: Convida l'usuari
258
+ invites: Invitacions
232
259
  registrations_count:
233
260
  one: Hi ha hagut 1 inscripció.
234
261
  other: Hi ha hagut %{count} inscripcions.
@@ -237,7 +264,14 @@ ca:
237
264
  update:
238
265
  invalid: S'ha produït un problema en desar la configuració de la inscripció.
239
266
  success: La configuració de les inscripcions de la trobada s'ha desat correctament.
267
+ validate_registration_code:
268
+ invalid: Aquest codi de registre no és vàlid.
269
+ success: El codi de registre s'ha validat amb èxit.
240
270
  admin_log:
271
+ invite:
272
+ create: "%{user_name} ha convidat %{attendee_name} a unir-se a la trobada %{resource_name} dins l'espai %{space_name}"
273
+ deleted: "%{user_name} ha eliminat l'invitació de %{attendee_name} per unir-se a la trobada %{resource_name} a l'espai %{space_name}"
274
+ update: "%{user_name} ha convidat %{attendee_name} a unir-se a la trobada %{resource_name} a l'espai %{space_name}"
241
275
  meeting:
242
276
  close: "%{user_name} ha tancat la trobada %{resource_name} a l'espai %{space_name}"
243
277
  create: "%{user_name} ha creat la trobada %{resource_name} a l'espai %{space_name}"
@@ -296,6 +330,16 @@ ca:
296
330
  other: "%{count} inscripcions restants"
297
331
  view: Veure
298
332
  models:
333
+ invite:
334
+ fields:
335
+ email: Correu electrònic
336
+ name: Nom
337
+ sent_at: Enviat el
338
+ status: Estat
339
+ status:
340
+ accepted: Acceptada (%{at})
341
+ rejected: Rebutjada (%{at})
342
+ sent: Enviat
299
343
  meeting:
300
344
  fields:
301
345
  closed: Tancada
@@ -308,10 +352,14 @@ ca:
308
352
  confirmation:
309
353
  confirmed_html: La teva inscripció a la trobada <a href="%{url}">%{title}</a> ha estat confirmada.
310
354
  details: A l'arxiu adjunt trobaràs els detalls de la reunió.
355
+ registration_code: El teu codi de registre és %{code}.
311
356
  registrations:
312
357
  create:
313
358
  invalid: Hi ha hagut un problema en inscriure's a aquesta reunió.
314
359
  success: T'has inscrit a la reunió amb èxit.
360
+ decline_invitation:
361
+ invalid: Hi ha hagut un problema en declinar la invitació.
362
+ success: Has declinat la invitació amb èxit.
315
363
  destroy:
316
364
  invalid: Hi ha hagut un problema en sortir d'aquesta trobada.
317
365
  success: Heu deixat la trobada amb èxit.
@@ -39,6 +39,10 @@ en:
39
39
  base:
40
40
  too_many_minutes: The duration of the items exceed the meeting duration by %{count} minutes
41
41
  too_many_minutes_child: The duration of the item childs exceed the agenda item "%{parent_title}" parent duration by %{count} minutes
42
+ meeting_registration_invite:
43
+ attributes:
44
+ email:
45
+ already_invited: This email has already been invited
42
46
  models:
43
47
  decidim/meetings/close_meeting_event: Meeting closed
44
48
  decidim/meetings/create_meeting_event: Meeting
@@ -77,6 +81,7 @@ en:
77
81
  announcement: Announcement
78
82
  comments_enabled: Comments enabled
79
83
  default_registration_terms: Default registration terms
84
+ resources_permissions_enabled: Actions permissions can be set for each meeting
80
85
  step:
81
86
  announcement: Announcement
82
87
  comments_blocked: Comments blocked
@@ -102,6 +107,11 @@ en:
102
107
  email_outro: You have received this notification because you are following the "%{resource_title}" meeting. You can unfollow it from the previous link.
103
108
  email_subject: The "%{resource_title}" meeting was updated
104
109
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> meeting was updated.
110
+ registration_code_validated:
111
+ email_intro: Your registration code "%{registration_code}" has been validated.
112
+ email_outro: You have received this notification because your registration code for the "%{resource_title}" meeting has been validated.
113
+ email_subject: Your registration code "%{registration_code}" has been validated
114
+ notification_title: Your registration code "%{registration_code}" for the <a href="%{resource_path}">%{resource_title}</a> meeting has been validated.
105
115
  registrations_enabled:
106
116
  email_intro: 'The "%{resource_title}" meeting has enabled registrations. You can register yourself on its page:'
107
117
  email_outro: You have received this notification because you are following the "%{resource_title}" meeting. You can unfollow it from the previous link.
@@ -161,16 +171,31 @@ en:
161
171
  registrations: Registrations
162
172
  invite_join_meeting_mailer:
163
173
  invite:
164
- invited_you_to_join_a_meeting: "%{invited_by} has invited you to join a meeting at %{application}. You can accept it through the link below."
174
+ decline: Decline invitation
175
+ invited_you_to_join_a_meeting: "%{invited_by} has invited you to join a meeting at %{application}. You can decline or accept it through the links below."
165
176
  join: Join meeting '%{meeting_title}'
166
177
  invites:
167
178
  create:
168
179
  error: There's been a problem while inviting the user to join the meeting.
169
180
  success: User successfully invited to join the meeting.
170
- new:
171
- explanation: The user will be invited to join a meeting. If the email is not registered they will be invited to the organization as well.
181
+ form:
182
+ attendee_type: Attendee type
183
+ existing_user: Existing user
172
184
  invite: Invite
173
- new_invite: Invite user
185
+ invite_explanation: The user will be invited to join the meeting and to the organization as well.
186
+ non_user: Non existing user
187
+ select_user: Select user
188
+ index:
189
+ filter:
190
+ accepted: Accepted
191
+ all: All
192
+ rejected: Rejected
193
+ sent: Sent
194
+ filter_by: Filter by
195
+ invite_attendee: Invite attendee
196
+ invites: Invites
197
+ registrations_disabled: You can't invite an attendee because the registrations are disabled.
198
+ search: Search
174
199
  meeting_closes:
175
200
  edit:
176
201
  close: Close
@@ -227,9 +252,11 @@ en:
227
252
  registrations:
228
253
  edit:
229
254
  save: Save
255
+ validate: Validate
256
+ validate_registration_code: Validate registration code
230
257
  form:
231
258
  available_slots_help: Leave it to 0 if you have unlimited slots available.
232
- invite_user: Invite user
259
+ invites: Invites
233
260
  registrations_count:
234
261
  one: There has been 1 registration.
235
262
  other: There has been %{count} registrations.
@@ -239,7 +266,14 @@ en:
239
266
  update:
240
267
  invalid: There's been a problem saving the registration settings.
241
268
  success: Meeting registrations settings successfully saved.
269
+ validate_registration_code:
270
+ invalid: This registration code is invalid.
271
+ success: Registration code successfully validated.
242
272
  admin_log:
273
+ invite:
274
+ create: "%{user_name} invited %{attendee_name} to join %{resource_name} meeting on the %{space_name} space"
275
+ deleted: "%{user_name} uninvited %{attendee_name} from joining %{resource_name} meeting on the %{space_name} space"
276
+ update: "%{user_name} invited %{attendee_name} to join %{resource_name} meeting on the %{space_name} space"
243
277
  meeting:
244
278
  close: "%{user_name} closed the %{resource_name} meeting on the %{space_name} space"
245
279
  create: "%{user_name} created the %{resource_name} meeting on the %{space_name} space"
@@ -299,6 +333,16 @@ en:
299
333
  zero: No slots remaining
300
334
  view: View
301
335
  models:
336
+ invite:
337
+ fields:
338
+ email: Email
339
+ name: Name
340
+ sent_at: Sent at
341
+ status: Status
342
+ status:
343
+ accepted: Accepted (%{at})
344
+ rejected: Rejected (%{at})
345
+ sent: Sent
302
346
  meeting:
303
347
  fields:
304
348
  closed: Closed
@@ -311,10 +355,14 @@ en:
311
355
  confirmation:
312
356
  confirmed_html: Your registration for the meeting <a href="%{url}">%{title}</a> has been confirmed.
313
357
  details: You will find the meeting's details in the attachment.
358
+ registration_code: Your registration code is %{code}.
314
359
  registrations:
315
360
  create:
316
361
  invalid: There's been a problem joining this meeting.
317
362
  success: You have joined the meeting successfully.
363
+ decline_invitation:
364
+ invalid: There's been a problem declining the invitation.
365
+ success: You have declined the invitation successfully.
318
366
  destroy:
319
367
  invalid: There's been a problem leaving this meeting.
320
368
  success: You have left the meeting successfully.
@@ -38,6 +38,10 @@ es-PY:
38
38
  base:
39
39
  too_many_minutes: La duración de los ítems supera la duración del encuentro en %{count} minutos
40
40
  too_many_minutes_child: La duración de los sub-ítems excede el punto "%{parent_title}" del orden del dia en %{count} minuto
41
+ meeting_registration_invite:
42
+ attributes:
43
+ email:
44
+ already_invited: Esta persona ya ha sido invitada
41
45
  models:
42
46
  decidim/meetings/close_meeting_event: Encuentro cerrado
43
47
  decidim/meetings/create_meeting_event: Encuentro
@@ -76,6 +80,7 @@ es-PY:
76
80
  announcement: Anuncio
77
81
  comments_enabled: Comentarios habilitados
78
82
  default_registration_terms: Términos de registro predeterminados
83
+ resources_permissions_enabled: Los permisos sobre acciones pueden establecerse para cada encuentro
79
84
  step:
80
85
  announcement: Anuncio
81
86
  comments_blocked: Comentarios bloqueados
@@ -101,6 +106,11 @@ es-PY:
101
106
  email_outro: Has recibido esta notificación porque sigues el encuentro "%{resource_title}". Puedes dejar de seguirlo en el enlace anterior.
102
107
  email_subject: Se ha actualizado el encuentro "%{resource_title}"
103
108
  notification_title: El encuentro <a href="%{resource_path}">%{resource_title}</a> ha sido actualizado.
109
+ registration_code_validated:
110
+ email_intro: Su código de registro "%{registration_code}" ha sido validado.
111
+ email_outro: Recibió esta notificación porque su código de registro para el encuentro "%{resource_title}" ha sido validado.
112
+ email_subject: Su código de registro "%{registration_code}" ha sido validado
113
+ notification_title: Su código de registro "%{registration_code}" para el encuentro <a href="%{resource_path}">%{resource_title}</a> ha sido validado.
104
114
  registrations_enabled:
105
115
  email_intro: 'El encuentro "%{resource_title}" ha ha abierto las inscripciones. Puedes inscribirte en su página:'
106
116
  email_outro: Has recibido esta notificación porque sigues el encuentro "%{resource_title}". Puedes dejar de seguirlo en el enlace anterior.
@@ -160,16 +170,31 @@ es-PY:
160
170
  registrations: Inscripciones
161
171
  invite_join_meeting_mailer:
162
172
  invite:
173
+ decline: Rechazar invitación
163
174
  invited_you_to_join_a_meeting: "%{invited_by} te ha invitado a unirte a un encuentro en %{application}. Puedes aceptarlo a través del siguiente enlace."
164
175
  join: Únete al encuentro '%{meeting_title}'
165
176
  invites:
166
177
  create:
167
178
  error: Ha habido un problema al invitar al usuario a unirse al encuentro.
168
179
  success: El usuario ha sido invitado con éxito a unirse al encuentro.
169
- new:
170
- explanation: El usuario será invitado a unirse a un encuentro. Si el correo electrónico no está registrado, será invitado a la organización también.
180
+ form:
181
+ attendee_type: Tipo de asistente
182
+ existing_user: Usuario existente
171
183
  invite: Invitar
172
- new_invite: Invitar usuario
184
+ invite_explanation: El usuario será invitado a unirse a la reunión y también a la organización.
185
+ non_user: Usuario no existente
186
+ select_user: Selecciona un usuario
187
+ index:
188
+ filter:
189
+ accepted: Aceptada
190
+ all: Todas
191
+ rejected: Rechazada
192
+ sent: Enviadas
193
+ filter_by: Filtrar por
194
+ invite_attendee: Invitar asistente
195
+ invites: Invitaciones
196
+ registrations_disabled: No puedes invitar al asistente porque las inscripciones están deshabilitadas.
197
+ search: Buscar
173
198
  meeting_closes:
174
199
  edit:
175
200
  close: Cerrar
@@ -226,9 +251,11 @@ es-PY:
226
251
  registrations:
227
252
  edit:
228
253
  save: Guardar
254
+ validate: Validar
255
+ validate_registration_code: Validar el código de registro
229
256
  form:
230
257
  available_slots_help: Déjalo a 0 si tiene inscripciones ilimitadas.
231
- invite_user: Invitar usuario
258
+ invites: Invitaciones
232
259
  registrations_count:
233
260
  one: Ha habido 1 inscripción.
234
261
  other: Ha habido %{count} inscripciones.
@@ -237,7 +264,14 @@ es-PY:
237
264
  update:
238
265
  invalid: Se ha producido un problema al guardar la configuración de la inscripción.
239
266
  success: Se han guardado correctamente las configuraciones de inscripciones de encuentros.
267
+ validate_registration_code:
268
+ invalid: Este código de registro no es válido.
269
+ success: Código de registro validado con éxito.
240
270
  admin_log:
271
+ invite:
272
+ create: "%{user_name} ha invitado a %{attendee_name} a unirse a la reunión %{resource_name} en el espacio %{space_name}"
273
+ deleted: "%{user_name} ha eliminado la invitación de %{attendee_name} de unirse a la reunión %{resource_name} en el espacio %{space_name}"
274
+ update: "%{user_name} ha invitado a %{attendee_name} a unirse a la reunión %{resource_name} en el espacio %{space_name}"
241
275
  meeting:
242
276
  close: "%{user_name} cerró el encuentro %{resource_name} en el espacio %{space_name}"
243
277
  create: "%{user_name} creó el encuentro %{resource_name} en el espacio %{space_name}"
@@ -296,6 +330,16 @@ es-PY:
296
330
  other: "%{count} inscripciones disponibles"
297
331
  view: Ver
298
332
  models:
333
+ invite:
334
+ fields:
335
+ email: Correo electrónico
336
+ name: Nombre
337
+ sent_at: Enviado el
338
+ status: Estado
339
+ status:
340
+ accepted: Aceptada (%{at})
341
+ rejected: Rechazada (%{at})
342
+ sent: Enviadas
299
343
  meeting:
300
344
  fields:
301
345
  closed: Cerrado
@@ -308,10 +352,14 @@ es-PY:
308
352
  confirmation:
309
353
  confirmed_html: Se ha confirmado su inscripción para el encuentro <a href="%{url}">%{title}</a>.
310
354
  details: Encontrarás detalles del encuentro en el archivo adjunto.
355
+ registration_code: Tu código de registro es %{code}.
311
356
  registrations:
312
357
  create:
313
358
  invalid: Ha habido un problema al unirse a este encuentro.
314
359
  success: Te has inscrito al encuentro con éxito.
360
+ decline_invitation:
361
+ invalid: Ha habido un problema al rechazar la invitación.
362
+ success: Has rechazado la invitación con éxito.
315
363
  destroy:
316
364
  invalid: Ha habido un problema al salir de esta encuentro.
317
365
  success: Has salido del encuentro con éxito.