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.
- checksums.yaml +4 -4
- data/app/cells/decidim/meetings/dates_and_map/show.erb +5 -3
- data/app/cells/decidim/meetings/dates_and_map_cell.rb +1 -1
- data/app/cells/decidim/meetings/meeting_l_cell.rb +5 -0
- data/app/forms/decidim/meetings/admin/close_meeting_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_registrations_form.rb +2 -2
- data/app/packs/stylesheets/decidim/meetings/_item.scss +5 -17
- data/app/permissions/decidim/meetings/permissions.rb +7 -2
- data/app/presenters/decidim/meetings/meeting_presenter.rb +1 -5
- data/app/views/decidim/meetings/_calendar_modal.html.erb +1 -1
- data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +1 -1
- data/config/locales/ar.yml +3 -1
- data/config/locales/bg.yml +0 -1
- data/config/locales/bn-BD.yml +1 -0
- data/config/locales/bs-BA.yml +8 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +4 -4
- data/config/locales/de.yml +70 -70
- data/config/locales/el.yml +3 -1
- data/config/locales/es-MX.yml +3 -3
- data/config/locales/es-PY.yml +3 -3
- data/config/locales/es.yml +4 -4
- data/config/locales/eu.yml +35 -35
- data/config/locales/fi-plain.yml +2 -2
- data/config/locales/fi.yml +12 -12
- data/config/locales/fr-CA.yml +4 -4
- data/config/locales/fr.yml +4 -4
- data/config/locales/ga-IE.yml +3 -0
- data/config/locales/gl.yml +7 -3
- data/config/locales/hu.yml +5 -3
- data/config/locales/id-ID.yml +9 -1
- data/config/locales/is-IS.yml +9 -1
- data/config/locales/it.yml +8 -3
- data/config/locales/ja.yml +3 -3
- data/config/locales/lb.yml +4 -1
- data/config/locales/lt.yml +2 -3
- data/config/locales/lv.yml +9 -1
- data/config/locales/nl.yml +3 -1
- data/config/locales/no.yml +3 -1
- data/config/locales/pl.yml +0 -1
- data/config/locales/pt-BR.yml +5 -6
- data/config/locales/pt.yml +6 -1
- data/config/locales/ro-RO.yml +5 -2
- data/config/locales/ru.yml +9 -1
- data/config/locales/sk.yml +9 -1
- data/config/locales/sv.yml +192 -105
- data/config/locales/tr-TR.yml +13 -2
- data/config/locales/uk.yml +9 -1
- data/config/locales/zh-CN.yml +11 -1
- data/config/locales/zh-TW.yml +3 -1
- data/decidim-meetings.gemspec +1 -1
- data/lib/decidim/api/meeting_type.rb +12 -0
- data/lib/decidim/api/meetings_type.rb +1 -3
- data/lib/decidim/meetings/engine.rb +2 -0
- data/lib/decidim/meetings/meeting_serializer.rb +37 -0
- data/lib/decidim/meetings/seeds.rb +16 -1
- data/lib/decidim/meetings/test/factories.rb +6 -0
- data/lib/decidim/meetings/version.rb +1 -1
- metadata +17 -15
data/config/locales/tr-TR.yml
CHANGED
@@ -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:
|
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:
|
data/config/locales/uk.yml
CHANGED
@@ -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:
|
data/config/locales/zh-CN.yml
CHANGED
@@ -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:
|
data/config/locales/zh-TW.yml
CHANGED
@@ -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: 目前沒有安排的會議,但您可以在這裡找到所有過去的會議列表。
|
data/decidim-meetings.gemspec
CHANGED
@@ -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::
|
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" }
|
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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/
|