decidim-meetings 0.26.0.rc2 → 0.26.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/meetings/content_blocks/highlighted_meetings_cell.rb +7 -1
  3. data/app/cells/decidim/meetings/content_blocks/upcoming_meetings_cell.rb +2 -0
  4. data/app/cells/decidim/meetings/highlighted_meetings_for_component/show.erb +5 -4
  5. data/app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb +13 -1
  6. data/app/cells/decidim/meetings/meeting_list_item_cell.rb +1 -1
  7. data/app/cells/decidim/meetings/meeting_m_cell.rb +1 -1
  8. data/app/commands/decidim/meetings/admin/create_meeting.rb +1 -1
  9. data/app/commands/decidim/meetings/admin/update_meeting.rb +1 -1
  10. data/app/commands/decidim/meetings/create_meeting.rb +2 -1
  11. data/app/commands/decidim/meetings/update_meeting.rb +1 -1
  12. data/app/controllers/decidim/meetings/meetings_controller.rb +1 -1
  13. data/app/forms/decidim/meetings/admin/meeting_form.rb +0 -4
  14. data/app/helpers/decidim/meetings/application_helper.rb +19 -1
  15. data/app/jobs/decidim/meetings/upcoming_meeting_notification_job.rb +4 -1
  16. data/app/packs/src/decidim/meetings/admin/meetings_form.js +1 -1
  17. data/app/presenters/decidim/meetings/meeting_presenter.rb +9 -0
  18. data/app/services/decidim/meetings/meeting_iframe_embedder.rb +1 -1
  19. data/app/views/decidim/meetings/admin/meetings/_services.html.erb +1 -1
  20. data/app/views/decidim/meetings/layouts/live_event.html.erb +1 -0
  21. data/app/views/decidim/meetings/meetings/index.html.erb +2 -2
  22. data/app/views/decidim/meetings/meetings/show.html.erb +1 -1
  23. data/config/locales/ar.yml +25 -0
  24. data/config/locales/ca.yml +7 -7
  25. data/config/locales/cs.yml +6 -6
  26. data/config/locales/de.yml +4 -3
  27. data/config/locales/en.yml +6 -6
  28. data/config/locales/es-MX.yml +8 -8
  29. data/config/locales/es-PY.yml +6 -6
  30. data/config/locales/es.yml +8 -8
  31. data/config/locales/eu.yml +1 -9
  32. data/config/locales/fi-plain.yml +5 -5
  33. data/config/locales/fi.yml +5 -5
  34. data/config/locales/fr-CA.yml +3 -3
  35. data/config/locales/fr.yml +12 -12
  36. data/config/locales/ga-IE.yml +0 -4
  37. data/config/locales/gl.yml +5 -0
  38. data/config/locales/hu.yml +30 -0
  39. data/config/locales/it.yml +0 -8
  40. data/config/locales/ja.yml +4 -4
  41. data/config/locales/lb.yml +0 -6
  42. data/config/locales/nl.yml +2 -10
  43. data/config/locales/no.yml +146 -0
  44. data/config/locales/pl.yml +7 -2
  45. data/config/locales/pt-BR.yml +9 -3
  46. data/config/locales/pt.yml +0 -8
  47. data/config/locales/ro-RO.yml +3 -9
  48. data/config/locales/sv.yml +20 -8
  49. data/config/locales/tr-TR.yml +9 -2
  50. data/config/locales/zh-CN.yml +6 -0
  51. data/db/migrate/20210512100333_drop_decidim_meetings_minutes_table.rb +1 -0
  52. data/lib/decidim/api/linked_resources_interface.rb +1 -1
  53. data/lib/decidim/api/meeting_type.rb +1 -1
  54. data/lib/decidim/content_parsers/meeting_parser.rb +20 -0
  55. data/lib/decidim/content_renderers/meeting_renderer.rb +17 -0
  56. data/lib/decidim/meetings/component.rb +2 -3
  57. data/lib/decidim/meetings/engine.rb +6 -0
  58. data/lib/decidim/meetings/meeting_serializer.rb +2 -1
  59. data/lib/decidim/meetings/test/factories.rb +6 -0
  60. data/lib/decidim/meetings/version.rb +1 -1
  61. data/lib/decidim/meetings.rb +8 -0
  62. metadata +18 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9568bd31e8ecd4cb37fb027814a8a5c2449216b6b1e558acf5fe8575a2345097
