decidim-meetings 0.28.3 → 0.28.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) 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/packs/stylesheets/decidim/meetings/_item.scss +5 -17
  10. data/app/permissions/decidim/meetings/permissions.rb +7 -2
  11. data/app/presenters/decidim/meetings/meeting_presenter.rb +1 -5
  12. data/app/views/decidim/meetings/_calendar_modal.html.erb +1 -1
  13. data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +1 -1
  14. data/config/locales/ar.yml +3 -1
  15. data/config/locales/bg.yml +0 -1
  16. data/config/locales/bn-BD.yml +1 -0
  17. data/config/locales/bs-BA.yml +8 -0
  18. data/config/locales/ca.yml +1 -1
  19. data/config/locales/cs.yml +4 -4
  20. data/config/locales/de.yml +70 -70
  21. data/config/locales/el.yml +3 -1
  22. data/config/locales/es-MX.yml +3 -3
  23. data/config/locales/es-PY.yml +3 -3
  24. data/config/locales/es.yml +4 -4
  25. data/config/locales/eu.yml +35 -35
  26. data/config/locales/fi-plain.yml +2 -2
  27. data/config/locales/fi.yml +12 -12
  28. data/config/locales/fr-CA.yml +4 -4
  29. data/config/locales/fr.yml +4 -4
  30. data/config/locales/ga-IE.yml +3 -0
  31. data/config/locales/gl.yml +7 -3
  32. data/config/locales/hu.yml +5 -3
  33. data/config/locales/id-ID.yml +9 -1
  34. data/config/locales/is-IS.yml +9 -1
  35. data/config/locales/it.yml +8 -3
  36. data/config/locales/ja.yml +3 -3
  37. data/config/locales/lb.yml +4 -1
  38. data/config/locales/lt.yml +2 -3
  39. data/config/locales/lv.yml +9 -1
  40. data/config/locales/nl.yml +3 -1
  41. data/config/locales/no.yml +3 -1
  42. data/config/locales/pl.yml +0 -1
  43. data/config/locales/pt-BR.yml +5 -6
  44. data/config/locales/pt.yml +6 -1
  45. data/config/locales/ro-RO.yml +5 -2
  46. data/config/locales/ru.yml +9 -1
  47. data/config/locales/sk.yml +9 -1
  48. data/config/locales/sv.yml +192 -105
  49. data/config/locales/tr-TR.yml +13 -2
  50. data/config/locales/uk.yml +9 -1
  51. data/config/locales/zh-CN.yml +11 -1
  52. data/config/locales/zh-TW.yml +3 -1
  53. data/decidim-meetings.gemspec +1 -1
  54. data/lib/decidim/api/meeting_type.rb +12 -0
  55. data/lib/decidim/api/meetings_type.rb +1 -3
  56. data/lib/decidim/meetings/engine.rb +2 -0
  57. data/lib/decidim/meetings/meeting_serializer.rb +37 -0
  58. data/lib/decidim/meetings/seeds.rb +16 -1
  59. data/lib/decidim/meetings/test/factories.rb +6 -0
  60. data/lib/decidim/meetings/version.rb +1 -1
  61. metadata +17 -15
@@ -51,6 +51,12 @@ tr:
51
51
  other: Kayıtlar
52
52
  decidim:
53
53
  admin:
54
+ filters:
55
+ meetings:
56
+ category_id_eq:
57
+ label: Kategori
58
+ scope_id_eq:
59
+ label: kapsam
54
60
  meeting_copies:
55
61
  create:
56
62
  error: Bu toplantıyı kopyalarken bir sorun oluştu.
@@ -73,7 +79,7 @@ tr:
73
79
  enable_pads_creation: Altlık oluşturmayı etkinleştirin
74
80
  registration_code_enabled: Kayıt kodu etkinleştirildi
75
81
  resources_permissions_enabled: Her toplantı için işlem izinleri ayarlanabilir
76
- scope_id: Kapsam
82
+ scope_id: kapsam
77
83
  scopes_enabled: Kapsamlar etkinleştirildi
78
84
  terms_and_conditions_url_for_meeting_creators: Toplantı oluşturucuları için şartlar ve koşullar URL'si
79
85
  step:
