decidim-meetings 0.29.0 → 0.29.2

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/registration_mailer/confirmation.html.erb +1 -1
  13. data/app/views/decidim/meetings/shared/_index.js.erb +3 -4
  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 +5 -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 +36 -36
  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 +4 -4
  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 +234 -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 +4 -0
  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:
@@ -269,6 +274,9 @@ tr:
269
274
  value_types:
270
275
  organizer_presenter:
271
276
  not_found: 'Organizatör veritabanında bulunamadı (ID: %{id})'
277
+ application_helper:
278
+ filter_category_values:
279
+ all: Tümü
272
280
  calendar:
273
281
  meeting_to_event:
274
282
  read_more: Bu toplantı hakkında daha fazlasını okuyun
@@ -335,6 +343,9 @@ tr:
335
343
  select_a_registration_type: Lütfen bir kayıt türü seçin
336
344
  index:
337
345
  new_meeting: Yeni toplantı
346
+ meeting:
347
+ close_meeting: Toplantıyı kapat
348
+ edit_meeting: Toplantıyı Düzenle
338
349
  meetings:
339
350
  upcoming_meetings_warning: Şu anda planlanmış bir toplantı yok, ancak burada listelenen tüm geçmiş toplantıları bulabilirsiniz.
340
351
  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: Попередній перегляд
@@ -231,6 +237,8 @@ uk:
231
237
  category: Категорія
232
238
  date: Дата
233
239
  search: Шукати
240
+ meeting:
241
+ close_meeting: Закрити зустріч
234
242
  meetings:
235
243
  upcoming_meetings_warning: Наразі нема запланованих зустрічей, але тут ви можете знайти перелік усіх попередніх зустрічей.
236
244
  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:
@@ -249,6 +254,9 @@ zh-CN:
249
254
  value_types:
250
255
  organizer_presenter:
251
256
  not_found: '在数据库中找不到组织者 (ID: %{id})'
257
+ application_helper:
258
+ filter_category_values:
259
+ all: 所有的
252
260
  calendar_modal:
253
261
  calendar_url: 日历 URL
254
262
  export_calendar: 导出日历
@@ -295,6 +303,8 @@ zh-CN:
295
303
  select_a_category: 请选择一个类别
296
304
  index:
297
305
  new_meeting: 新会议
306
+ meeting:
307
+ close_meeting: 关闭会议
298
308
  meetings:
299
309
  upcoming_meetings_warning: 目前没有排定的会议,但在这里你可以找到过去所有会议的清单。
300
310
  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:
@@ -487,6 +486,9 @@ zh-TW:
487
486
  see_all: 查看所有會議
488
487
  see_all_withdrawn: 查看所有撤回的會議
489
488
  text_banner: 您正在查看已被其作者撤回的會議列表。 %{go_back_link}。
489
+ meeting:
490
+ close_meeting: 關閉會議
491
+ edit_meeting: 編輯會議
490
492
  meetings:
491
493
  no_meetings_warning: 沒有符合搜尋條件的會議或者目前沒有任何已排定的會議。
492
494
  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",
@@ -77,6 +77,18 @@ module Decidim
77
77
  field :type_of_meeting, GraphQL::Types::String, "The type of the meeting (online or in-person)", null: false
78
78
  field :online_meeting_url, GraphQL::Types::String, "The URL of the meeting (when the type is online)", null: false
79
79
  field :iframe_embed_type, GraphQL::Types::String, "The type of displaying of the online meeting URL", null: true
80
+
81
+ def self.authorized?(object, context)
82
+ context[:meeting] = object
83
+
84
+ chain = [
85
+ allowed_to?(:read, :meeting, object, context),
86
+ object.published?,
87
+ object.current_user_can_visit_meeting?(context[:current_user])
88
+ ].all?
89
+
90
+ super && chain
91
+ end
80
92
  end
81
93
  end
82
94
  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
 
@@ -50,6 +50,8 @@ module Decidim
50
50
  end
51
51
 
52
52
  initializer "decidim_meetings.register_icons" do
53
+ Decidim.icons.register(name: "headphone-line", icon: "headphone-line", category: "system", description: "", engine: :meetings)
54
+ Decidim.icons.register(name: "video-line", icon: "video-line", category: "system", description: "", engine: :meetings)
53
55
  Decidim.icons.register(name: "Decidim::Meetings::Meeting", icon: "map-pin-line", description: "Meeting", category: "activity", engine: :meetings)
54
56
  Decidim.icons.register(name: "in_person", icon: "community-line", description: "In person", category: "meetings", engine: :meetings)
55
57
  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
@@ -57,6 +60,40 @@ module Decidim
57
60
  attr_reader :meeting
58
61
  alias resource meeting
59
62
 
63
+ def author_fields
64
+ {
65
+ id: meeting.author.id,
66
+ name: author_name(meeting.author),
67
+ url: author_url(meeting.author)
68
+ }
69
+ end
70
+
71
+ def author_name(author)
72
+ translated_attribute(author.name)
73
+ end
74
+
75
+ def author_url(author)
76
+ if author.respond_to?(:nickname)
77
+ profile_url(author) # is a Decidim::User or Decidim::UserGroup
78
+ else
79
+ root_url # is a Decidim::Organization
80
+ end
81
+ end
82
+
83
+ def profile_url(author)
84
+ return "" if author.respond_to?(:deleted?) && author.deleted?
85
+
86
+ Decidim::Core::Engine.routes.url_helpers.profile_url(author.nickname, host:)
87
+ end
88
+
89
+ def root_url
90
+ Decidim::Core::Engine.routes.url_helpers.root_url(host:)
91
+ end
92
+
93
+ def host
94
+ resource.organization.host
95
+ end
96
+
60
97
  def component
61
98
  meeting.component
62
99
  end
@@ -171,6 +171,10 @@ module Decidim
171
171
  followers: resource.participatory_space.followers
172
172
  )
173
173
 
174
+ Decidim.traceability.perform_action!(:publish, resource, admin_user, visibility: "all") do
175
+ resource.publish!
176
+ end
177
+
174
178
  Decidim::Comments::Seed.comments_for(resource)
175
179
 
176
180
  resource
@@ -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.29.0"
7
+ "0.29.2"
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.29.0
4
+ version: 0.29.2
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.29.0
21
+ version: 0.29.2
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.29.0
28
+ version: 0.29.2
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.29.0
35
+ version: 0.29.2
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.29.0
42
+ version: 0.29.2
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.29.0
63
+ version: 0.29.2
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.29.0
70
+ version: 0.29.2
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.29.0
77
+ version: 0.29.2
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.29.0
84
+ version: 0.29.2
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.29.0
91
+ version: 0.29.2
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.29.0
98
+ version: 0.29.2
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.29.0
105
+ version: 0.29.2
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.29.0
112
+ version: 0.29.2
113
113
  description: A meetings component for decidim's participatory spaces.
114
114
  email:
115
115
  - josepjaume@gmail.com
@@ -382,6 +382,8 @@ files:
382
382
  - config/locales/ar.yml
383
383
  - config/locales/bg-BG.yml
384
384
  - config/locales/bg.yml
385
+ - config/locales/bn-BD.yml
386
+ - config/locales/bs-BA.yml
385
387
  - config/locales/ca.yml
386
388
  - config/locales/cs-CZ.yml
387
389
  - config/locales/cs.yml
@@ -549,7 +551,7 @@ files:
549
551
  - lib/tasks/decidim_meetings.rake
550
552
  homepage: https://decidim.org
551
553
  licenses:
552
- - AGPL-3.0
554
+ - AGPL-3.0-or-later
553
555
  metadata:
554
556
  bug_tracker_uri: https://github.com/decidim/decidim/issues
555
557
  documentation_uri: https://docs.decidim.org/