4
- data.tar.gz: 990e28ce517e388eb89ba47aaf1cdaa2cce6716f56b447ad99807b36a9f130cf
3
+ metadata.gz: 26691ea95f69bf432c5fa438182b8ce6a20c897f15821a66dc92670ae76ec0eb
4
+ data.tar.gz: 6d5fd46688388abc4c87fbd8869c8bcf4fcf725974f4d1cc27ccea86ecf452a0
5
5
  SHA512:
6
- metadata.gz: 8638daf48570af2b7a20e47446a00914ff665bc840cf43dbfd12b842c2a4f8b5ab94d1fdd006eaf32427ad8b83e1dd794bc1a3f9527ef00ded16d3954ed24387
7
- data.tar.gz: 40e48c241eea64fa0a3bdb7d35739a7664d4fced584932016ac21a8248d316ec73e623509331d27bb12a0de72f5c0edddbfd042870898f992dde7fdd92d22303
6
+ metadata.gz: cb185e7bc69a84b2b5582a8ec5cb0f1619c7687a6c7f7b2c2a6db1a52aff31f1448bef465f14d5be0525f8a145278b21014ceeba0052a528815e0054c75ea837
7
+ data.tar.gz: 503ab4fda399ac1a43233b8d55afdff838b4b44f1e25d0d9416975c0f5e11c37379000e4a4d7e30a5c1118e984aed584154be8b9cfdad1bb2190eff21c54ef7b
@@ -5,7 +5,13 @@ module Decidim
5
5
  module ContentBlocks
6
6
  class HighlightedMeetingsCell < Decidim::ContentBlocks::HighlightedElementsCell
7
7
  def base_relation
8
- Decidim::Meetings::Meeting.except_withdrawn.where(component: published_components)
8
+ Decidim::Meetings::Meeting
9
+ .except_withdrawn
10
+ .published
11
+ .not_hidden
12
+ .upcoming
13
+ .visible_meeting_for(current_user)
14
+ .where(component: published_components)
9
15
  end
10
16
 
11
17
  def elements
@@ -17,8 +17,10 @@ module Decidim
17
17
  .includes(component: :participatory_space)
18
18
  .where(component: meeting_components)
19
19
  .visible_meeting_for(current_user)
20
+ .published
20
21
  .where("end_time >= ?", Time.current)
21
22
  .except_withdrawn
23
+ .not_hidden
22
24
  .order(start_time: :asc)
23
25
  .limit(limit)
24
26
  end
@@ -1,7 +1,8 @@
1
1
  <% if upcoming_meetings.any? %>
2
2
  <div class="section row collapse upcoming_meetings">
3
3
  <h3 class="section-heading">
4
- <%= translated_attribute(model.name) %> - <%= t("decidim.participatory_spaces.highlighted_meetings.upcoming_meetings") %> <a href="<%= main_component_path(model) %>" class="text-small"><%= t("decidim.participatory_spaces.highlighted_meetings.see_all", count: meetings_count) %></a>
4
+ <%= translated_attribute(model.name) %> - <%= t("decidim.participatory_spaces.highlighted_meetings.upcoming_meetings") %>
5
+ <a href="<%= main_component_path(model) %>" class="text-small"><%= t("decidim.participatory_spaces.highlighted_meetings.see_all", count: upcoming_meetings_count) %></a>
5
6
  </h3>
6
7
  <div class="card card--list">
7
8
  <% upcoming_meetings.includes(:component).each do |meeting| %>
@@ -9,7 +10,7 @@
9
10
  <% end %>
10
11
  </div>
11
12
  <%= link_to(
12
- t("decidim.participatory_spaces.highlighted_meetings.see_all", count: meetings_count),
13
+ t("decidim.participatory_spaces.highlighted_meetings.see_all", count: upcoming_meetings_count),
13
14
  main_component_path(model),
14
15
  class: "button button--sc hollow button--right"
15
16
  ) %>
@@ -17,7 +18,7 @@
17
18
  <% elsif past_meetings.any? %>
18
19
  <div class="section row collapse past_meetings">
19
20
  <h3 class="section-heading">
20
- <%= translated_attribute(model.name) %> - <%= t("decidim.participatory_spaces.highlighted_meetings.past_meetings") %> <a href="<%= main_component_path(model) %>" class="text-small"><%= t("decidim.participatory_spaces.highlighted_meetings.see_all", count: meetings_count) %></a>
21
+ <%= translated_attribute(model.name) %> - <%= t("decidim.participatory_spaces.highlighted_meetings.past_meetings") %> <a href="<%= main_component_path(model) %>" class="text-small"><%= t("decidim.participatory_spaces.highlighted_meetings.see_all", count: past_meetings_count) %></a>
21
22
  </h3>
22
23
  <div class="card card--list">
23
24
  <% past_meetings.each do |meeting| %>
@@ -25,7 +26,7 @@
25
26
  <% end %>
26
27
  </div>
27
28
  <%= link_to(
28
- t("decidim.participatory_spaces.highlighted_meetings.see_all", count: meetings_count),
29
+ t("decidim.participatory_spaces.highlighted_meetings.see_all", count: past_meetings_count),
29
30
  main_component_path(model),
30
31
  class: "button button--sc hollow button--right"
31
32
  ) %>
@@ -18,7 +18,11 @@ module Decidim
18
18
  private
19
19
 
20
20
  def meetings
21
- @meetings ||= Decidim::Meetings::Meeting.where(component: model).except_withdrawn.visible_meeting_for(current_user)
21
+ @meetings ||= Decidim::Meetings::Meeting.where(component: model)
22
+ .except_withdrawn
23
+ .published
24
+ .not_hidden
25
+ .visible_meeting_for(current_user)
22
26
  end
23
27
 
24
28
  def past_meetings
@@ -32,6 +36,14 @@ module Decidim
32
36
  def meetings_count
33
37
  @meetings_count ||= meetings.count
34
38
  end
39
+
40
+ def past_meetings_count
41
+ @past_meetings_count ||= meetings.past.count
42
+ end
43
+
44
+ def upcoming_meetings_count
45
+ @upcoming_meetings_count ||= meetings.upcoming.count
46
+ end
35
47
  end
36
48
  end
37
49
  end
@@ -24,7 +24,7 @@ module Decidim
24
24
  end
25
25
 
26
26
  def resource_path
27
- resource_locator(model).path(filter_link_params)
27
+ resource_locator(model).path
28
28
  end
29
29
 
30
30
  def title
@@ -28,7 +28,7 @@ module Decidim
28
28
  end
29
29
 
30
30
  def description
31
- present(model).description(strip_tags: true)
31
+ present(model).description(strip_tags: true).truncate(120, separator: /\s/)
32
32
  end
33
33
 
34
34
  def badge
@@ -31,7 +31,7 @@ module Decidim
31
31
 
32
32
  def create_meeting!
33
33
  parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
34
- parsed_description = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.description, current_organization: form.current_organization).rewrite
34
+ parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
35
35
  params = {
36
36
  scope: form.scope,
37
37
  category: form.category,
@@ -37,7 +37,7 @@ module Decidim
37
37
 
38
38
  def update_meeting!
39
39
  parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
40
- parsed_description = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.description, current_organization: form.current_organization).rewrite
40
+ parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
41
41
 
42
42
  Decidim.traceability.update!(
43
43
  meeting,
@@ -31,7 +31,8 @@ module Decidim
31
31
 
32
32
  def create_meeting!
33
33
  parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
34
- parsed_description = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.description, current_organization: form.current_organization).rewrite
34
+ parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
35
+
35
36
  params = {
36
37
  scope: form.scope,
37
38
  category: form.category,
@@ -37,7 +37,7 @@ module Decidim
37
37
 
38
38
  def update_meeting!
39
39
  parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
40
- parsed_description = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.description, current_organization: form.current_organization).rewrite
40
+ parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
41
41
 
