decidim-meetings 0.28.0.rc5 → 0.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/packs/src/decidim/meetings/poll.component.js +27 -0
  3. data/app/views/decidim/meetings/admin/meetings/index.html.erb +2 -2
  4. data/app/views/decidim/meetings/polls/answers/_multiple_option.html.erb +13 -9
  5. data/app/views/decidim/meetings/polls/answers/_single_option.html.erb +2 -2
  6. data/app/views/decidim/meetings/polls/questions/_published_question.html.erb +2 -2
  7. data/config/locales/ar.yml +0 -2
  8. data/config/locales/ca.yml +3 -3
  9. data/config/locales/de.yml +2 -2
  10. data/config/locales/el.yml +0 -2
  11. data/config/locales/es-MX.yml +3 -3
  12. data/config/locales/es.yml +4 -4
  13. data/config/locales/eu.yml +4 -4
  14. data/config/locales/fi-plain.yml +0 -2
  15. data/config/locales/fi.yml +0 -2
  16. data/config/locales/fr-CA.yml +5 -4
  17. data/config/locales/fr.yml +2 -4
  18. data/config/locales/ga-IE.yml +0 -2
  19. data/config/locales/gl.yml +0 -3
  20. data/config/locales/hu.yml +0 -2
  21. data/config/locales/id-ID.yml +0 -3
  22. data/config/locales/is-IS.yml +3 -0
  23. data/config/locales/it.yml +2 -4
  24. data/config/locales/ja.yml +0 -2
  25. data/config/locales/lb.yml +1 -5
  26. data/config/locales/lt.yml +0 -2
  27. data/config/locales/lv.yml +0 -3
  28. data/config/locales/nl.yml +0 -2
  29. data/config/locales/no.yml +0 -2
  30. data/config/locales/pl.yml +2 -4
  31. data/config/locales/pt-BR.yml +70 -3
  32. data/config/locales/pt.yml +1 -3
  33. data/config/locales/ro-RO.yml +0 -2
  34. data/config/locales/ru.yml +1 -4
  35. data/config/locales/sk.yml +0 -3
  36. data/config/locales/sv.yml +1 -3
  37. data/config/locales/tr-TR.yml +1 -3
  38. data/config/locales/uk.yml +1 -4
  39. data/config/locales/zh-CN.yml +0 -2
  40. data/config/locales/zh-TW.yml +0 -2
  41. data/lib/decidim/meetings/seeds.rb +22 -5
  42. data/lib/decidim/meetings/version.rb +1 -1
  43. metadata +16 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1d2e2fb699ba2144390022c28308729df22f5b8394b4dab2ddbb988ad703d10
4
- data.tar.gz: 5a7670d74f16eba4abf620bb9cecc44f9e3a7e63359e1515eec685219221b8dd
3
+ metadata.gz: 5b8de2ee7bede30592be558a09be0e7d8a115aea74a326804c82117e434eae0b
4
+ data.tar.gz: 0bc799af5e46e7d1269bc76206d1e991fc1c399528dd81e93a6aef313189e07b
5
5
  SHA512:
6
- metadata.gz: 69af369fbf457167d713ff1a29599c4df80e1e6ff7d0fa99dc2bd652693614e00d58d8afcac4c8fa60d57145396020c3f880335cada49076f0ee1f89f576c237
7
- data.tar.gz: a181026621f948cdc8051f1f44414745ebddef520ce91114646effa4765b4b898c8855128fcc43c712a684d2eaad62152a9323757f6164229439f12e9c2babc9
6
+ metadata.gz: 70af236becae29700b28fc26371136321a6d5ced3d446c031fca3b4f9cc1354b187bddb0bda1645a5eee24b1705ff0b72bb3992b843fbda8aaa1b451ebdec0c8
7
+ data.tar.gz: 1870dd9d98d85ec56a01d564c895f022996ddedb964ff9759e965e11c91e309f81a400c3a27dece73b9be05ea1566a26ae18bb8ba507c38446e575cfd221ac8f
@@ -1,5 +1,8 @@
1
1
  /* eslint id-length: ["error", { "exceptions": ["$"] }] */
2
2
 
3
+ import createOptionAttachedInputs from "src/decidim/forms/option_attached_inputs.component"
4
+ import createMaxChoicesAlertComponent from "src/decidim/forms/max_choices_alert.component"
5
+
3
6
  /**
4
7
  * A plain Javascript component that handles questions from polls in meetings:
5
8
  * - fetches them via Ajax
@@ -75,6 +78,7 @@ export default class PollComponent {
75
78
  this._updateCounter();
76
79
  this._setQuestionsState(this.$element);
77
80
  this._pollQuestions();
81
+ this._addValidations();
78
82
  });
79
83
  }
80
84
 
@@ -163,4 +167,27 @@ export default class PollComponent {
163
167
  this.$counter.html(`(${questionsCount})`);
164
168
  }
165
169
  }
170
+
171
+ _addValidations() {
172
+ $(".js-radio-button-collection, .js-check-box-collection").each((idx, el) => {
173
+ createOptionAttachedInputs({
174
+ wrapperField: $(el),
175
+ controllerFieldSelector: "input[type=radio], input[type=checkbox]",
176
+ dependentInputSelector: "input[type=text], input[type=hidden]"
177
+ });
178
+ });
179
+
180
+ $.unique($(".js-check-box-collection").parents(".answer")).each((idx, el) => {
181
+ const maxChoices = $(el).data("max-choices");
182
+ if (maxChoices) {
183
+ createMaxChoicesAlertComponent({
184
+ wrapperField: $(el),
185
+ controllerFieldSelector: "input[type=checkbox]",
186
+ controllerCollectionSelector: ".js-check-box-collection",
187
+ alertElement: $(el).find(".max-choices-alert"),
188
+ maxChoices: maxChoices
189
+ });
190
+ }
191
+ });
192
+ }
166
193
  }
@@ -17,7 +17,7 @@
17
17
  <th>
18
18
  <%= sort_link(query, :id, t("models.meeting.fields.id", scope: "decidim.meetings"), default_order: :desc ) %>
19
19
  </th>
20
- <th>
20
+ <th class="!text-left">
21
21
  <%= sort_link(query, :translated_title, t("models.meeting.fields.title", scope: "decidim.meetings"), default_order: :desc ) %>
22
22
  </th>
23
23
  <th>
@@ -46,7 +46,7 @@
46
46
  <td>
47
47
  <%= meeting.id %><br>
48
48
  </td>
49
- <td>
49
+ <td class="!text-left">
50
50
  <% if allowed_to? :update, :meeting, meeting: meeting %>
51
51
  <%= link_to present(meeting).title(html_escape: true), edit_meeting_path(meeting) %>
52
52
  <% else %>
@@ -1,13 +1,17 @@
1
- <% question.answer_options.each_with_index do |answer_option, idx| %>
2
- <% choice = answer.choices.find { |choice| choice.decidim_answer_option_id == answer_option.id } if answer %>
1
+ <div class="answer-questionnaire__single-option js-check-box-collection">
2
+ <% question.answer_options.each_with_index do |answer_option, idx| %>
3
+ <% choice = answer.choices.find { |choice| choice.decidim_answer_option_id == answer_option.id } if answer %>
3
4
 
4
- <%= label_tag do %>
5
- <%= check_box_tag "answer[choices][#{idx}][body]",
6
- translated_attribute(answer_option.body),
7
- choice.present?, disabled: %>
5
+ <div class="js-collection-input">
6
+ <%= label_tag do %>
7
+ <%= check_box_tag "answer[choices][#{idx}][body]",
8
+ translated_attribute(answer_option.body),
9
+ choice.present?, disabled: %>
8
10
 
9
- <%= translated_attribute(answer_option.body) %>
11
+ <%= translated_attribute(answer_option.body) %>
10
12
 
11
- <%= hidden_field_tag "answer[choices][#{idx}][answer_option_id]", answer_option.id, disabled: %>
13
+ <%= hidden_field_tag "answer[choices][#{idx}][answer_option_id]", answer_option.id, disabled: %>
14
+ <% end %>
15
+ </div>
12
16
  <% end %>
13
- <% end %>
17
+ </div>
@@ -4,14 +4,14 @@
4
4
  <% choice_id = "#{field_id}_choices_#{idx}" %>
5
5
 
6
6
  <%= label_tag "#{choice_id}_body" do %>
7
- <%= radio_button_tag "answer[choices][#{idx}][body]",
7
+ <%= radio_button_tag "answer[choices][#{question.id}][body]",
8
8
  translated_attribute(answer_option.body),
9
9
  answer_option.id == choice.try(:decidim_answer_option_id),
10
10
  id: "#{choice_id}_body", disabled: %>
11
11
 
12
12
  <%= translated_attribute(answer_option.body) %>
13
13
 
14
- <%= hidden_field_tag "answer[choices][#{idx}][answer_option_id]",
14
+ <%= hidden_field_tag "answer[choices][#{question.id}][answer_option_id]",
15
15
  answer_option.id,
16
16
  id: "#{choice_id}_answer_option",
17
17
  disabled: %>
@@ -6,12 +6,12 @@
6
6
  <% @form = form || Decidim::Meetings::AnswerForm.new(question_id: question.id, current_user:) %>
7
7
  <%= decidim_form_for(@form, url: meeting_polls_answers_path(meeting), method: :post, remote: true, html: { class: "form-defaults mt-4" }, data: { "safe-path" => meeting_live_event_path(meeting) }) do |form| %>
8
8
  <div class="answer question" data-max-choices="<%= question.max_choices %>">
9
+ <p class="form-error max-choices-alert mt-0 mb-4"><%= t(".max_choices_alert") %></p>
10
+
9
11
  <%= render partial: "decidim/meetings/polls/answers/#{question.question_type}", locals: { answer: @form.answer, question:, answer_form: form, disabled: question.answered_by?(current_user), field_id: question.id } %>
10
12
 
11
13
  <%= form.hidden_field :question_id %>
12
14
 
13
- <small class="form-error max-choices-alert"><%= t(".max_choices_alert") %></small>
14
-
15
15
  <% @form.errors.full_messages.each do |msg| %>
16
16
  <small class="form-error is-visible mt-1"><%= msg %></small>
17
17
  <% end %>
@@ -268,9 +268,7 @@ ar:
268
268
  select_user: اختر المشارك
269
269
  index:
270
270
  filter:
271
- accepted: وافقت
272
271
  all: الكل
273
- rejected: مرفوض
274
272
  sent: أرسلت
275
273
  invite_attendee: دعوة الحضور
276
274
  invites: تدعو
@@ -283,10 +283,10 @@ ca:
283
283
  select_user: Selecciona la participant
284
284
  index:
285
285
  filter:
286
- accepted: Acceptat
286
+ accepted: Acceptada
287
287
  all: Totes
288
- rejected: Rebutjades
289
- sent: Enviades
288
+ rejected: Rebutjada
289
+ sent: Enviat
290
290
  invite_attendee: Convidar assistent
291
291
  invites: Invitacions
292
292
  registrations_disabled: No pots convidar a cap persona perquè les inscripcions estan inhabilitades.
@@ -9,7 +9,7 @@ de:
9
9
  closing_report: Protokoll
10
10
  closing_visible: Ist sichtbar
11
11
  contributions_count: Anzahl der Beiträge
12
- proposal_ids: An der Sitzung entstandene Vorschläge
12
+ proposal_ids: Vorschläge aus der Veranstaltung
13
13
  video_url: Video-URL
14
14
  meeting:
15
15
  address: Adresse
@@ -283,7 +283,7 @@ de:
283
283
  select_user: Nutzer wählen
284
284
  index:
285
285
  filter:
286
- accepted: Akzeptiert
286
+ accepted: Angenommen
287
287
  all: Alle
288
288
  rejected: Abgelehnt
289
289
  sent: Geschickt
@@ -276,9 +276,7 @@ el:
276
276
  select_user: Επιλέξτε συμμετέχοντα
277
277
  index:
278
278
  filter:
279
- accepted: Έγινε αποδοχή
280
279
  all: Όλα
281
- rejected: Απορρίφθηκε
282
280
  sent: Στάλθηκε
283
281
  invite_attendee: Πρόσκληση συμμετέχοντα
284
282
  invites: Προσκλήσεις
@@ -283,10 +283,10 @@ es-MX:
283
283
  select_user: Seleccionar usuario
284
284
  index:
285
285
  filter:
286
- accepted: Aceptado
286
+ accepted: Aceptada
287
287
  all: Todas
288
- rejected: Rechazadas
289
- sent: Expedidas
288
+ rejected: Rechazada
289
+ sent: Expedida
290
290
  invite_attendee: Invitar a un asistente
291
291
  invites: Invitaciones
292
292
  registrations_disabled: No puedes invitar a nadie porque las inscripciones están deshabilitadas.
@@ -283,10 +283,10 @@ es:
283
283
  select_user: Seleccionar participante
284
284
  index:
285
285
  filter:
286
- accepted: Aceptado
287
- all: Todas
288
- rejected: Rechazadas
289
- sent: Enviades
286
+ accepted: Aceptada
287
+ all: Todos
288
+ rejected: Rechazada
289
+ sent: Enviado
290
290
  invite_attendee: Invitar asistente
291
291
  invites: Invitaciones
292
292
  registrations_disabled: No puedes invitar a nadie porque las inscripciones están deshabilitadas.
@@ -283,10 +283,10 @@ eu:
283
283
  select_user: Hautatu parte-hartzailea
284
284
  index:
285
285
  filter:
286
- accepted: Onartuta
287
- all: Guztiak
288
- rejected: Baztertuta
289
- sent: Bidalita
286
+ accepted: Onartua
287
+ all: Denak
288
+ rejected: Baztertua
289
+ sent: Bidalia
290
290
  invite_attendee: Gonbidatu
291
291
  invites: Gonbidapenak
292
292
  registrations_disabled: Ezin duzu inor gonbidatu izen-emateak desgaituta daudelako.
@@ -283,9 +283,7 @@ fi-pl:
283
283
  select_user: Valitse käyttäjä
284
284
  index:
285
285
  filter:
286
- accepted: Hyväksytyt
287
286
  all: Kaikki
288
- rejected: Hylätyt
289
287
  sent: Lähetetyt
290
288
  invite_attendee: Kutsu osallistuja
291
289
  invites: Kutsut
@@ -283,9 +283,7 @@ fi:
283
283
  select_user: Valitse käyttäjä
284
284
  index:
285
285
  filter:
286
- accepted: Hyväksytyt
287
286
  all: Kaikki
288
- rejected: Hylätyt
289
287
  sent: Lähetetyt
290
288
  invite_attendee: Kutsu osallistuja
291
289
  invites: Kutsut
@@ -23,6 +23,7 @@ fr-CA:
23
23
  id: ID
24
24
  iframe_access_level: Niveau d'accès Iframe
25
25
  iframe_embed_type: Type d'Iframe encapsulée
26
+ iframe_embed_type_html: Seuls quelques services permettent d'intégrer la page "Intégrer à la page de réunion" ou "Ouvrir dans la page des événements en direct". Notez que avec l'option "Intégrer à la page de réunion" sur les mobiles, comme l'écran hérite de différentes dimensions, il fonctionnera en fait comme une "Ouvrir dans la page des événements en direct".
26
27
  location: Lieu
27
28
  location_hints: Indicateurs d’emplacement
28
29
  online_meeting_url: URL de la rencontre
@@ -282,14 +283,12 @@ fr-CA:
282
283
  select_user: Sélectionner un utilisateur
283
284
  index:
284
285
  filter:
285
- accepted: Acceptée
286
- all: Tout
287
- rejected: Rejeté
286
+ all: Toutes
288
287
  sent: Envoyé
289
288
  invite_attendee: Inviter un participant
290
289
  invites: Invitations
291
290
  registrations_disabled: Vous ne pouvez pas inviter un participant car les inscriptions sont désactivées.
292
- search: Chercher
291
+ search: Rechercher
293
292
  meeting_closes:
294
293
  edit:
295
294
  close: Clore
@@ -313,6 +312,7 @@ fr-CA:
313
312
  form:
314
313
  address_help: 'L''adresse entrée est utilisée par le géocodage pour trouver l''emplacement et afficher la réunion sur la carte. Format accepté : [n°] [rue] [code postal] [ville]'
315
314
  disclaimer: 'Avertissement : En utilisant un système d''enregistrement externe, sachez que les organisateurs de %{organization} ne sont pas responsables des données fournies par les utilisateurs au service externe.'
315
+ iframe_embed_type_html: 'Seuls quelques services permettent d''intégrer des réunions ou des événements en direct depuis les domaines suivants : %{domains}'
316
316
  location_help: 'Le lieu indique le nom de l''endroit qui accueille la réunion (ex : Maison de la citoyenneté)'
317
317
  location_hints_help: 'Indices de localisation : informations complémentaires. Exemple: l''étage du bâtiment s''il s''agit d''une réunion en personne, ou le mot de passe de la réunion s''il s''agit d''une réunion en ligne avec accès restreint.'
318
318
  online_meeting_url_help: 'Lien : permet aux participants de se connecter directement à votre réunion'
@@ -498,6 +498,7 @@ fr-CA:
498
498
  available_slots_help: Laisser à 0 si le nombre de places disponibles est illimité
499
499
  create_as: Créer une réunion en tant que
500
500
  disclaimer: 'Avertissement : En utilisant un système d''enregistrement externe, sachez que les organisateurs de %{organization} ne sont pas responsables des données fournies par les utilisateurs au service externe.'
501
+ iframe_embed_type_html: 'Seuls quelques services permettent d''intégrer des réunions ou des événements en direct depuis les domaines suivants : %{domains}'
501
502
  location_help: 'Emplacement: message adressé aux utilisateurs impliquant le point de rencontre à'
502
503
  location_hints_help: 'Indices de localisation : informations complémentaires. Exemple: l''étage du bâtiment s''il s''agit d''une réunion en personne, ou le mot de passe de la réunion s''il s''agit d''une réunion en ligne avec accès restreint.'
503
504
  online_meeting_url_help: 'Lien : permettre aux participants de se connecter directement à votre rencontre'
@@ -283,14 +283,12 @@ fr:
283
283
  select_user: Sélectionner un utilisateur
284
284
  index:
285
285
  filter:
286
- accepted: Acceptée
287
- all: Tout
288
- rejected: Rejeté
286
+ all: Toutes
289
287
  sent: Envoyé
290
288
  invite_attendee: Inviter un participant
291
289
  invites: Invitations
292
290
  registrations_disabled: Vous ne pouvez pas inviter un participant car les inscriptions sont désactivées.
293
- search: Chercher
291
+ search: Rechercher
294
292
  meeting_closes:
295
293
  edit:
296
294
  close: Clore
@@ -81,9 +81,7 @@ ga:
81
81
  invite: Tabhair Cuireadh
82
82
  index:
83
83
  filter:
84
- accepted: Glactha
85
84
  all: Uile
86
- rejected: Diúltaithe
87
85
  sent: Seolta
88
86
  invites: Cuirí
89
87
  search: Cuardaigh
@@ -196,9 +196,6 @@ gl:
196
196
  select_user: Seleccionar usuario
197
197
  index:
198
198
  filter:
199
- accepted: Aceptada
200
- all: Todo
201
- rejected: Rexeitado
202
199
  sent: Enviado
203
200
  invite_attendee: Invitar asistente
204
201
  invites: Invitacións
@@ -235,9 +235,7 @@ hu:
235
235
  select_user: Felhasználó kiválasztása
236
236
  index:
237
237
  filter:
238
- accepted: Elfogadva
239
238
  all: Összes
240
- rejected: Elutasítva
241
239
  sent: Elküldve
242
240
  invite_attendee: Résztvevő meghívása
243
241
  invites: Meghívottak
@@ -176,9 +176,6 @@ id:
176
176
  select_user: Pilih pengguna
177
177
  index:
178
178
  filter:
179
- accepted: Diterima
180
- all: Semua
181
- rejected: Ditolak
182
179
  sent: Terkirim
183
180
  invite_attendee: Undang hadirin
184
181
  invites: Undangan
@@ -89,6 +89,9 @@ is:
89
89
  invite_join_meeting_mailer:
90
90
  invite:
91
91
  join: Taka þátt í fundi '%{meeting_title}'
92
+ invites:
93
+ index:
94
+ search: Leita
92
95
  meeting_closes:
93
96
  edit:
94
97
  close: Loka
@@ -230,13 +230,11 @@ it:
230
230
  select_user: Seleziona utente
231
231
  index:
232
232
  filter:
233
- accepted: Accettato
234
- all: Tutti
235
- rejected: Respinto
233
+ all: Tutte
236
234
  sent: Inviato
237
235
  invite_attendee: Invita il partecipante
238
236
  invites: Inviti
239
- search: Ricerca
237
+ search: Cerca
240
238
  meeting_closes:
241
239
  edit:
242
240
  close: Chiudi
@@ -278,9 +278,7 @@ ja:
278
278
  select_user: 参加者を選択
279
279
  index:
280
280
  filter:
281
- accepted: 承認済み
282
281
  all: すべて
283
- rejected: 拒否
284
282
  sent: 送信済み
285
283
  invite_attendee: 参加者を招待
286
284
  invites: 招待
@@ -175,13 +175,9 @@ lb:
175
175
  select_user: Nutzer wählen
176
176
  index:
177
177
  filter:
178
- accepted: Akzeptiert
179
- all: Alle
180
- rejected: Abgelehnt
181
- sent: Geschickt
178
+ sent: Geschéckt
182
179
  invite_attendee: Teilnehmer einladen
183
180
  invites: Lädt ein
184
- search: Suche
185
181
  meeting_closes:
186
182
  edit:
187
183
  close: Schließen
@@ -288,9 +288,7 @@ lt:
288
288
  select_user: Pasirinkti dalyvį
289
289
  index:
290
290
  filter:
291
- accepted: Priimtas
292
291
  all: Visi
293
- rejected: Atmestas
294
292
  sent: Išsiųstas
295
293
  invite_attendee: Kviesti dalyvį
296
294
  invites: Pakvietimai
@@ -182,9 +182,6 @@ lv:
182
182
  select_user: Izvēlieties dalībnieku
183
183
  index:
184
184
  filter:
185
- accepted: Pieņemts
186
- all: Visi
187
- rejected: Noraidīts
188
185
  sent: Nosūtīts
189
186
  invite_attendee: Uzaicināt apmeklētāju
190
187
  invites: Ielūgumi
@@ -235,9 +235,7 @@ nl:
235
235
  select_user: Selecteer gebruiker
236
236
  index:
237
237
  filter:
238
- accepted: Aanvaard
239
238
  all: Alle
240
- rejected: Afgewezen
241
239
  sent: Verzonden
242
240
  invite_attendee: Nodig een deelnemer uit
243
241
  invites: Uitnodigingen
@@ -229,9 +229,7 @@
229
229
  select_user: Velg deltaker
230
230
  index:
231
231
  filter:
232
- accepted: Aksepterte
233
232
  all: Alle
234
- rejected: Avvist
235
233
  sent: Sendt
236
234
  invite_attendee: Inviter deltaker
237
235
  invites: Invitasjoner
@@ -230,10 +230,8 @@ pl:
230
230
  select_user: Wybierz użytkownika
231
231
  index:
232
232
  filter:
233
- accepted: Zaakceptowano
234
- all: Wszystko
235
- rejected: Odrzucono
236
- sent: Wysłane
233
+ all: Wszystkie
234
+ sent: Wysłano
237
235
  invite_attendee: Zaproś uczestnika
238
236
  invites: Zaproszeni
239
237
  search: Szukaj
@@ -19,6 +19,7 @@ pt-BR:
19
19
  decidim_scope_id: Âmbito
20
20
  decidim_user_group_id: Grupo de usuários
21
21
  description: Descrição
22
+ iframe_embed_type: Tipo de incorporação iframe
22
23
  location: Localização
23
24
  location_hints: Dicas de localização
24
25
  online_meeting_url: URL da reunião on-line
@@ -33,6 +34,14 @@ pt-BR:
33
34
  title: Título
34
35
  transparent: Transparente
35
36
  type_of_meeting: Tipo
37
+ errors:
38
+ models:
39
+ meeting:
40
+ attributes:
41
+ iframe_embed_type:
42
+ not_embeddable: Esta URL não pode ser incorporada na página de eventos de reunião ou ao vivo.
43
+ online_meeting_url:
44
+ url_format: Precisa ser uma URL válida
36
45
  models:
37
46
  decidim/meetings/close_meeting_event: Reunião fechada
38
47
  decidim/meetings/create_meeting_event: Encontro
@@ -53,6 +62,12 @@ pt-BR:
53
62
  other: Registros
54
63
  decidim:
55
64
  admin:
65
+ filters:
66
+ meetings:
67
+ with_any_type:
68
+ values:
69
+ hybrid: Híbrido
70
+ online: Virtual
56
71
  meeting_copies:
57
72
  create:
58
73
  error: Ocorreu um erro ao duplicar esta reunião.
@@ -205,13 +220,11 @@ pt-BR:
205
220
  select_user: Selecionar usuário
206
221
  index:
207
222
  filter:
208
- accepted: Aceitos
209
223
  all: Tudo
210
- rejected: Rejeitados
211
224
  sent: Enviado
212
225
  invite_attendee: Convidar participante
213
226
  invites: Convites
214
- search: Pesquisar
227
+ search: Pesquisa
215
228
  meeting_closes:
216
229
  edit:
217
230
  close: Fechar
@@ -226,12 +239,14 @@ pt-BR:
226
239
  update: Atualizar
227
240
  form:
228
241
  address_help: 'Endereço: usado pelo Geocodificador para encontrar a localização'
242
+ iframe_embed_type_html: 'Apenas alguns serviços permitem incorporar na reunião ou evento ao vivo dos seguintes domínios: %{domains}'
229
243
  location_help: 'Localização: mensagem direcionada aos usuários que imprimem o local para'
230
244
  location_hints_help: 'Dicas de localização: informações adicionais Exemplo: o piso do edifício se é uma reunião presencial, ou a senha da reunião, se é uma reunião online com acesso restrito.'
231
245
  online_meeting_url_help: 'Link: permitir que os participantes se conectem diretamente à sua reunião'
232
246
  registration_url_help: 'Link: permitir que os participantes possam acessar o serviço externo que você está usando para inscrições'
233
247
  select_a_meeting_type: Por favor, selecione um tipo de reunião
234
248
  select_a_registration_type: Por favor, selecione um tipo de registro
249
+ select_an_iframe_access_level: Por favor, selecione um nível de acesso iframe
235
250
  index:
236
251
  title: Reuniões
237
252
  new:
@@ -286,15 +301,47 @@ pt-BR:
286
301
  value_types:
287
302
  organizer_presenter:
288
303
  not_found: 'O organizador não foi encontrado no banco de dados (ID: %{id})'
304
+ questionnaire:
305
+ update: "%{user_name} atualizou o questionário para a reunião %{meeting_name}"
306
+ application_helper:
307
+ filter_category_values:
308
+ all: Todos
309
+ calendar:
310
+ meeting_to_event:
311
+ read_more: Leia mais sobre esta reunião
289
312
  calendar_modal:
290
313
  calendar_url: URL do calendário
314
+ copy_calendar_url: Copiar
315
+ copy_calendar_url_clarification: Copiar URL do calendário para área de transferência
316
+ copy_calendar_url_copied: Copiado!
317
+ copy_calendar_url_description: Você pode ver todas as reuniões publicadas no seu aplicativo de calendário ou provedor. Copie e cole esta URL do seu calendário utilizando a opção "Adicionar novo calendário a partir de uma URL".
318
+ copy_calendar_url_explanation: Por favor, note que você está exportando uma seleção de reuniões, pois existem filtros ativos. Se deseja exportá-los todos, redefina todos os filtros primeiro.
319
+ copy_calendar_url_message: URL copiada com sucesso para área de transferência.
291
320
  export_calendar: Calendário de exportação
321
+ close_meeting_reminder_mailer:
322
+ close_meeting_reminder:
323
+ body: A reunião <a href="%{meeting_path}">"%{meeting_title}"</a> está pendente para ser fechada. Adicione um relatório da reunião usando o botão "Fechar reunião".
324
+ greetings: Saudações,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
325
+ hello: Olá %{username},
326
+ subject: Agora você pode encerrar sua reunião com um relatório na plataforma %{organization_name}
292
327
  conference_venues: Locais de conferência
328
+ content_blocks:
329
+ upcoming_meetings:
330
+ name: Próximos encontros
293
331
  directory:
294
332
  meetings:
295
333
  index:
296
334
  meetings: Reuniões
297
335
  space_type: Espaço participativo
336
+ iframe_access_level:
337
+ all: Todos os visitantes
338
+ registered: Participantes registrados nesta reunião
339
+ signed_in: Apenas participantes registrados
340
+ iframe_embed_type:
341
+ embed_in_meeting_page: Incorporar na página da reunião
342
+ none: Nenhum
343
+ open_in_live_event_page: Abrir na página de eventos ao vivo (com enquetes opcionais)
344
+ open_in_new_tab: Abrir URL em uma nova aba
298
345
  layouts:
299
346
  live_event:
300
347
  administrate: Administrar
@@ -344,16 +391,20 @@ pt-BR:
344
391
  origin_values:
345
392
  all: Tudo
346
393
  official: Oficial
394
+ participants: Participantes
395
+ user_group: Grupos
347
396
  search: Pesquisa
348
397
  type: Tipo
349
398
  type_values:
350
399
  all: Tudo
400
+ hybrid: Híbrido
351
401
  in_person: Pessoalmente
352
402
  online: On-line
353
403
  form:
354
404
  address_help: 'Endereço: usado pelo Geocodificador para encontrar a localização'
355
405
  available_slots_help: Deixe-o em 0 se você tiver slots ilimitados disponíveis
356
406
  create_as: Criar reunião como
407
+ iframe_embed_type_html: 'Apenas alguns serviços permitem incorporar na reunião ou evento ao vivo dos seguintes domínios: %{domains}'
357
408
  location_help: 'Localização: mensagem direcionada aos usuários que imprimem o local para'
358
409
  location_hints_help: 'Dicas de localização: informações adicionais Exemplo: o piso do edifício se é uma reunião presencial, ou a senha da reunião, se é uma reunião online com acesso restrito.'
359
410
  online_meeting_url_help: 'Link: permitir que os participantes se conectem diretamente à sua reunião'
@@ -361,8 +412,15 @@ pt-BR:
361
412
  select_a_category: Por favor, selecione uma categoria
362
413
  select_a_meeting_type: Por favor, selecione um tipo de reunião
363
414
  select_a_registration_type: Por favor, selecione um tipo de registro
415
+ select_an_iframe_access_level: Por favor, selecione um nível de acesso iframe
364
416
  index:
365
417
  new_meeting: Nova reunião
418
+ see_all: Veja todas as reuniões
419
+ see_all_withdrawn: Veja todas as reuniões retiradas
420
+ text_banner: Você está vendo a lista de reuniões retiradas por seus autores. %{go_back_link}.
421
+ meeting:
422
+ edit_close_meeting: Editar relatório da reunião
423
+ join_meeting: Participe da reunião
366
424
  meetings:
367
425
  upcoming_meetings_warning: Atualmente, não há reuniões agendadas, mas aqui você pode encontrar todas as reuniões anteriores listadas.
368
426
  new:
@@ -389,6 +447,9 @@ pt-BR:
389
447
  one: "%{count} slot restante"
390
448
  other: "%{count} slots restantes"
391
449
  visit_finished: Ver reunião anterior
450
+ withdraw_btn_hint: Você pode retirar sua reunião se mudar de ideia. A reunião não é excluída, ela aparecerá na lista de reuniões retiradas.
451
+ withdraw_confirmation_html: Tem certeza de que deseja retirar esta reunião?<br><br><strong>esta ação não pode ser cancelada!</strong>
452
+ withdraw_meeting: Retirar reunião
392
453
  update:
393
454
  invalid: Houve um problema ao atualizar a reunião.
394
455
  success: Você atualizou a reunião com sucesso.
@@ -419,6 +480,7 @@ pt-BR:
419
480
  empty_questions: Durante esta reunião, algumas perguntas serão enviadas e você poderá respondê-las. Elas serão exibidas aqui.
420
481
  index_admin:
421
482
  admin_dashboard: Painel de administração
483
+ edit: Editar no painel de administração
422
484
  question: Pergunta
423
485
  received_answer: resposta recebida
424
486
  received_answers: respostas recebidas
@@ -455,11 +517,16 @@ pt-BR:
455
517
  invalid: Tem havido um problema ao sair desta reunião.
456
518
  success: Você saiu da reunião com sucesso.
457
519
  type_of_meeting:
520
+ hybrid: Híbrido
458
521
  in_person: Pessoalmente
459
522
  online: On-line
460
523
  types:
461
524
  private_meeting: Reunião privada
462
525
  transparent: Transparente
526
+ withdraw: Retirado
527
+ withdraw:
528
+ error: Ocorreu um erro ao retirar a reunião.
529
+ success: A reunião foi retirada com sucesso.
463
530
  metrics:
464
531
  meetings:
465
532
  description: Número de reuniões criadas
@@ -230,10 +230,8 @@ pt:
230
230
  select_user: Selecione o participante
231
231
  index:
232
232
  filter:
233
- accepted: Aceite
234
233
  all: Todos
235
- rejected: Rejeitados
236
- sent: Enviados
234
+ sent: Enviado
237
235
  invite_attendee: Convidar participante
238
236
  invites: Convites
239
237
  search: Pesquisar
@@ -266,9 +266,7 @@ ro:
266
266
  select_user: Selecteză un participant
267
267
  index:
268
268
  filter:
269
- accepted: Acceptat
270
269
  all: Toate
271
- rejected: Respins
272
270
  sent: Trimis
273
271
  invite_attendee: Invită participantul
274
272
  invites: Invitații
@@ -183,10 +183,7 @@ ru:
183
183
  select_user: Выберите участника
184
184
  index:
185
185
  filter:
186
- accepted: Принятые
187
- all: Все
188
- rejected: Отклоненные
189
- sent: Отправленные
186
+ sent: Отправлено
190
187
  invite_attendee: Пригласить участника
191
188
  invites: Приглашения
192
189
  search: Поиск
@@ -185,9 +185,6 @@ sk:
185
185
  select_user: Vyberte používateľa
186
186
  index:
187
187
  filter:
188
- accepted: Prijal
189
- all: Všetko
190
- rejected: Odmietnuté
191
188
  sent: Odoslaná
192
189
  invite_attendee: Pozvať účastníka
193
190
  invites: Pozvánky
@@ -248,9 +248,7 @@ sv:
248
248
  select_user: Välj deltagare
249
249
  index:
250
250
  filter:
251
- accepted: Accepterad
252
- all: Allt
253
- rejected: Avvisad
251
+ all: Alla
254
252
  sent: Skickat
255
253
  invite_attendee: Bjud in deltagare
256
254
  invites: Inbjudningar
@@ -200,10 +200,8 @@ tr:
200
200
  select_user: Katılımcı seç
201
201
  index:
202
202
  filter:
203
- accepted: Kabul edilmiş
204
203
  all: Tümü
205
- rejected: Reddedildi
206
- sent: Gönderildi
204
+ sent: Gönderilen
207
205
  invite_attendee: Katılımcı davet et
208
206
  invites: Davetler
209
207
  search: Arama
@@ -165,10 +165,7 @@ uk:
165
165
  select_user: Оберіть учасника
166
166
  index:
167
167
  filter:
168
- accepted: Прийняті
169
- all: Усі
170
- rejected: Відхилені
171
- sent: Надіслані
168
+ sent: Надіслано
172
169
  invite_attendee: Запросити учасника
173
170
  invites: Запрошення
174
171
  search: Шукати
@@ -187,9 +187,7 @@ zh-CN:
187
187
  select_user: 选择参与者
188
188
  index:
189
189
  filter:
190
- accepted: 已接受
191
190
  all: 所有的
192
- rejected: 已拒绝
193
191
  sent: 已发送
194
192
  invite_attendee: 邀请参与者
195
193
  invites: 邀请
@@ -274,9 +274,7 @@ zh-TW:
274
274
  select_user: 選擇參與者
275
275
  index:
276
276
  filter:
277
- accepted: 已接受
278
277
  all: 全部
279
- rejected: 已拒絕
280
278
  sent: 傳送
281
279
  invite_attendee: 邀請的與會者
282
280
  invites: 邀請
@@ -17,6 +17,7 @@ module Decidim
17
17
 
18
18
  2.times do
19
19
  create_meeting!(component:, type: :online)
20
+ create_meeting!(component:, type: :online_live_event)
20
21
  create_meeting!(component:, type: :hybrid)
21
22
  meeting = create_meeting!(component:, type: :in_person)
22
23
 
@@ -86,19 +87,35 @@ module Decidim
86
87
  params = case type
87
88
  when :hybrid
88
89
  params.merge(
89
- title: Decidim::Faker::Localized.sentence(word_count: 2),
90
+ end_time: Time.zone.now + [rand(1..4).hours, rand(1..20).days].sample,
90
91
  type_of_meeting: :hybrid,
91
- online_meeting_url: "http://example.org"
92
+ online_meeting_url: "https://www.youtube.com/watch?v=f6JMgJAQ2tc",
93
+ iframe_access_level: :all,
94
+ iframe_embed_type: [:embed_in_meeting_page, :open_in_live_event_page, :open_in_new_tab].sample
92
95
  )
93
96
  when :online
94
97
  params.merge(
98
+ end_time: Time.zone.now + [rand(1..4).hours, rand(1..20).days].sample,
95
99
  location: nil,
96
100
  location_hints: nil,
97
101
  latitude: nil,
98
102
  longitude: nil,
99
- title: Decidim::Faker::Localized.sentence(word_count: 2),
100
103
  type_of_meeting: :online,
101
- online_meeting_url: "http://example.org"
104
+ online_meeting_url: "https://www.youtube.com/watch?v=f6JMgJAQ2tc",
105
+ iframe_access_level: :all,
106
+ iframe_embed_type: [:embed_in_meeting_page, :open_in_live_event_page, :open_in_new_tab].sample
107
+ )
108
+ when :online_live_event
109
+ params.merge(
110
+ end_time: Time.zone.now + [rand(1..4).hours, rand(1..20).days].sample,
111
+ location: nil,
112
+ location_hints: nil,
113
+ latitude: nil,
114
+ longitude: nil,
115
+ type_of_meeting: :online,
116
+ online_meeting_url: "https://www.youtube.com/watch?v=f6JMgJAQ2tc",
117
+ iframe_access_level: :all,
118
+ iframe_embed_type: :open_in_live_event_page
102
119
  )
103
120
  else
104
121
  params # :in_person
@@ -125,7 +142,7 @@ module Decidim
125
142
  # Create a meeting
126
143
  #
127
144
  # @param component [Decidim::Component] The component where this class will be created
128
- # @param type [:in_person, :hybrid, :online] The meeting type
145
+ # @param type [:in_person, :hybrid, :online, :online_live_event] The meeting type
129
146
  # @param author_type [:official, :user, :user_group] Which type the author of the meeting will be
130
147
  #
131
148
  # @return [Decidim::Meeting]
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-meetings version.
5
5
  module Meetings
6
6
  def self.version
7
- "0.28.0.rc5"
7
+ "0.28.0"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-meetings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.0.rc5
4
+ version: 0.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-12-18 00:00:00.000000000 Z
13
+ date: 2023-12-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-core
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.28.0.rc5
21
+ version: 0.28.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.28.0.rc5
28
+ version: 0.28.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: decidim-forms
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.28.0.rc5
35
+ version: 0.28.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.28.0.rc5
42
+ version: 0.28.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: icalendar
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -60,56 +60,56 @@ dependencies:
60
60
  requirements:
61
61
  - - '='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.28.0.rc5
63
+ version: 0.28.0
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 0.28.0.rc5
70
+ version: 0.28.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: decidim-assemblies
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.28.0.rc5
77
+ version: 0.28.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.28.0.rc5
84
+ version: 0.28.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: decidim-dev
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - '='
90
90
  - !ruby/object:Gem::Version
91
- version: 0.28.0.rc5
91
+ version: 0.28.0
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - '='
97
97
  - !ruby/object:Gem::Version
98
- version: 0.28.0.rc5
98
+ version: 0.28.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: decidim-participatory_processes
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - '='
104
104
  - !ruby/object:Gem::Version
105
- version: 0.28.0.rc5
105
+ version: 0.28.0
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - '='
111
111
  - !ruby/object:Gem::Version
112
- version: 0.28.0.rc5
112
+ version: 0.28.0
113
113
  description: A meetings component for decidim's participatory spaces.
114
114
  email:
115
115
  - josepjaume@gmail.com
@@ -563,9 +563,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
563
563
  version: '3.1'
564
564
  required_rubygems_version: !ruby/object:Gem::Requirement
565
565
  requirements:
566
- - - ">"
566
+ - - ">="
567
567
  - !ruby/object:Gem::Version
568
- version: 1.3.1
568
+ version: '0'
569
569
  requirements: []
570
570
  rubygems_version: 3.4.22
571
571
  signing_key: