decidim-meetings 0.25.0.rc1 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c738813676b470073aba100e5738157200f3fd4524dc7ab41891788325e364c
4
- data.tar.gz: fc26fc0d4dad695d49eccf921b9283181eb8f7c4e37e88ac21baa51d8d532af8
3
+ metadata.gz: 2939c3a8603700ee0891d7e036044265abf9006056be1df86b120de04cb9e498
4
+ data.tar.gz: f0a2c25fd8c7872548f646fa3db5a25c0da08f7f8b0dea507497937acaa42802
5
5
  SHA512:
6
- metadata.gz: 3ec9fb4d2d058e92918eeeaef0d75c474f31378c18a937050d1e6ede4cd50c4651592c6a08bd5d7b4cf373c2692ac17219a797ff8c6c5507d1ec94c1dffb1952
7
- data.tar.gz: 72bca90a6014a28d0267b3cdf7c23cbefd8736e38e351c20370eb5d3089a20f64d3cf0998bad163dd5a4e26b3a62166c60ee3b433f66ab4ffa4e026229a4868d
6
+ metadata.gz: f0adf994430db69011232d2bb9baf278178843a2f6e37fb5182213015662354f5221df4833a2d498dea95f8c140ebd0d5bfb50fbfb25e8f224c35f11de331602
7
+ data.tar.gz: d03e8217ea4496cf4c9637f8164ce2e19a6b15efc61091177a60a1b076ac1e5f10bcb47d971f5ecb59fb5f09ac93ec0b499b19ef401bad693c3c353eefaef19f
@@ -11,7 +11,6 @@ module Decidim
11
11
  @embedder ||= MeetingIframeEmbedder.new(model.online_meeting_url)
12
12
  end
13
13
 
14
- delegate :live?, to: :model
15
14
  delegate :embeddable?, to: :embedder
16
15
 
17
16
  def live_event_url
@@ -22,6 +21,13 @@ module Decidim
22
21
  end
23
22
  end
24
23
 
24
+ def live?
25
+ model.start_time &&
26
+ model.end_time &&
27
+ Time.current >= (model.start_time - 10.minutes) &&
28
+ Time.current <= model.end_time
29
+ end
30
+
25
31
  def future?
26
32
  Time.current <= model.start_time && !live?
27
33
  end
@@ -22,13 +22,6 @@ module Decidim
22
22
  def show_embed?
23
23
  model.show_embedded_iframe? && embedder.embeddable?
24
24
  end
25
-
26
- def live?
27
- model.start_time &&
28
- model.end_time &&
29
- Time.current >= (model.start_time - 10.minutes) &&
30
- Time.current <= model.end_time
31
- end
32
25
  end
33
26
  end
34
27
  end
@@ -5,22 +5,17 @@ module Decidim
5
5
  #
6
6
  # Decorator for meetings
7
7
  #
8
- class MeetingPresenter < SimpleDelegator
9
- include Decidim::TranslationsHelper
8
+ class MeetingPresenter < Decidim::ResourcePresenter
10
9
  include Decidim::ResourceHelper
11
- include Decidim::SanitizeHelper
12
10
 
13
11
  def meeting
14
12
  __getobj__
15
13
  end
16
14
 
17
- def title(links: false, all_locales: false)
15
+ def title(links: false, html_escape: false, all_locales: false)
18
16
  return unless meeting
19
17
 
20
- handle_locales(meeting.title, all_locales) do |content|
21
- renderer = Decidim::ContentRenderers::HashtagRenderer.new(decidim_html_escape(content))
22
- renderer.render(links: links).html_safe
23
- end
18
+ super meeting.title, links, html_escape, all_locales
24
19
  end
25
20
 
26
21
  def description(links: false, all_locales: false)
@@ -130,22 +125,6 @@ module Decidim
130
125
 
131
126
  proposals.map.with_index { |proposal, index| "#{index + 1}) #{proposal.title}\n" }
132
127
  end
133
-
134
- private
135
-
136
- def handle_locales(content, all_locales, &block)
137
- if all_locales
138
- content.each_with_object({}) do |(key, value), parsed_content|
139
- parsed_content[key] = if key == "machine_translations"
140
- handle_locales(value, all_locales, &block)
141
- else
142
- block.call(value)
143
- end
144
- end
145
- else
146
- yield(translated_attribute(content))
147
- end
148
- end
149
128
  end
150
129
  end
151
130
  end
@@ -5,11 +5,11 @@ module Decidim
5
5
  class DiffRenderer < BaseDiffRenderer
6
6
  def attribute_types
7
7
  {
8
- title: :string,
9
- description: :html,
8
+ title: :i18n,
9
+ description: :i18n_html,
10
10
  address: :string,
11
- location: :string,
12
- location_hints: :string,
11
+ location: :i18n,
12
+ location_hints: :i18n,
13
13
  start_time: :date,
14
14
  end_time: :date,
15
15
  decidim_user_group_id: :user_group,
@@ -54,7 +54,7 @@
54
54
  <% end %>
55
55
  </div>
56
56
 
57
- <%= javascript_pack_tag "decidim_forms_admin" %>
57
+ <%= javascript_pack_tag "decidim_forms_admin", defer: false %>
58
58
 
59
59
  <% if questionnaire.questions_editable? %>
60
60
  <script>
@@ -4,7 +4,7 @@
4
4
  <div class="card card--meeting">
5
5
  <div class="card__content">
6
6
  <%= link_to resource_locator(meeting).path, class: "card__link" do %>
7
- <h5 class="card__title"><%= present(meeting).title %></h5>
7
+ <h5 class="card__title"><%= present(meeting).title(html_escape: true) %></h5>
8
8
  <% end %>
9
9
  <div class="card__datetime">
10
10
  <div class="card__datetime__date">
@@ -23,7 +23,7 @@ edit_link(
23
23
  <% end %>
24
24
  </div>
25
25
 
26
- <h2 class="heading2"><%= present(meeting).title(links: true) %></h2>
26
+ <h2 class="heading2"><%= present(meeting).title(links: true, html_escape: true ) %></h2>
27
27
 
28
28
  <%= cell "decidim/author", author_presenter_for(meeting.normalized_author), has_actions: true, from: meeting, context: { extra_classes: ["author-data--small"] } %>
29
29
 
@@ -23,6 +23,7 @@ ca:
23
23
  decidim_user_group_id: Grup d'usuàries
24
24
  description: Descripció
25
25
  end_time: Hora de finalització
26
+ id: ID
26
27
  location: Ubicació
27
28
  location_hints: Detalls d'ubicació
28
29
  online_meeting_url: URL de trobada en línia
@@ -34,12 +35,17 @@ ca:
34
35
  registration_terms: Termes i condicions d'inscripció
35
36
  registration_url: URL d'inscripció
36
37
  registrations_enabled: Inscripcions obertes
38
+ show_embedded_iframe: Mostrar iframe incrustat per aquesta URL
37
39
  start_time: Hora d'inici
38
40
  title: Títol
39
41
  transparent: Transparent
40
42
  type_of_meeting: Tipus
41
43
  errors:
42
44
  models:
45
+ meeting:
46
+ attributes:
47
+ show_embedded_iframe:
48
+ not_embeddable: Aquest URL no es pot incrustar
43
49
  meeting_agenda:
44
50
  attributes:
45
51
  base:
@@ -69,6 +75,34 @@ ca:
69
75
  other: Inscripcions
70
76
  decidim:
71
77
  admin:
78
+ filters:
79
+ meetings:
80
+ category_id_eq:
81
+ label: Categoria
82
+ closed_at_present:
83
+ label: Estat
84
+ values:
85
+ 'false': Oberta
86
+ 'true': Tancada
87
+ is_upcoming_true:
88
+ label: Data
89
+ values:
90
+ 'false': Passades
91
+ 'true': Properes
92
+ origin_eq:
93
+ label: Origen
94
+ values:
95
+ citizen: Ciutadania
96
+ official: Oficial
97
+ user_group: Grups
98
+ scope_id_eq:
99
+ label: Àmbit
100
+ type_eq:
101
+ label: Tipus de trobada
102
+ values:
103
+ hybrid: Ambdós
104
+ in_person: Presencial
105
+ online: En línia
72
106
  meeting_copies:
73
107
  create:
74
108
  error: S'ha produït un error en duplicar aquesta trobada.
@@ -80,6 +114,7 @@ ca:
80
114
  components:
81
115
  meetings:
82
116
  actions:
117
+ comment: Comentar
83
118
  join: Inscriu-t'hi
84
119
  name: Trobades
85
120
  settings:
@@ -115,7 +150,7 @@ ca:
115
150
  email_subject: S'ha tancat la trobada "%{resource_title}"
116
151
  notification_title: La trobada de <a href="%{resource_path}">%{resource_title}</a> s'ha tancat.
117
152
  meeting_created:
118
- button_text: Registreu-vos a la trobada
153
+ button_text: Inscriu-te a la trobada
119
154
  email_intro: S'ha afegit la trobada "%{resource_title}" a l'espai "%{participatory_space_title}" que estàs seguint.
120
155
  email_outro: Has rebut aquesta notificació perquè estàs seguint "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
121
156
  email_subject: Nova trobada afegida a %{participatory_space_title}
@@ -147,6 +182,9 @@ ca:
147
182
  email_outro: Has rebut aquesta notificació perquè estàs seguint la trobada "%{resource_title}". Pots deixar-la de seguir des de l'enllaç anterior.
148
183
  email_subject: En menys de 48 hores s'iniciarà la trobada "%{resource_title}".
149
184
  notification_title: La trobada <a href="%{resource_path}">%{resource_title}</a> començarà en menys de 48 hores.
185
+ forms:
186
+ meetings:
187
+ attendees_count_help_text: No oblidis incloure el nombre total d'assistents a la teva trobada, ja sigui presencial, en línia o híbrida.
150
188
  gamification:
151
189
  badges:
152
190
  attended_meetings:
@@ -172,6 +210,7 @@ ca:
172
210
  proposals_count:
173
211
  one: 'No es pot destruir la trobada perquè té %{count} proposta associades:'
174
212
  other: 'No es pot destruir la trobada perquè té %{count} propostes associades:'
213
+ manage_poll: Configurar enquesta
175
214
  new: Nova trobada
176
215
  preview: Previsualitzar
177
216
  registrations: Inscripcions
@@ -208,6 +247,7 @@ ca:
208
247
  invalid: S'ha produït un error en actualitzar aquest ordre del dia
209
248
  success: Ordre del dia actualitzat correctament
210
249
  exports:
250
+ answers: Respostes
211
251
  meeting_comments: Comentaris
212
252
  meetings: Trobades
213
253
  registrations: Inscripcions
@@ -248,7 +288,7 @@ ca:
248
288
  success: Trobada tancada amb èxit
249
289
  create:
250
290
  invalid: S'ha produït un error en crear aquesta trobada
251
- success: S'ha creat la trobada correctament. Adona-te'n que per a fer-la pública, ho hauràs de fer manualment.
291
+ success: Trobada creada correctament. Tingues en compte que encara no s'ha publicat, hauràs de publicar-la manualment.
252
292
  destroy:
253
293
  invalid:
254
294
  proposals_count:
@@ -269,6 +309,7 @@ ca:
269
309
  registration_url_help: 'Enllaç: permetre a les participants anar al servei extern que estàs utilitzant per a les inscripcions'
270
310
  select_a_meeting_type: Si us plau selecciona un tipus de trobada
271
311
  select_a_registration_type: Si us plau selecciona un tipus d'inscripció
312
+ show_embedded_iframe_help: Incrustar o no un iframe per a aquesta URL de videoconferència. Només alguns serveis permeten la incrustació (per exemple, Youtube, Twitch, etc.)
272
313
  index:
273
314
  title: Trobades
274
315
  new:
@@ -276,7 +317,7 @@ ca:
276
317
  title: Crear trobada
277
318
  publish:
278
319
  invalid: S'ha produït un error en publicar la trobada
279
- success: La trobada ara ja és pública
320
+ success: La trobada s'ha publicat correctament
280
321
  service:
281
322
  description: Descripció
282
323
  down: Baixar
@@ -289,10 +330,16 @@ ca:
289
330
  services: Serveis
290
331
  unpublish:
291
332
  invalid: Hi ha hagut un problema en en despublicar la trobada
292
- success: La trobada ara ja no és pública
333
+ success: La trobada s'ha despublicat correctament
293
334
  update:
294
335
  invalid: S'ha produït un error en actualitzar aquesta trobada
295
336
  success: Trobada actualitzada correctament
337
+ meetings_poll:
338
+ form:
339
+ title: Editar qüestionari d'enquesta per a %{questionnaire_for}
340
+ update:
341
+ invalid: Hi ha hagut un problema en actualitzar aquesta enquesta
342
+ success: Enquesta actualitzada correctament
296
343
  models:
297
344
  meeting:
298
345
  name: Trobada
@@ -355,6 +402,11 @@ ca:
355
402
  last_activity:
356
403
  meeting_updated_at_html: "<span>Trobada actualitzada el %{link}</span>"
357
404
  new_meeting_at_html: "<span>Nova trobada a %{link}</span>"
405
+ layouts:
406
+ live_event:
407
+ administrate: Administrar
408
+ close: tancar
409
+ questions: Preguntes
358
410
  mailer:
359
411
  invite_join_meeting_mailer:
360
412
  invite:
@@ -371,12 +423,12 @@ ca:
371
423
  title: Tancar trobada
372
424
  meetings:
373
425
  calendar_modal:
374
- add_to_calendar: Afegeix al calendari
375
- apple: Afegeix al calendari d'Apple
376
- close_window: Tanca la finestra
377
- full_details_html: Per a més informació visiteu %{link}
378
- google: Afegeix al calendari de Google
379
- outlook: Afegeix al calendari d'Outlook
426
+ add_to_calendar: Afegir al calendari
427
+ apple: Afegir al calendari d'Apple
428
+ close_window: Tancar finestra
429
+ full_details_html: Per a obtenir tots els detalls vés a %{link}
430
+ google: Afegir al calendari de Google
431
+ outlook: Afegir al calendari d'Outlook
380
432
  count:
381
433
  meetings_count:
382
434
  one: "%{count} trobada"
@@ -429,6 +481,7 @@ ca:
429
481
  select_a_category: Si us plau, selecciona una categoria
430
482
  select_a_meeting_type: Si us plau selecciona un tipus de trobada
431
483
  select_a_registration_type: Si us plau selecciona un tipus d'inscripció
484
+ show_embedded_iframe_help: Incrustar o no un iframe per a aquesta URL de videoconferència. Només alguns serveis permeten la incrustació (per exemple, Youtube, Twitch, etc.)
432
485
  index:
433
486
  new_meeting: Nova trobada
434
487
  meeting_minutes:
@@ -440,8 +493,6 @@ ca:
440
493
  back: Enrere
441
494
  create: Crear
442
495
  title: Crea la teva trobada
443
- online_meeting_link:
444
- link_available_soon: L'enllaç estarà disponible aviat
445
496
  registration_confirm:
446
497
  cancel: Cancel·lar
447
498
  confirm: Confirmar
@@ -456,7 +507,11 @@ ca:
456
507
  join: Inscriu-te a la trobada
457
508
  leave: Cancel·la la teva inscripció
458
509
  leave_confirmation: Segur que vols cancel·lar la teva inscripció a aquesta trobada?
510
+ link_available_soon: Enllaç disponible pròximament
511
+ link_closed: L'enllaç a la trobada estarà disponible uns minuts abans de que comenci
512
+ live_event: Aquesta trobada està succeint ara mateix
459
513
  meeting_minutes: Acta de la trobada
514
+ micro_camera_permissions_warning: Quan facis clic en el botó de sota, se't demanaran permisos per al micròfon i/o la càmera, i t'uniràs a la videoconferència
460
515
  no_slots_available: No hi ha places disponible
461
516
  organizations: Organitzacions que han assistit
462
517
  registration_code_help_text: El teu codi de registre
@@ -467,6 +522,7 @@ ca:
467
522
  one: "%{count} plaça restant"
468
523
  other: "%{count} places restants"
469
524
  view: Veure
525
+ visit_finished: Veure trobada passada
470
526
  update:
471
527
  invalid: Hi ha hagut un problema en actualitzar aquesta trobada.
472
528
  success: Has actualitzat la trobada amb èxit.
@@ -487,12 +543,33 @@ ca:
487
543
  fields:
488
544
  closed: Tancada
489
545
  end_time: Data de finalització
546
+ id: Id
490
547
  map: Mapa
491
548
  official_meeting: Trobada oficial
492
549
  start_time: Data d'inici
493
550
  title: Títol
551
+ polls:
552
+ questions:
553
+ closed_question:
554
+ question_results: Resultats de la pregunta
555
+ index:
556
+ empty_questions: Al llarg d'aquesta trobada, s'enviaran algunes preguntes i podràs respondre-les. Es mostraran aquí.
557
+ index_admin:
558
+ admin_dashboard: Panell d'administració
559
+ edit: Editar al panell d'administració
560
+ question: Pregunta
561
+ received_answer: resposta rebuda
562
+ received_answers: respostes rebudes
563
+ results: Resultats
564
+ send: Enviar
565
+ sent: Enviades
566
+ published_question:
567
+ max_choices_alert: Hi ha massa opcions seleccionades
568
+ question: Pregunta
569
+ question_replied: Pregunta contestada
570
+ reply_question: Contestar a la pregunta
494
571
  public_participants_list:
495
- attending_participants: Participants que assisteixen
572
+ attending_participants: Participants que han assistit
496
573
  hidden_participants_count:
497
574
  one: i %{count} persona més
498
575
  other: i %{count} persones més
@@ -23,6 +23,7 @@ cs:
23
23
  decidim_user_group_id: Uživatelská skupina
24
24
  description: Popis
25
25
  end_time: Čas ukončení
26
+ id: ID
26
27
  location: Umístění
27
28
  location_hints: Nápověda k poloze
28
29
  online_meeting_url: URL online schůzky
@@ -34,12 +35,17 @@ cs:
34
35
  registration_terms: Podmínky registrace
35
36
  registration_url: URL registrace
36
37
  registrations_enabled: Registrace povoleny
38
+ show_embedded_iframe: Zobrazit vloženou iframe pro tuto URL
37
39
  start_time: Čas zahájení
38
40
  title: Název
39
41
  transparent: Transparentní
40
42
  type_of_meeting: Typ
41
43
  errors:
42
44
  models:
45
+ meeting:
46
+ attributes:
47
+ show_embedded_iframe:
48
+ not_embeddable: Tato adresa URL nemůže být vložena
43
49
  meeting_agenda:
44
50
  attributes:
45
51
  base:
@@ -75,6 +81,34 @@ cs:
75
81
  other: Registrace
76
82
  decidim:
77
83
  admin:
84
+ filters:
85
+ meetings:
86
+ category_id_eq:
87
+ label: Kategorie
88
+ closed_at_present:
89
+ label: Stav
90
+ values:
91
+ 'false': Otevřeno
92
+ 'true': Uzavřeno
93
+ is_upcoming_true:
94
+ label: Datum
95
+ values:
96
+ 'false': Minulé
97
+ 'true': Nadcházející
98
+ origin_eq:
99
+ label: Původ
100
+ values:
101
+ citizen: Občané
102
+ official: Úředník
103
+ user_group: Skupiny uživatelů
104
+ scope_id_eq:
105
+ label: Oblast působnosti
106
+ type_eq:
107
+ label: Typ schůzky
108
+ values:
109
+ hybrid: Obojí
110
+ in_person: Osobně
111
+ online: Online
78
112
  meeting_copies:
79
113
  create:
80
114
  error: Bylo zde chyba, že se tato schůzka zdvojnásobila.
@@ -86,6 +120,7 @@ cs:
86
120
  components:
87
121
  meetings:
88
122
  actions:
123
+ comment: Komentář
89
124
  join: Přidat se
90
125
  name: Setkání
91
126
  settings:
@@ -153,6 +188,9 @@ cs:
153
188
  email_outro: Toto upozornění jste obdrželi, protože postupujete po schůzce "%{resource_title}". Můžete jej odhlásit od předchozího odkazu.
154
189
  email_subject: Schůzka "%{resource_title}" začne za méně než 48 hodin.
155
190
  notification_title: Setkání <a href="%{resource_path}">%{resource_title}</a> bude zahájeno za méně než 48 hodin.
191
+ forms:
192
+ meetings:
193
+ attendees_count_help_text: Nezapomeňte uvést celkový počet účastníků vaší akce. Ať už jde o osobní, kombinovanou nebo on-line, je důležité, abychom věděli, kolik lidí je zapojeno.
156
194
  gamification:
157
195
  badges:
158
196
  attended_meetings:
@@ -281,6 +319,7 @@ cs:
281
319
  registration_url_help: 'Odkaz: umožnit účastníkům jít na externí službu, kterou používáte pro registrace'
282
320
  select_a_meeting_type: Vyberte prosím typ schůzky
283
321
  select_a_registration_type: Vyberte prosím typ registrace
322
+ show_embedded_iframe_help: Rozhodněte o vložení URL iframe pro tuto videokonferenci. Pouze některé služby umožňují vložení (např. Youtube, Twitch...)
284
323
  index:
285
324
  title: Setkání
286
325
  new:
@@ -456,6 +495,7 @@ cs:
456
495
  select_a_category: Vyberte prosím kategorii
457
496
  select_a_meeting_type: Vyberte prosím typ schůzky
458
497
  select_a_registration_type: Vyberte prosím typ registrace
498
+ show_embedded_iframe_help: Rozhodněte o vložení URL iframe pro tuto videokonferenci. Pouze některé služby umožňují vložení (např. Youtube, Twitch...)
459
499
  index:
460
500
  new_meeting: Nová schůzka
461
501
  meeting_minutes:
@@ -467,10 +507,6 @@ cs:
467
507
  back: Zpět
468
508
  create: Vytvořit
469
509
  title: Vytvořte si schůzku
470
- online_meeting_link:
471
- join: Připojte se ke schůzce
472
- link_available_soon: Odkaz bude brzy k dispozici
473
- live_event: Tato schůzka se děje právě teď
474
510
  registration_confirm:
475
511
  cancel: Zrušit
476
512
  confirm: Potvrdit
@@ -485,7 +521,11 @@ cs:
485
521
  join: Připojte se k setkání
486
522
  leave: Zrušit registraci
487
523
  leave_confirmation: Opravdu chcete zrušit registraci na tuto schůzku?
524
+ link_available_soon: Odkaz bude brzy k dispozici
525
+ link_closed: Odkaz pro připojení se ke schůzce bude k dispozici několik minut před jejím spuštěním
526
+ live_event: Tato schůzka se děje právě teď
488
527
  meeting_minutes: Zápis z porady
528
+ micro_camera_permissions_warning: Po kliknutí na tlačítko níže budete požádáni o povolení k mikrofonu nebo fotoaparátu a připojíte se k videokonferenci
489
529
  no_slots_available: Žádné sloty nejsou k dispozici
490
530
  organizations: Účastnické organizace
491
531
  registration_code_help_text: Váš registrační kód
@@ -498,6 +538,7 @@ cs:
498
538
  many: "%{count} zbývajících bloků"
499
539
  other: "%{count} zbývajících bloků"
500
540
  view: Zobrazit
541
+ visit_finished: Zobrazit minulou schůzku
501
542
  update:
502
543
  invalid: Při aktualizaci schůzky došlo k chybě.
503
544
  success: Úspěšně jste aktualizovali schůzku.
@@ -518,6 +559,7 @@ cs:
518
559
  fields:
519
560
  closed: Zavřeno
520
561
  end_time: Datum ukončení
562
+ id: Id
521
563
  map: Mapa
522
564
  official_meeting: Oficiální schůzka
523
565
  start_time: Datum zahájení
@@ -431,8 +431,6 @@ de:
431
431
  back: Zurück
432
432
  create: Erstellen
433
433
  title: Ihre Besprechung erstellen
434
- online_meeting_link:
435
- link_available_soon: Link bald verfügbar
436
434
  registration_confirm:
437
435
  cancel: Stornieren
438
436
  confirm: Bestätigen