42
42
  Decidim.traceability.update!(
43
43
  meeting,
@@ -104,7 +104,7 @@ module Decidim
104
104
  private
105
105
 
106
106
  def meeting
107
- @meeting ||= Meeting.not_hidden.where(component: current_component).find(params[:id])
107
+ @meeting ||= Meeting.not_hidden.where(component: current_component).find_by(id: params[:id])
108
108
  end
109
109
 
110
110
  def meetings
@@ -58,10 +58,6 @@ module Decidim
58
58
  end
59
59
 
60
60
  self.decidim_category_id = model.categorization.decidim_category_id if model.categorization
61
- presenter = MeetingPresenter.new(model)
62
-
63
- self.title = presenter.title(all_locales: title.is_a?(Hash))
64
- self.description = presenter.description(all_locales: description.is_a?(Hash))
65
61
  self.type_of_meeting = model.type_of_meeting
66
62
  end
67
63
 
@@ -67,7 +67,25 @@ module Decidim
67
67
 
68
68
  # If the content is safe, HTML tags are sanitized, otherwise, they are stripped.
69
69
  def render_meeting_body(meeting)
70
- render_sanitized_content(meeting, :description)
70
+ Decidim::ContentProcessor.render(render_sanitized_content(meeting, :description), "div")
71
+ end
72
+
73
+ def prevent_timeout_seconds
74
+ return 0 unless respond_to?(:meeting)
75
+ return 0 if !current_user || !meeting || !meeting.live?
76
+ return 0 unless online_or_hybrid_meeting?(meeting)
77
+ return 0 unless iframe_embed_or_live_event_page?(meeting)
78
+ return 0 unless meeting.iframe_access_level_allowed_for_user?(current_user)
79
+
80
+ (meeting.end_time - Time.current).to_i
81
+ end
82
+
83
+ def online_or_hybrid_meeting?(meeting)
84
+ meeting.online_meeting? || meeting.hybrid_meeting?
85
+ end
86
+
87
+ def iframe_embed_or_live_event_page?(meeting)
88
+ %w(embed_in_meeting_page open_in_live_event_page).include? meeting.iframe_embed_type
71
89
  end
72
90
  end
73
91
  end
@@ -7,7 +7,10 @@ module Decidim
7
7
 
8
8
  def perform(meeting_id, checksum)
9
9
  meeting = Decidim::Meetings::Meeting.find(meeting_id)
10
- send_notification(meeting) if verify_checksum(meeting, checksum)
10
+ return if meeting.hidden? || meeting.withdrawn?
11
+ return unless verify_checksum(meeting, checksum)
12
+
13
+ send_notification(meeting)
11
14
  end
12
15
 
13
16
  def self.generate_checksum(meeting)
@@ -118,7 +118,7 @@ $(() => {
118
118
  toggleDependsOnSelect($target, $meetingRegistrationUrl, "on_different_platform");
119
119
  });
120
120
 
121
- $meetingRegistrationType.trigger("change");
121
+ toggleDependsOnSelect($meetingRegistrationType, $meetingRegistrationUrl, "on_different_platform");
122
122
 
123
123
  const $meetingTypeOfMeeting = $form.find("#meeting_type_of_meeting");
124
124
  const $meetingOnlineFields = $form.find(".field[data-meeting-type='online']");
@@ -7,12 +7,21 @@ module Decidim
7
7
  #
8
8
  class MeetingPresenter < Decidim::ResourcePresenter
9
9
  include Decidim::ResourceHelper
10
+ include ActionView::Helpers::UrlHelper
10
11
  include Decidim::SanitizeHelper
11
12
 
12
13
  def meeting
13
14
  __getobj__
14
15
  end
15
16
 
17
+ def meeting_path
18
+ Decidim::ResourceLocatorPresenter.new(meeting).path
19
+ end
20
+
21
+ def display_mention
22
+ link_to title, meeting_path
23
+ end
24
+
16
25
  def title(links: false, html_escape: false, all_locales: false)
17
26
  return unless meeting
18
27
 
@@ -42,7 +42,7 @@ module Decidim
42
42
  loading="lazy"
43
43
  src="#{embed_transformed_url(request_host)}"
44
44
  style="height: 100%; width: 100%; border: 0px;"
45
- />
45
+ ></iframe>
46
46
  )
47
47
  end
48
48
 
@@ -19,7 +19,7 @@
19
19
  <% end %>
20
20
  </div>
21
21
 
22
- <button class="button add-service"><%= t(".add_service") %></button>
22
+ <button class="button add-service" type="button"><%= t(".add_service") %></button>
23
23
  </div>
24
24
  </div>
25
25
  </div>
@@ -8,6 +8,7 @@
8
8
  </head>
9
9
 
10
10
  <body>
11
+ <%= render partial: "layouts/decidim/timeout_modal" %>
11
12
  <header class="meeting-polls__header">
12
13
  <% if current_user && poll %>
13
14
  <div class="flex--cc">
@@ -6,9 +6,9 @@
6
6
 
7
7
  <div class="row columns">
8
8
  <div class="title-action">
9
- <h3 id="meetings-count" class="title-action__title section-heading">
9
+ <h2 id="meetings-count" class="title-action__title section-heading">
10
10
  <%= render partial: "count" %>
11
- </h3>
11
+ </h2>
12
12
 
13
13
  <% if allowed_to?(:create, :meeting) %>
14
14
  <%= action_authorized_link_to :create, new_meeting_path, class: "title-action__action button small", data: { "redirect_url" => new_meeting_path } do %>
@@ -17,7 +17,7 @@ edit_link(
17
17
 
18
18
  <div class="row column view-header">
19
19
  <div class="m-bottom">
20
- <%= link_to meetings_path(filter_link_params), class: "small hollow" do %>
20
+ <%= link_to meetings_path, class: "small hollow js-back-to-list" do %>
21
21
  <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
22
22
  <%= t(".back") %>
23
23
  <% end %>
@@ -72,6 +72,18 @@ ar:
72
72
  other: التسجيلات
73
73
  decidim:
74
74
  admin:
75
+ filters:
76
+ meetings:
77
+ category_id_eq:
78
+ label: الفئة
79
+ origin_eq:
80
+ values:
81
+ citizen: المواطن
82
+ user_group: مجموعات المستخدمين
83
+ type_eq:
84
+ label: نوع الاجتماع
85
+ values:
86
+ in_person: وجهًا لوجه
75
87
  meeting_copies:
76
88
  create:
77
89
  error: كانت هناك مشكلة في تكرار هذا الاجتماع.
@@ -239,6 +251,8 @@ ar:
239
251
  success: تم حذف الاجتماع بنجاح
240
252
  edit:
241
253
  update: تحديث
254
+ form:
255
+ registration_email_help: سيظهر هذا النص في منتصف البريد الإلكتروني الخاص بتأكيد التسجيل مباشرة بعد رمز التسجيل.
242
256
  index:
243
257
  title: اجتماعات
244
258
  new:
@@ -299,6 +313,9 @@ ar:
299
313
  value_types:
300
314
  organizer_presenter:
301
315
  not_found: 'لم يتم العثور على المنظم في قاعدة البيانات (المعرف: %{id})'
316
+ application_helper:
317
+ filter_category_values:
318
+ all: الكل
302
319
  calendar_modal:
303
320
  calendar_url: العنوان الشبكي للتقويم
304
321
  close_window: أغلق النافذة
@@ -327,12 +344,16 @@ ar:
327
344
  filters:
328
345
  category: الفئة
329
346
  date: تاريخ
347
+ origin_values:
348
+ citizens: المواطنون
330
349
  search: بحث
331
350
  filters_small_view:
332
351
  close_modal: إغلاق مشروط
333
352
  filter: منقي
334
353
  filter_by: مصنف بواسطة
335
354
  unfold: كشف
355
+ form:
356
+ select_a_category: يُرجى اختيار فئة
336
357
  meeting_minutes:
337
358
  related_information: معلومات ذات صله
338
359
  meetings:
@@ -380,6 +401,10 @@ ar:
380
401
  map: خريطة
381
402
  start_time: تاريخ البدء
382
403
  title: عنوان
404
+ polls:
405
+ questions:
406
+ index_admin:
407
+ results: النتائج
383
408
  read_more: "(قراءة المزيد)"
384
409
  registration_mailer:
385
410
  confirmation:
@@ -100,7 +100,7 @@ ca:
100
100
  type_eq:
101
101
  label: Tipus de trobada
102
102
  values:
103
- hybrid: Ambdós
103
+ hybrid: Híbrida
104
104
  in_person: Presencial
105
105
  online: En línia
106
106
  meeting_copies:
@@ -184,7 +184,7 @@ ca:
184
184
  notification_title: La trobada <a href="%{resource_path}">%{resource_title}</a> començarà en menys de 48 hores.
185
185
  forms:
186
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.
187
+ attendees_count_help_text: No t'oblidis d'afegir el número total d'assistents a la trobada, sigui presencial, en línia o híbrida.
188
188
  gamification:
189
189
  badges:
190
190
  attended_meetings:
@@ -476,7 +476,7 @@ ca:
476
476
  type: Tipus
477
477
  type_values:
478
478
  all: Totes
479
- hybrid: Ambdues
479
+ hybrid: Híbrida
480
480
  in_person: Presencial
481
481
  online: En línia
482
482
  filters_small_view:
@@ -525,11 +525,11 @@ ca:
525
525
  edit_close_meeting: Editeu l'informe de la reunió
526
526
  edit_meeting: Editar la trobada
527
527
  going: T'has inscrit en aquesta trobada
528
- join: Inscriu-te a la trobada
528
+ join: Unir-se a la trobada
529
529
  leave: Cancel·la la teva inscripció
530
530
  leave_confirmation: Segur que vols cancel·lar la teva inscripció a aquesta trobada?
531
531
  link_available_soon: Enllaç disponible pròximament
532
- link_closed: L'enllaç a la trobada estarà disponible uns minuts abans de que comenci
532
+ link_closed: L'enllaç a la sala de videoconferència estarà disponible uns minuts abans que comenci
533
533
  live_event: Aquesta trobada està succeint ara mateix
534
534
  meeting_minutes: Acta de la trobada
535
535
  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
@@ -567,7 +567,7 @@ ca:
567
567
  fields:
568
568
  closed: Tancada
569
569
  end_time: Data de finalització
570
- id: Id
570
+ id: ID
571
571
  map: Mapa
572
572
  official_meeting: Trobada oficial
573
573
  start_time: Data d'inici
@@ -618,7 +618,7 @@ ca:
618
618
  invalid: S'ha produït un error en abandonar aquesta trobada.
619
619
  success: Has abandonat la trobada amb èxit.
620
620
  type_of_meeting:
621
- hybrid: Ambdues
621
+ hybrid: Híbrida
622
622
  in_person: Presencial
623
623
  online: Online
624
624
  types:
@@ -106,7 +106,7 @@ cs:
106
106
  type_eq:
107
107
  label: Typ schůzky
108
108
  values:
109
- hybrid: Obojí
109
+ hybrid: Hybridní
110
110
  in_person: Osobně
111
111
  online: Online
112
112
  meeting_copies:
@@ -190,7 +190,7 @@ cs:
190
190
  notification_title: Setkání <a href="%{resource_path}">%{resource_title}</a> bude zahájeno za méně než 48 hodin.
191
191
  forms:
192
192
  meetings:
193
- attendees_count_help_text: Nezapomeňte uvést celkový počet účastníků vaší akce. jde o osobní, kombinovanou nebo on-line, je důležité, abychom věděli, kolik lidí je zapojeno.
193
+ attendees_count_help_text: Nezapomeňte uvést celkový počet účastníků na vaší schůzce, už osobně, online nebo hybridně.
194
194
  gamification:
195
195
  badges:
196
196
  attended_meetings:
@@ -490,7 +490,7 @@ cs:
490
490
  type: Typ
491
491
  type_values:
492
492
  all: Vše
493
- hybrid: Obojí
493
+ hybrid: Hybridní
494
494
  in_person: Osobně
495
495
  online: Online
496
496
  filters_small_view:
@@ -583,7 +583,7 @@ cs:
583
583
  fields:
584
584
  closed: Zavřeno
585
585
  end_time: Datum ukončení
586
- id: Id
586
+ id: ID
587
587
  map: Mapa
588
588
  official_meeting: Oficiální schůzka
589
589
  start_time: Datum zahájení
@@ -596,7 +596,7 @@ cs:
596
596
  empty_questions: Během této schůzky budou zaslány některé dotazy a vy na ně budete moci odpovědět. Zobrazí se zde.
597
597
  index_admin:
598
598
  admin_dashboard: Řídicí panel administrace
599
- edit: Upravit v administraci
599
+ edit: Upravit v panelu administrace
600
600
  question: Otázka
601
601
  received_answer: přijatá odpověď
602
602
  received_answers: přijaté odpovědi
@@ -636,7 +636,7 @@ cs:
636
636
  invalid: Při setkání došlo k problému.
637
637
  success: Zasedání jste úspěšně opustili.
638
638
  type_of_meeting:
639
- hybrid: Obojí
639
+ hybrid: Hybridní
640
640
  in_person: Osobně
641
641
  online: Online
642
642
  types:
@@ -79,6 +79,7 @@ de:
79
79
  origin_eq:
80
80
  label: Ursprung
81
81
  values:
82
+ citizen: Bürger
82
83
  official: Offiziell
83
84
  user_group: Benutzergruppen
84
85
  scope_id_eq:
@@ -86,8 +87,8 @@ de:
86
87
  type_eq:
87
88
  label: Art des Treffens
88
89
  values:
89
- hybrid: Beides
90
90
  in_person: Persönlich
91
+ online: Online
91
92
  meeting_copies:
92
93
  create:
93
94
  error: Es gab einen Fehler beim Duplizieren dieses Meetings.
@@ -286,6 +287,7 @@ de:
286
287
  registration_url_help: 'Link: Erlaubt den Teilnehmern den externen Service zu nutzen, den Sie für die Registrierung verwenden'
287
288
  select_a_meeting_type: Bitte eine Meeting-Typ auswählen
288
289
  select_a_registration_type: Bitte wählen Sie eine Registrierungsart aus
290
+ show_embedded_iframe_help: Nur wenige Dienste erlauben das Einbetten einer Veranstaltung oder eines Livestreams (Youtube, Twitch und Jitsi)
289
291
  index:
290
292
  title: Meetings
291
293
  new:
@@ -440,7 +442,6 @@ de:
440
442
  type: Art
441
443
  type_values:
442
444
  all: Alle
443
- hybrid: Beides
444
445
  in_person: Persönlich
445
446
  online: Online
446
447
  filters_small_view:
@@ -460,6 +461,7 @@ de:
460
461
  select_a_category: Bitte wählen sie eine Kategorie
461
462
  select_a_meeting_type: Bitte eine Meeting-Art auswählen
462
463
  select_a_registration_type: Bitte wählen Sie eine Registrierungsart aus
464
+ show_embedded_iframe_help: Nur wenige Dienste erlauben das Einbetten einer Veranstaltung oder eines Livestreams (Youtube, Twitch und Jitsi)
463
465
  index:
464
466
  new_meeting: Neue Besprechung
465
467
  meeting_minutes:
@@ -546,7 +548,6 @@ de:
546
548
  invalid: Beim Verlassen dieses Meetings ist ein Problem aufgetreten.
547
549
  success: Sie haben das Meeting erfolgreich verlassen.
548
550
  type_of_meeting:
549
- hybrid: Beides
550
551
  in_person: In Person
551
552
  online: Online
552
553
  types:
@@ -101,7 +101,7 @@ en:
101
101
  type_eq:
102
102
  label: Type of meeting
103
103
  values:
104
- hybrid: Both
104
+ hybrid: Hybrid
105
105
  in_person: In Person
106
106
  online: Online
107
107
  meeting_copies:
@@ -185,7 +185,7 @@ en:
185
185
  notification_title: The <a href="%{resource_path}">%{resource_title}</a> meeting will start in less than 48h.
186
186
  forms:
187
187
  meetings:
188
- attendees_count_help_text: Dont forget to include the total number of participants at your event. Whether in person, hybrid, or online, it’s important that we know how many people are involved.
188
+ attendees_count_help_text: Don't forget to include the total number of attendees at your meeting, whether in person, online or hybrid.
189
189
  gamification:
190
190
  badges:
191
191
  attended_meetings:
@@ -477,7 +477,7 @@ en:
477
477
  type: Type
478
478
  type_values:
479
479
  all: All
480
- hybrid: Both
480
+ hybrid: Hybrid
481
481
  in_person: In-person
482
482
  online: Online
483
483
  filters_small_view:
@@ -568,7 +568,7 @@ en:
568
568
  fields:
569
569
  closed: Closed
570
570
  end_time: End date
571
- id: Id
571
+ id: ID
572
572
  map: Map
573
573
  official_meeting: Official meeting
574
574
  start_time: Start date
@@ -581,7 +581,7 @@ en:
581
581
  empty_questions: Throughout this meeting, some questions will be sent and you will be able to answer them. They will be displayed here.
582
582
  index_admin:
583
583
  admin_dashboard: Administrator dashboard
584
- edit: Edit in the admin
584
+ edit: Edit in the admin panel
585
585
  question: Question
586
586
  received_answer: received answer
587
587
  received_answers: received answers
@@ -619,7 +619,7 @@ en:
619
619
  invalid: There was a problem leaving this meeting.
620
620
  success: You have left the meeting successfully.
621
621
  type_of_meeting:
622
- hybrid: Both
622
+ hybrid: Hybrid
623
623
  in_person: In person
624
624
  online: Online
625
625
  types: