decidim-meetings 0.28.4 → 0.28.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/meetings/dates_and_map/show.erb +5 -3
  3. data/app/cells/decidim/meetings/dates_and_map_cell.rb +1 -1
  4. data/app/cells/decidim/meetings/meeting_l_cell.rb +5 -0
  5. data/app/forms/decidim/meetings/admin/close_meeting_form.rb +1 -1
  6. data/app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb +1 -1
  7. data/app/forms/decidim/meetings/admin/meeting_form.rb +1 -1
  8. data/app/forms/decidim/meetings/admin/meeting_registrations_form.rb +2 -2
  9. data/app/models/decidim/meetings/meeting.rb +0 -5
  10. data/app/packs/stylesheets/decidim/meetings/_item.scss +5 -17
  11. data/app/permissions/decidim/meetings/permissions.rb +7 -2
  12. data/app/presenters/decidim/meetings/meeting_presenter.rb +1 -5
  13. data/app/views/decidim/meetings/meetings/index.html.erb +9 -0
  14. data/app/views/decidim/meetings/meetings/new.html.erb +1 -0
  15. data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +1 -1
  16. data/app/views/decidim/meetings/shared/_meetings.html.erb +1 -1
  17. data/config/locales/ar.yml +3 -7
  18. data/config/locales/bg.yml +0 -8
  19. data/config/locales/bn-BD.yml +1 -0
  20. data/config/locales/bs-BA.yml +8 -0
  21. data/config/locales/ca-IT.yml +661 -0
  22. data/config/locales/ca.yml +6 -4
  23. data/config/locales/cs.yml +4 -10
  24. data/config/locales/de.yml +120 -118
  25. data/config/locales/el.yml +3 -7
  26. data/config/locales/en.yml +3 -1
  27. data/config/locales/es-MX.yml +11 -9
  28. data/config/locales/es-PY.yml +12 -10
  29. data/config/locales/es.yml +13 -11
  30. data/config/locales/eu.yml +60 -58
  31. data/config/locales/fi-plain.yml +5 -8
  32. data/config/locales/fi.yml +15 -18
  33. data/config/locales/fr-CA.yml +7 -6
  34. data/config/locales/fr.yml +7 -6
  35. data/config/locales/ga-IE.yml +3 -0
  36. data/config/locales/gl.yml +7 -8
  37. data/config/locales/hu.yml +6 -10
  38. data/config/locales/id-ID.yml +9 -6
  39. data/config/locales/is-IS.yml +12 -1
  40. data/config/locales/it.yml +15 -9
  41. data/config/locales/ja.yml +5 -3
  42. data/config/locales/lb.yml +7 -7
  43. data/config/locales/lt.yml +2 -9
  44. data/config/locales/lv.yml +9 -6
  45. data/config/locales/nl.yml +4 -8
  46. data/config/locales/no.yml +3 -6
  47. data/config/locales/pl.yml +0 -8
  48. data/config/locales/pt-BR.yml +5 -12
  49. data/config/locales/pt.yml +6 -7
  50. data/config/locales/ro-RO.yml +7 -4
  51. data/config/locales/ru.yml +9 -6
  52. data/config/locales/sk.yml +10 -7
  53. data/config/locales/sv.yml +2 -4
  54. data/config/locales/tr-TR.yml +13 -8
  55. data/config/locales/uk.yml +12 -6
  56. data/config/locales/zh-CN.yml +11 -7
  57. data/config/locales/zh-TW.yml +3 -7
  58. data/decidim-meetings.gemspec +1 -1
  59. data/lib/decidim/api/meeting_type.rb +12 -0
  60. data/lib/decidim/api/meetings_type.rb +1 -3
  61. data/lib/decidim/meetings/engine.rb +8 -1
  62. data/lib/decidim/meetings/meeting_serializer.rb +37 -0
  63. data/lib/decidim/meetings/test/factories.rb +6 -0
  64. data/lib/decidim/meetings/version.rb +1 -1
  65. metadata +18 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff7870c278d111a8dc7be41401ecc251525a2333d2700c19b5347317a2a0fd40
4
- data.tar.gz: bfedcd7544fee67bb5312d33defaaa2a4e2cf08447b843e1e32d4787303a9a2b
3
+ metadata.gz: d876bcb3a61eabc022b9181ccc6b9c9d8dcac31494a4a269e18c07773fd69204
4
+ data.tar.gz: 1dc4052fcd0e02abd08248d8340981efd9c83886c212275f4b77a0a29134331f
5
5
  SHA512:
6
- metadata.gz: 4cea7a28381c72505d55ea0e58855f9efabefd006c5d235b202317c6f5489d6bd384f7e1a832040c4c708855f4266f9f5267918609ac63c51a35fb7cb8b05c6d
7
- data.tar.gz: 1775223bbc4c539243e65722d0c4362dce5d558241225871b12fca78bdf9062510f36bcfd1b20d4062e2861c0217ff3b3b6c461bb230cf5af84e72182b647062
6
+ metadata.gz: 1345bc6b631617d6248cf3d315f9711307b65b72055a473451d463c4ddebe52e186f97fd5f8dcc16f67602ddfdf6d7cfa6bf400a3aa6ac13c0aa216e2bea33db
7
+ data.tar.gz: b915dd0af1a7acd5e9095205352543fdaddfafe9741532a611271eea937ecc26d41a10a729432fbba3282c6c463bcbe0bf0f35248e70ffc1b4a13fa14f9017f4
@@ -15,9 +15,11 @@
15
15
  </div>
16
16
  </div>
17
17
 
18
- <%= static_map %>
19
-
20
- <% if online? %>
18
+ <% if display_map? %>
19
+ <%= static_map %>
20
+ <% elsif online? %>
21
21
  <%= cell("decidim/address", meeting, online: true) %>
22
+ <% else %>
23
+ <%= cell("decidim/address", meeting) %>
22
24
  <% end %>
23
25
  </div>
@@ -14,7 +14,7 @@ module Decidim
14
14
  delegate :snippets, to: :controller
15
15
 
16
16
  def static_map
17
- return render :static_map if display_map?
17
+ render :static_map
18
18
  end
19
19
 
20
20
  def year
@@ -15,6 +15,11 @@ module Decidim
15
15
  "card__calendar-list__reset"
16
16
  end
17
17
 
18
+ # Renders the date in the meeting card list
19
+ def has_image?
20
+ true
21
+ end
22
+
18
23
  def image
19
24
  render
20
25
  end
@@ -7,7 +7,7 @@ module Decidim
7
7
  class CloseMeetingForm < Decidim::Form
8
8
  include TranslatableAttributes
9
9
 
10
- translatable_attribute :closing_report, String
10
+ translatable_attribute :closing_report, Decidim::Attributes::RichText
11
11
  attribute :video_url, String
12
12
  attribute :audio_url, String
13
13
  attribute :closing_visible, Boolean, default: true
@@ -8,7 +8,7 @@ module Decidim
8
8
  include TranslatableAttributes
9
9
 
10
10
  translatable_attribute :title, String
11
- translatable_attribute :description, String
11
+ translatable_attribute :description, Decidim::Attributes::RichText
12
12
 
13
13
  attribute :duration, Integer, default: 0
14
14
  attribute :parent_id, Integer
@@ -23,7 +23,7 @@ module Decidim
23
23
  attribute :iframe_access_level, String
24
24
 
25
25
  translatable_attribute :title, String
26
- translatable_attribute :description, String
26
+ translatable_attribute :description, Decidim::Attributes::RichText
27
27
  translatable_attribute :location, String
28
28
  translatable_attribute :location_hints, String
29
29
 
@@ -15,8 +15,8 @@ module Decidim
15
15
  attribute :available_slots, Integer
16
16
  attribute :reserved_slots, Integer
17
17
 
18
- translatable_attribute :registration_terms, String
19
- translatable_attribute :registration_email_custom_content, String
18
+ translatable_attribute :registration_terms, Decidim::Attributes::RichText
19
+ translatable_attribute :registration_email_custom_content, Decidim::Attributes::RichText
20
20
 
21
21
  validates :registration_terms, translatable_presence: true, if: ->(form) { form.registrations_enabled? }
22
22
  validates :available_slots, :reserved_slots, presence: true, if: ->(form) { form.registrations_enabled? }
@@ -311,11 +311,6 @@ module Decidim
311
311
  )
312
312
  end
313
313
 
314
- # Public: Overrides the `reported_content_url` Reportable concern method.
315
- def reported_content_url
316
- ResourceLocatorPresenter.new(self).url
317
- end
318
-
319
314
  # Public: Overrides the `reported_attributes` Reportable concern method.
320
315
  def reported_attributes
321
316
  [:description]
@@ -6,29 +6,17 @@
6
6
  }
7
7
 
8
8
  &__calendar {
9
- @apply w-14 flex flex-col justify-start rounded bg-background text-center;
9
+ @apply order-first flex flex-col min-w-48 rounded bg-background text-center md:w-14;
10
10
 
11
11
  &:only-child &-month {
12
12
  @apply rounded-t;
13
13
  }
14
14
 
15
15
  &-container {
16
- @apply grid grid-cols-[auto_1fr] md:grid-cols-[auto_1fr_1fr] items-center gap-0 md:gap-x-5 border-4 border-background rounded md:h-[140px] overflow-hidden;
16
+ @apply flex flex-wrap flex-col md:flex-row gap-2 border-4 border-background rounded;
17
17
 
18
- > *:nth-child(2) {
19
- @apply p-4 md:p-0;
20
-
21
- &:not(:last-child) {
22
- @apply col-span-2 md:col-auto order-2 md:order-1;
23
- }
24
-
25
- &:last-child {
26
- @apply md:col-span-2 pr-4;
27
- }
28
- }
29
-
30
- > *:nth-child(3) {
31
- @apply order-1 md:order-2 h-[135px] md:h-full;
18
+ ul {
19
+ @apply flex-1 p-2;
32
20
  }
33
21
  }
34
22
 
@@ -55,7 +43,7 @@
55
43
  }
56
44
 
57
45
  &__lg {
58
- @apply w-fit justify-center [&>*]:px-2 min-w-24 h-[8.5rem];
46
+ @apply flex min-w-48;
59
47
  }
60
48
 
61
49
  &__lg &-month {
@@ -4,12 +4,17 @@ module Decidim
4
4
  module Meetings
5
5
  class Permissions < Decidim::DefaultPermissions
6
6
  def permissions
7
- return permission_action unless user
8
-
9
7
  # Delegate the admin permission checks to the admin permissions class
10
8
  return Decidim::Meetings::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
11
9
  return permission_action if permission_action.scope != :public
12
10
 
11
+ if permission_action.subject == :meeting && permission_action.action == :read
12
+ toggle_allow(!meeting&.hidden? && meeting&.current_user_can_visit_meeting?(user))
13
+ return permission_action
14
+ end
15
+
16
+ return permission_action unless user
17
+
13
18
  case permission_action.subject
14
19
  when :answer
15
20
  case permission_action.action
@@ -74,7 +74,7 @@ module Decidim
74
74
  return unless meeting
75
75
 
76
76
  handle_locales(meeting.registration_email_custom_content, all_locales) do |content|
77
- renderer = Decidim::ContentRenderers::HashtagRenderer.new(sanitized(content))
77
+ renderer = Decidim::ContentRenderers::HashtagRenderer.new(decidim_sanitize_editor_admin(content))
78
78
  renderer.render(links:).html_safe
79
79
  end
80
80
  end
@@ -135,10 +135,6 @@ module Decidim
135
135
 
136
136
  proposals.map.with_index { |proposal, index| "#{index + 1}) #{proposal.title}\n" }
137
137
  end
138
-
139
- def sanitized(content)
140
- decidim_sanitize_editor(content)
141
- end
142
138
  end
143
139
  end
144
140
  end
@@ -1,3 +1,12 @@
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_component.participatory_space.try(:description)),
3
+ title: t("decidim.components.pagination.page_title",
4
+ component_name: translated_attribute(current_component.name),
5
+ current_page: meetings.current_page,
6
+ total_pages: meetings.total_pages ),
7
+ url: meetings_url,
8
+ resource: current_component) %>
9
+
1
10
  <%= render partial: "decidim/meetings/shared/index", locals: {
2
11
  display_map: Decidim::Map.available?(:geocoding, :dynamic) && current_component.settings.maps_enabled? && search.result.not_online.exists?,
3
12
  display_announcement: true,
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("title", scope: "decidim.meetings.meetings.new")) %>
1
2
  <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
3
  <div class="text-center py-10">
3
4
  <h1 class="title-decorator inline-block text-left">
@@ -6,5 +6,5 @@
6
6
  <% if @meeting.customize_registration_email? %>
7
7
  <p><%= present(@meeting).registration_email_custom_content %></p>
8
8
  <% end %>
9
-
9
+ <br>
10
10
  <p class="email-instructions"><%= t(".details") %></p>
@@ -11,7 +11,7 @@
11
11
  <% if meetings.length.zero? %>
12
12
  <%= cell("decidim/announcement", t("decidim.meetings.meetings.meetings.no_meetings_warning"), callout_class: "warning" ) %>
13
13
  <% else %>
14
- <h2 class="h5 md:h3 decorator"><%= t("meetings_count", scope: "decidim.meetings.meetings.count", count: meetings.total_count) %></h2>
14
+ <h2 class="h5 md:h3 decorator" aria-live="polite" aria-atomic="true"><%= t("meetings_count", scope: "decidim.meetings.meetings.count", count: meetings.total_count) %></h2>
15
15
 
16
16
  <%= cell("decidim/announcement", t("decidim.meetings.meetings.meetings.upcoming_meetings_warning"), callout_class: "warning" ) if @forced_past_meetings %>
17
17
 
@@ -205,7 +205,6 @@ ar:
205
205
  attachment_collections: المجلدات
206
206
  attachments: مرفقات
207
207
  close: قريب
208
- confirm_destroy: هل أنت متأكد أنك تريد حذف هذا الاجتماع؟
209
208
  destroy: حذف
210
209
  edit: تعديل
211
210
  invalid_destroy:
@@ -315,8 +314,6 @@ ar:
315
314
  registrations:
316
315
  edit:
317
316
  save: حفظ
318
- validate: التحقق من صحة
319
- validate_registration_code: التحقق من صحة رمز التسجيل
320
317
  form:
321
318
  available_slots_help: اتركه إلى 0 إذا كان لديك فتحات غير محدودة المتاحة.
322
319
  invites: دعوات
@@ -335,9 +332,6 @@ ar:
335
332
  update:
336
333
  invalid: حدثت مشكلة أثناء حفظ إعدادات التسجيل.
337
334
  success: تم حفظ إعدادات تسجيل الاجتماع بنجاح.
338
- validate_registration_code:
339
- invalid: رمز التسجيل هذا غير صالح.
340
- success: تم التحقق من صحة رمز التسجيل بنجاح.
341
335
  admin_log:
342
336
  invite:
343
337
  create: "%{user_name} دعا %{attendee_name} للانضمام إلى اجتماع %{resource_name} في الفضاء %{space_name}"
@@ -472,12 +466,14 @@ ar:
472
466
  see_all: عرض كافة الاجتماعات
473
467
  see_all_withdrawn: عرض جميع الاجتماعات المسحوبة
474
468
  text_banner: أنت تستعرض قائمة الاجتماعات التي تم سحبها من قبل مؤلفيها. %{go_back_link}.
469
+ meeting:
470
+ close_meeting: اجتماع قريب
471
+ edit_meeting: تعديل الاجتماعات
475
472
  meetings:
476
473
  upcoming_meetings_warning: حاليًا ، لا توجد اجتماعات مجدولة ، ولكن يمكنك هنا العثور على جميع الاجتماعات السابقة المدرجة.
477
474
  new:
478
475
  back: العودة
479
476
  create: إنشاء
480
- title: إنشاء اجتماعك
481
477
  registration_confirm:
482
478
  cancel: إلغاء
483
479
  confirm: تؤكد
@@ -217,7 +217,6 @@ bg:
217
217
  attachment_collections: Папки
218
218
  attachments: Прикачени файлове
219
219
  close: Затвори
220
- confirm_destroy: Наистина ли искате да изтриете тази среща?
221
220
  destroy: Изтрий
222
221
  edit: Редактирай
223
222
  invalid_destroy:
@@ -355,8 +354,6 @@ bg:
355
354
  registrations:
356
355
  edit:
357
356
  save: Запази
358
- validate: Потвърди
359
- validate_registration_code: Валидиране на регистрационния код
360
357
  form:
361
358
  available_slots_help: Оставете 0, ако разполагате с неограничен брой места.
362
359
  invites: Покани
@@ -372,9 +369,6 @@ bg:
372
369
  update:
373
370
  invalid: Възникна проблем при запазването на настройките за регистрация.
374
371
  success: Настройките за регистрация бяха запазени успешно.
375
- validate_registration_code:
376
- invalid: Регистрационният код е невалиден.
377
- success: Регистрационният код беше валидиран успешно.
378
372
  admin_log:
379
373
  invite:
380
374
  create: "%{user_name} покани %{attendee_name} да се присъедини към срещата %{resource_name} в пространството %{space_name}"
@@ -437,7 +431,6 @@ bg:
437
431
  new_meeting: 'Нова среща:'
438
432
  layouts:
439
433
  live_event:
440
- administrate: Администриране
441
434
  close: затваряне
442
435
  questions: Въпроси
443
436
  mailer:
@@ -526,7 +519,6 @@ bg:
526
519
  new:
527
520
  back: Назад
528
521
  create: Създаване
529
- title: Създайте среща
530
522
  registration_confirm:
531
523
  cancel: Отказ
532
524
  confirm: Потвърждаване
@@ -0,0 +1 @@
1
+ bn:
@@ -0,0 +1,8 @@
1
+ ---
2
+ bs:
3
+ decidim:
4
+ meetings:
5
+ admin:
6
+ registrations:
7
+ form:
8
+ recommendation_message: Zbog vaše privatnosti preporučujemo da obrišete ovaj prijavni formular kada vam više ne treba, obično 3 meseca nakon što se sastanak završio.