@@ -142,7 +148,6 @@ tr:
142
148
  attachment_collections: Klasörler
143
149
  attachments: Ekler
144
150
  close: Kapat
145
- confirm_destroy: Bu toplantıyı silmek istediğinizden emin misiniz?
146
151
  destroy: Sil
147
152
  edit: Düzenle
148
153
  invalid_destroy:
@@ -273,6 +278,9 @@ tr:
273
278
  value_types:
274
279
  organizer_presenter:
275
280
  not_found: 'Organizatör veritabanında bulunamadı (ID: %{id})'
281
+ application_helper:
282
+ filter_category_values:
283
+ all: Tümü
276
284
  calendar:
277
285
  meeting_to_event:
278
286
  read_more: Bu toplantı hakkında daha fazlasını okuyun
@@ -339,6 +347,9 @@ tr:
339
347
  select_a_registration_type: Lütfen bir kayıt türü seçin
340
348
  index:
341
349
  new_meeting: Yeni toplantı
350
+ meeting:
351
+ close_meeting: Toplantıyı kapat
352
+ edit_meeting: Toplantıyı Düzenle
342
353
  meetings:
343
354
  upcoming_meetings_warning: Şu anda planlanmış bir toplantı yok, ancak burada listelenen tüm geçmiş toplantıları bulabilirsiniz.
344
355
  new:
@@ -49,6 +49,12 @@ uk:
49
49
  other: Зареєстрованих
50
50
  decidim:
51
51
  admin:
52
+ filters:
53
+ meetings:
54
+ category_id_eq:
55
+ label: Категорія
56
+ scope_id_eq:
57
+ label: Обсяг
52
58
  meeting_copies:
53
59
  create:
54
60
  error: При спробі створити копію цієї зустрічі сталася помилка.
@@ -67,6 +73,7 @@ uk:
67
73
  comments_enabled: Коментарі увімкнено
68
74
  default_registration_terms: Умови реєстрації за умовчанням
69
75
  resources_permissions_enabled: Права на дії можна встановити для кожної зустрічі
76
+ scope_id: Обсяг
70
77
  step:
71
78
  announcement: Оголошення
72
79
  comments_blocked: Коментарі вимкнено
@@ -114,7 +121,6 @@ uk:
114
121
  attachment_collections: Теки
115
122
  attachments: Вкладені файли
116
123
  close: Закрити
117
- confirm_destroy: Ви впевнені, що хочете видалити цю зустріч?
118
124
  destroy: Видалити
119
125
  edit: Редагувати
120
126
  preview: Попередній перегляд
@@ -234,6 +240,8 @@ uk:
234
240
  category: Категорія
235
241
  date: Дата
236
242
  search: Шукати
243
+ meeting:
244
+ close_meeting: Закрити зустріч
237
245
  meetings:
238
246
  upcoming_meetings_warning: Наразі нема запланованих зустрічей, але тут ви можете знайти перелік усіх попередніх зустрічей.
239
247
  registration_confirm:
@@ -43,6 +43,12 @@ zh-CN:
43
43
  other: 注册
44
44
  decidim:
45
45
  admin:
46
+ filters:
47
+ meetings:
48
+ category_id_eq:
49
+ label: 类别
50
+ scope_id_eq:
51
+ label: 范围
46
52
  meeting_copies:
47
53
  create:
48
54
  error: 重复这次会议时出现问题。
@@ -132,7 +138,6 @@ zh-CN:
132
138
  attachment_collections: 文件夹
133
139
  attachments: 附件
134
140
  close: 关闭
135
- confirm_destroy: 您确定要删除这个会议吗?
136
141
  destroy: 删除
137
142
  edit: 编辑
138
143
  invalid_destroy:
@@ -253,6 +258,9 @@ zh-CN:
253
258
  value_types:
254
259
  organizer_presenter:
255
260
  not_found: '在数据库中找不到组织者 (ID: %{id})'
261
+ application_helper:
262
+ filter_category_values:
263
+ all: 所有的
256
264
  calendar_modal:
257
265
  calendar_url: 日历 URL
258
266
  export_calendar: 导出日历
@@ -299,6 +307,8 @@ zh-CN:
299
307
  select_a_category: 请选择一个类别
300
308
  index:
301
309
  new_meeting: 新会议
310
+ meeting:
311
+ close_meeting: 关闭会议
302
312
  meetings:
303
313
  upcoming_meetings_warning: 目前没有排定的会议,但在这里你可以找到过去所有会议的清单。
304
314
  new:
@@ -210,7 +210,6 @@ zh-TW:
210
210
  attachment_collections: 資料夾
211
211
  attachments: 附件
212
212
  close: 關閉
213
- confirm_destroy: 你確定要刪除此會議?
214
213
  destroy: 刪除
215
214
  edit: 編輯
216
215
  invalid_destroy:
@@ -494,6 +493,9 @@ zh-TW:
494
493
  see_all: 查看所有會議
495
494
  see_all_withdrawn: 查看所有撤回的會議
496
495
  text_banner: 您正在查看已被其作者撤回的會議列表。 %{go_back_link}。
496
+ meeting:
497
+ close_meeting: 關閉會議
498
+ edit_meeting: 編輯會議
497
499
  meetings:
498
500
  no_meetings_warning: 沒有符合搜尋條件的會議或者目前沒有任何已排定的會議。
499
501
  upcoming_meetings_warning: 目前沒有安排的會議,但您可以在這裡找到所有過去的會議列表。
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.version = Decidim::Meetings.version
11
11
  s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
12
12
  s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
13
- s.license = "AGPL-3.0"
13
+ s.license = "AGPL-3.0-or-later"
14
14
  s.homepage = "https://decidim.org"
15
15
  s.metadata = {
16
16
  "bug_tracker_uri" => "https://github.com/decidim/decidim/issues",
@@ -74,6 +74,18 @@ module Decidim
74
74
  field :type_of_meeting, GraphQL::Types::String, "The type of the meeting (online or in-person)", null: false
75
75
  field :online_meeting_url, GraphQL::Types::String, "The URL of the meeting (when the type is online)", null: false
76
76
  field :iframe_embed_type, GraphQL::Types::String, "The type of displaying of the online meeting URL", null: true
77
+
78
+ def self.authorized?(object, context)
79
+ context[:meeting] = object
80
+
81
+ chain = [
82
+ allowed_to?(:read, :meeting, object, context),
83
+ object.published?,
84
+ object.current_user_can_visit_meeting?(context[:current_user])
85
+ ].all?
86
+
87
+ super && chain
88
+ end
77
89
  end
78
90
  end
79
91
  end
@@ -2,9 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Meetings
5
- class MeetingsType < Decidim::Api::Types::BaseObject
6
- implements Decidim::Core::ComponentInterface
7
-
5
+ class MeetingsType < Decidim::Core::ComponentType
8
6
  graphql_name "Meetings"
9
7
  description "A meetings component of a participatory space."
10
8
 
@@ -46,6 +46,8 @@ module Decidim
46
46
  end
47
47
 
48
48
  initializer "decidim_meetings.register_icons" do
49
+ Decidim.icons.register(name: "headphone-line", icon: "headphone-line", category: "system", description: "", engine: :meetings)
50
+ Decidim.icons.register(name: "video-line", icon: "video-line", category: "system", description: "", engine: :meetings)
49
51
  Decidim.icons.register(name: "Decidim::Meetings::Meeting", icon: "map-pin-line", description: "Meeting", category: "activity", engine: :meetings)
50
52
  Decidim.icons.register(name: "in_person", icon: "community-line", description: "In person", category: "meetings", engine: :meetings)
51
53
  Decidim.icons.register(name: "online", icon: "webcam-line", description: "Online", category: "meetings", engine: :meetings)
@@ -25,6 +25,9 @@ module Decidim
25
25
  id: meeting.scope.try(:id),
26
26
  name: meeting.scope.try(:name)
27
27
  },
28
+ author: {
29
+ **author_fields
30
+ },
28
31
  participatory_space: {
29
32
  id: meeting.participatory_space.id,
30
33
  url: Decidim::ResourceLocatorPresenter.new(meeting.participatory_space).url
@@ -55,6 +58,40 @@ module Decidim
55
58
  attr_reader :meeting
56
59
  alias resource meeting
57
60
 
61
+ def author_fields
62
+ {
63
+ id: meeting.author.id,
64
+ name: author_name(meeting.author),
65
+ url: author_url(meeting.author)
66
+ }
67
+ end
68
+
69
+ def author_name(author)
70
+ translated_attribute(author.name)
71
+ end
72
+
73
+ def author_url(author)
74
+ if author.respond_to?(:nickname)
75
+ profile_url(author) # is a Decidim::User or Decidim::UserGroup
76
+ else
77
+ root_url # is a Decidim::Organization
78
+ end
79
+ end
80
+
81
+ def profile_url(author)
82
+ return "" if author.respond_to?(:deleted?) && author.deleted?
83
+
84
+ Decidim::Core::Engine.routes.url_helpers.profile_url(author.nickname, host:)
85
+ end
86
+
87
+ def root_url
88
+ Decidim::Core::Engine.routes.url_helpers.root_url(host:)
89
+ end
90
+
91
+ def host
92
+ resource.organization.host
93
+ end
94
+
58
95
  def component
59
96
  meeting.component
60
97
  end
@@ -146,12 +146,27 @@ module Decidim
146
146
  def create_meeting!(component:, type: :in_person, author_type: :official)
147
147
  params = meeting_params(component:, type:, author_type:)
148
148
 
149
- Decidim.traceability.create!(
149
+ resource = Decidim.traceability.create!(
150
150
  Decidim::Meetings::Meeting,
151
151
  admin_user,
152
152
  params,
153
153
  visibility: "all"
154
154
  )
155
+
156
+ Decidim::EventsManager.publish(
157
+ event: "decidim.events.meetings.meeting_created",
158
+ event_class: Decidim::Meetings::CreateMeetingEvent,
159
+ resource:,
160
+ followers: resource.participatory_space.followers
161
+ )
162
+
163
+ Decidim.traceability.perform_action!(:publish, resource, admin_user, visibility: "all") do
164
+ resource.publish!
165
+ end
166
+
167
+ Decidim::Comments::Seed.comments_for(resource)
168
+
169
+ resource
155
170
  end
156
171
 
157
172
  def create_service!(meeting:)
@@ -64,6 +64,12 @@ FactoryBot.define do
64
64
  type_of_meeting { :in_person }
65
65
  end
66
66
 
67
+ trait :hidden do
68
+ after :create do |meeting, evaluator|
69
+ create(:moderation, hidden_at: Time.current, reportable: meeting, skip_injection: evaluator.skip_injection)
70
+ end
71
+ end
72
+
67
73
  trait :online do
68
74
  type_of_meeting { :online }
69
75
  online_meeting_url { "https://decidim.org" }
@@ -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.3"
7
+ "0.28.5"
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.3
4
+ version: 0.28.5
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: 2024-09-10 00:00:00.000000000 Z
13
+ date: 2025-02-12 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.3
21
+ version: 0.28.5
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.3
28
+ version: 0.28.5
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.3
35
+ version: 0.28.5
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.3
42
+ version: 0.28.5
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.3
63
+ version: 0.28.5
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.3
70
+ version: 0.28.5
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.3
77
+ version: 0.28.5
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.3
84
+ version: 0.28.5
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.3
91
+ version: 0.28.5
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.3
98
+ version: 0.28.5
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.3
105
+ version: 0.28.5
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.3
112
+ version: 0.28.5
113
113
  description: A meetings component for decidim's participatory spaces.
114
114
  email:
115
115
  - josepjaume@gmail.com
@@ -379,6 +379,8 @@ files:
379
379
  - config/locales/ar.yml
380
380
  - config/locales/bg-BG.yml
381
381
  - config/locales/bg.yml
382
+ - config/locales/bn-BD.yml
383
+ - config/locales/bs-BA.yml
382
384
  - config/locales/ca.yml
383
385
  - config/locales/cs-CZ.yml
384
386
  - config/locales/cs.yml
@@ -545,7 +547,7 @@ files:
545
547
  - lib/tasks/decidim_meetings.rake
546
548
  homepage: https://decidim.org
547
549
  licenses:
548
- - AGPL-3.0
550
+ - AGPL-3.0-or-later
549
551
  metadata:
550
552
  bug_tracker_uri: https://github.com/decidim/decidim/issues
551
553
  documentation_uri: https://docs.decidim.org/