decidim-conferences 0.30.4 → 0.31.0.rc1
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.
- checksums.yaml +4 -4
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +3 -1
- data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
- data/app/commands/decidim/conferences/admin/{copy_conference.rb → duplicate_conference.rb} +15 -16
- data/app/commands/decidim/conferences/admin/update_conference.rb +2 -2
- data/app/controllers/decidim/conferences/admin/conference_duplicates_controller.rb +35 -0
- data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/conference_speakers_controller.rb +4 -4
- data/app/controllers/decidim/conferences/admin/conferences_controller.rb +3 -3
- data/app/controllers/decidim/conferences/admin/diplomas_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/media_links_controller.rb +2 -2
- data/app/controllers/decidim/conferences/admin/partners_controller.rb +2 -2
- data/app/controllers/decidim/conferences/admin/registration_types_controller.rb +2 -2
- data/app/forms/decidim/conferences/admin/{conference_copy_form.rb → conference_duplicate_form.rb} +3 -3
- data/app/forms/decidim/conferences/admin/conference_form.rb +0 -4
- data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
- data/app/jobs/decidim/conferences/upcoming_conference_notification_job.rb +1 -1
- data/app/models/decidim/conference.rb +0 -4
- data/app/models/decidim/conferences/registration_type.rb +4 -0
- data/app/packs/entrypoints/decidim_conferences_admin.js +0 -1
- data/app/packs/src/decidim/conferences/admin/conference_invite_form.js +1 -1
- data/app/packs/src/decidim/conferences/admin/conference_speakers.js +1 -1
- data/app/packs/src/decidim/conferences/admin/conferences.js +1 -1
- data/app/packs/stylesheets/decidim/conferences/_program.scss +1 -1
- data/app/packs/stylesheets/decidim/conferences/conferences.scss +5 -5
- data/app/permissions/decidim/conferences/permissions.rb +4 -4
- data/app/presenters/decidim/conference_speaker_presenter.rb +0 -4
- data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +0 -1
- data/app/presenters/decidim/conferences/conference_stats_presenter.rb +1 -3
- data/app/queries/decidim/conferences/admin/conference_speakers.rb +2 -2
- data/app/queries/decidim/conferences/conferences_stats_followers_count.rb +14 -0
- data/app/queries/decidim/conferences/conferences_stats_participants_count.rb +14 -0
- data/app/views/decidim/conferences/admin/{conference_copies → conference_duplicates}/_form.html.erb +3 -3
- data/app/views/decidim/conferences/admin/conference_duplicates/new.html.erb +19 -0
- data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +34 -20
- data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +51 -22
- data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +44 -17
- data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +108 -33
- data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +4 -4
- data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +2 -2
- data/app/views/decidim/conferences/admin/conferences/_form.html.erb +115 -40
- data/app/views/decidim/conferences/admin/conferences/edit.html.erb +0 -8
- data/app/views/decidim/conferences/admin/conferences/index.html.erb +2 -2
- data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +2 -1
- data/app/views/decidim/conferences/admin/media_links/index.html.erb +32 -13
- data/app/views/decidim/conferences/admin/partners/index.html.erb +33 -14
- data/app/views/decidim/conferences/admin/registration_types/index.html.erb +56 -21
- data/app/views/decidim/conferences/conference_program/_program_item.html.erb +9 -9
- data/app/views/decidim/conferences/conference_program/show.html.erb +1 -1
- data/app/views/decidim/conferences/conferences/_conference_hero.html.erb +0 -5
- data/app/views/decidim/conferences/conferences/show.html.erb +1 -1
- data/app/views/layouts/decidim/diploma.html.erb +2 -2
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +1 -10
- data/config/locales/bg.yml +1 -13
- data/config/locales/bs-BA.yml +0 -5
- data/config/locales/ca-IT.yml +24 -14
- data/config/locales/ca.yml +24 -14
- data/config/locales/cs.yml +23 -13
- data/config/locales/de.yml +25 -13
- data/config/locales/el.yml +1 -10
- data/config/locales/en.yml +24 -14
- data/config/locales/es-MX.yml +24 -14
- data/config/locales/es-PY.yml +24 -14
- data/config/locales/es.yml +24 -14
- data/config/locales/eu.yml +24 -14
- data/config/locales/fi-plain.yml +23 -11
- data/config/locales/fi.yml +23 -11
- data/config/locales/fr-CA.yml +24 -17
- data/config/locales/fr.yml +24 -17
- data/config/locales/ga-IE.yml +2 -6
- data/config/locales/gl.yml +1 -10
- data/config/locales/hu.yml +1 -10
- data/config/locales/id-ID.yml +1 -9
- data/config/locales/it.yml +1 -10
- data/config/locales/ja.yml +25 -15
- data/config/locales/lb.yml +1 -7
- data/config/locales/lt.yml +1 -10
- data/config/locales/lv.yml +1 -10
- data/config/locales/nl.yml +1 -10
- data/config/locales/no.yml +1 -10
- data/config/locales/pl.yml +1 -13
- data/config/locales/pt-BR.yml +1 -13
- data/config/locales/pt.yml +1 -10
- data/config/locales/ro-RO.yml +3 -10
- data/config/locales/sk.yml +1 -10
- data/config/locales/sl.yml +0 -5
- data/config/locales/sr-CS.yml +0 -5
- data/config/locales/sv.yml +16 -15
- data/config/locales/tr-TR.yml +1 -10
- data/config/locales/zh-CN.yml +1 -10
- data/config/locales/zh-TW.yml +1 -10
- data/db/migrate/20250605094623_remove_hashtag_column_conferences.rb +7 -0
- data/lib/decidim/api/conference_registration_type_type.rb +30 -0
- data/lib/decidim/api/conference_speaker_type.rb +12 -0
- data/lib/decidim/api/conference_type.rb +15 -3
- data/lib/decidim/conferences/admin_engine.rb +1 -1
- data/lib/decidim/conferences/api.rb +1 -0
- data/lib/decidim/conferences/conference_diploma_pdf.rb +1 -1
- data/lib/decidim/conferences/engine.rb +5 -3
- data/lib/decidim/conferences/participatory_space.rb +18 -2
- data/lib/decidim/conferences/seeds.rb +5 -6
- data/lib/decidim/conferences/test/factories.rb +2 -2
- data/lib/decidim/conferences/version.rb +1 -1
- metadata +19 -15
- data/app/controllers/decidim/conferences/admin/conference_copies_controller.rb +0 -35
- data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +0 -19
data/config/locales/tr-TR.yml
CHANGED
|
@@ -3,14 +3,9 @@ tr:
|
|
|
3
3
|
activemodel:
|
|
4
4
|
attributes:
|
|
5
5
|
conference:
|
|
6
|
-
assemblies_ids: İlgili kurullar
|
|
7
6
|
banner_image: Banner resmi
|
|
8
|
-
copy_categories: Kategorileri kopyala
|
|
9
|
-
copy_components: Bileşenleri kopyala
|
|
10
|
-
copy_features: Özellikleri kopyala
|
|
11
7
|
decidim_scope_id: Kapsam
|
|
12
8
|
description: Açıklama
|
|
13
|
-
hashtag: Etiket
|
|
14
9
|
hero_image: Ana resim
|
|
15
10
|
participatory_processes_ids: İlgili katılımcı süreçleri
|
|
16
11
|
promoted: Vurgulanan
|
|
@@ -48,9 +43,6 @@ tr:
|
|
|
48
43
|
new_registration_type: Yeni kayıt türü
|
|
49
44
|
new_speaker: Yeni Konuşmacı
|
|
50
45
|
send_diplomas: Katılım sertifikaları gönder
|
|
51
|
-
conference_copies:
|
|
52
|
-
new:
|
|
53
|
-
copy: Kopyala
|
|
54
46
|
conference_publications:
|
|
55
47
|
create:
|
|
56
48
|
error: Bu konferansı yayınlarken bir sorun oluştu.
|
|
@@ -99,12 +91,12 @@ tr:
|
|
|
99
91
|
exports:
|
|
100
92
|
registrations: Kayıtlar
|
|
101
93
|
form:
|
|
94
|
+
images: Fotoğraflar
|
|
102
95
|
title: Genel bilgi
|
|
103
96
|
index:
|
|
104
97
|
published: Yayınlandı
|
|
105
98
|
new:
|
|
106
99
|
create: Oluştur
|
|
107
|
-
title: Konferans
|
|
108
100
|
update:
|
|
109
101
|
error: Bu konferans güncellenirken bir hata oluştu.
|
|
110
102
|
success: Konferans başarıyla güncellendi.
|
|
@@ -152,7 +144,6 @@ tr:
|
|
|
152
144
|
admin: Yönetici
|
|
153
145
|
collaborator: İşbirlikçi
|
|
154
146
|
moderator: Moderatör
|
|
155
|
-
valuator: Bilirkişi
|
|
156
147
|
media_link:
|
|
157
148
|
fields:
|
|
158
149
|
date: Tarih
|
data/config/locales/zh-CN.yml
CHANGED
|
@@ -3,14 +3,9 @@ zh-CN:
|
|
|
3
3
|
activemodel:
|
|
4
4
|
attributes:
|
|
5
5
|
conference:
|
|
6
|
-
assemblies_ids: 相关程序集
|
|
7
6
|
banner_image: 横幅图像
|
|
8
|
-
copy_categories: 复制类别
|
|
9
|
-
copy_components: 复制组件
|
|
10
|
-
copy_features: 复制功能
|
|
11
7
|
decidim_scope_id: 范围
|
|
12
8
|
description: 描述
|
|
13
|
-
hashtag: 标签
|
|
14
9
|
hero_image: 首页图像
|
|
15
10
|
participatory_processes_ids: 相关的参与进程
|
|
16
11
|
promoted: 高亮
|
|
@@ -39,9 +34,6 @@ zh-CN:
|
|
|
39
34
|
actions:
|
|
40
35
|
confirm: 确认
|
|
41
36
|
send_diplomas: 发送出勤证书
|
|
42
|
-
conference_copies:
|
|
43
|
-
new:
|
|
44
|
-
copy: 复制
|
|
45
37
|
conference_publications:
|
|
46
38
|
create:
|
|
47
39
|
error: 发布此会议时出现问题。
|
|
@@ -90,12 +82,12 @@ zh-CN:
|
|
|
90
82
|
exports:
|
|
91
83
|
registrations: 注册
|
|
92
84
|
form:
|
|
85
|
+
images: 图像
|
|
93
86
|
title: 一般信息
|
|
94
87
|
index:
|
|
95
88
|
published: 已发布
|
|
96
89
|
new:
|
|
97
90
|
create: 创建
|
|
98
|
-
title: 'Original: ENGLISH'
|
|
99
91
|
update:
|
|
100
92
|
error: 更新此会议时出现问题。
|
|
101
93
|
success: 会议已成功更新。
|
|
@@ -143,7 +135,6 @@ zh-CN:
|
|
|
143
135
|
admin: 管理员
|
|
144
136
|
collaborator: 协作者
|
|
145
137
|
moderator: 版主
|
|
146
|
-
valuator: 值者
|
|
147
138
|
media_link:
|
|
148
139
|
fields:
|
|
149
140
|
date: 日期
|
data/config/locales/zh-TW.yml
CHANGED
|
@@ -3,16 +3,11 @@ zh-TW:
|
|
|
3
3
|
activemodel:
|
|
4
4
|
attributes:
|
|
5
5
|
conference:
|
|
6
|
-
assemblies_ids: 相關大會
|
|
7
6
|
available_slots: 可用時段
|
|
8
7
|
banner_image: 橫幅圖片
|
|
9
|
-
copy_categories: 複製類別
|
|
10
|
-
copy_components: 複製組件
|
|
11
|
-
copy_features: 複製功能
|
|
12
8
|
decidim_scope_id: 範圍
|
|
13
9
|
description: 說明
|
|
14
10
|
end_date: 結束日期
|
|
15
|
-
hashtag: 主題標籤
|
|
16
11
|
hero_image: 首頁圖片
|
|
17
12
|
location: 位置
|
|
18
13
|
main_logo: 主要標誌
|
|
@@ -85,9 +80,6 @@ zh-TW:
|
|
|
85
80
|
actions:
|
|
86
81
|
confirm: 確認
|
|
87
82
|
send_diplomas: 發送出席證明書
|
|
88
|
-
conference_copies:
|
|
89
|
-
new:
|
|
90
|
-
copy: 複製
|
|
91
83
|
conference_publications:
|
|
92
84
|
create:
|
|
93
85
|
error: 發布此研討會時出現問題。
|
|
@@ -138,12 +130,12 @@ zh-TW:
|
|
|
138
130
|
exports:
|
|
139
131
|
registrations: 註冊
|
|
140
132
|
form:
|
|
133
|
+
images: 圖片
|
|
141
134
|
title: 基本資訊
|
|
142
135
|
index:
|
|
143
136
|
published: 已發佈
|
|
144
137
|
new:
|
|
145
138
|
create: 建立
|
|
146
|
-
title: 研討會
|
|
147
139
|
update:
|
|
148
140
|
error: 更新此研討會時發生問題。
|
|
149
141
|
success: 研討會更新成功。
|
|
@@ -191,7 +183,6 @@ zh-TW:
|
|
|
191
183
|
admin: 管理員
|
|
192
184
|
collaborator: 合作者
|
|
193
185
|
moderator: 版主
|
|
194
|
-
valuator: 評價者
|
|
195
186
|
media_link:
|
|
196
187
|
fields:
|
|
197
188
|
date: 日期
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Conferences
|
|
5
|
+
# This type represents a registration type
|
|
6
|
+
class ConferenceRegistrationTypeType < Decidim::Api::Types::BaseObject
|
|
7
|
+
implements Decidim::Core::TimestampsInterface
|
|
8
|
+
|
|
9
|
+
description "A conference registration type"
|
|
10
|
+
|
|
11
|
+
field :description, Decidim::Core::TranslatedFieldType, "The description of this registration type.", null: true
|
|
12
|
+
field :id, GraphQL::Types::ID, "Internal ID of the registration type.", null: false
|
|
13
|
+
field :price, GraphQL::Types::Float, "The budget amount for this project", null: true
|
|
14
|
+
field :published_at, Decidim::Core::DateTimeType, "The time this conference was published", null: true
|
|
15
|
+
field :title, Decidim::Core::TranslatedFieldType, "The title of this registration type.", null: false
|
|
16
|
+
field :weight, GraphQL::Types::Int, "The weight for this object", null: false
|
|
17
|
+
|
|
18
|
+
def self.authorized?(object, context)
|
|
19
|
+
chain = [
|
|
20
|
+
allowed_to?(:list, :registration_types, object, context),
|
|
21
|
+
object.visible?
|
|
22
|
+
].all?
|
|
23
|
+
|
|
24
|
+
super && chain
|
|
25
|
+
rescue Decidim::PermissionAction::PermissionNotSetError
|
|
26
|
+
false
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -14,6 +14,7 @@ module Decidim
|
|
|
14
14
|
field :id, GraphQL::Types::ID, "Internal ID of the speaker", null: false
|
|
15
15
|
field :personal_url, GraphQL::Types::String, "Personal URL of the speaker", null: true
|
|
16
16
|
field :position, Decidim::Core::TranslatedFieldType, "Position of the speaker in the conference", null: true
|
|
17
|
+
field :published_at, Decidim::Core::DateTimeType, "The time this speaker was published", null: true
|
|
17
18
|
field :short_bio, Decidim::Core::TranslatedFieldType, "Short biography of the speaker", null: true
|
|
18
19
|
field :twitter_handle, GraphQL::Types::String, "X handle", null: true
|
|
19
20
|
field :user, Decidim::Core::UserType, "Decidim user corresponding to this speaker", null: true
|
|
@@ -21,6 +22,17 @@ module Decidim
|
|
|
21
22
|
def avatar
|
|
22
23
|
object.attached_uploader(:avatar).url
|
|
23
24
|
end
|
|
25
|
+
|
|
26
|
+
def self.authorized?(object, context)
|
|
27
|
+
chain = [
|
|
28
|
+
allowed_to?(:list, :speakers, object, context),
|
|
29
|
+
object.published?
|
|
30
|
+
].all?
|
|
31
|
+
|
|
32
|
+
super && chain
|
|
33
|
+
rescue Decidim::PermissionAction::PermissionNotSetError
|
|
34
|
+
false
|
|
35
|
+
end
|
|
24
36
|
end
|
|
25
37
|
end
|
|
26
38
|
end
|
|
@@ -7,9 +7,13 @@ module Decidim
|
|
|
7
7
|
implements Decidim::Core::ParticipatorySpaceInterface
|
|
8
8
|
implements Decidim::Core::ScopableInterface
|
|
9
9
|
implements Decidim::Core::AttachableInterface
|
|
10
|
+
implements Decidim::Core::AttachableCollectionInterface
|
|
10
11
|
implements Decidim::Core::TaxonomizableInterface
|
|
11
12
|
implements Decidim::Core::TimestampsInterface
|
|
13
|
+
implements Decidim::Core::ReferableInterface
|
|
14
|
+
implements Decidim::Core::FollowableInterface
|
|
12
15
|
implements Decidim::Core::CategoriesContainerInterface
|
|
16
|
+
implements Decidim::Core::TraceableInterface
|
|
13
17
|
|
|
14
18
|
description "A conference"
|
|
15
19
|
|
|
@@ -17,17 +21,15 @@ module Decidim
|
|
|
17
21
|
field :banner_image, GraphQL::Types::String, "The banner image for this conference", null: true
|
|
18
22
|
field :description, Decidim::Core::TranslatedFieldType, "The description of this conference", null: true
|
|
19
23
|
field :end_date, Decidim::Core::DateType, "The date this conference ends", null: true
|
|
20
|
-
field :hashtag, GraphQL::Types::String, "The hashtag for this conference", null: true
|
|
21
24
|
field :hero_image, GraphQL::Types::String, "The hero image for this conference", null: true
|
|
22
|
-
field :id, GraphQL::Types::ID, "Internal ID for this conference", null: false
|
|
23
25
|
field :location, String, "The location of this conference", null: true
|
|
24
26
|
field :media_links, [Decidim::Conferences::ConferenceMediaLinkType, { null: true }], "List of media links in this conference", null: true
|
|
25
27
|
field :objectives, Decidim::Core::TranslatedFieldType, "The objectives of the conference", null: true
|
|
26
28
|
field :partners, [Decidim::Conferences::ConferencePartnerType, { null: true }], "List of partners in this conference", null: true
|
|
27
29
|
field :promoted, GraphQL::Types::Boolean, "If this conference is promoted (therefore in the homepage)", null: true
|
|
28
30
|
field :published_at, Decidim::Core::DateTimeType, "The time this conference was published", null: true
|
|
29
|
-
field :reference, GraphQL::Types::String, "Reference prefix for this conference", null: true
|
|
30
31
|
field :registration_terms, Decidim::Core::TranslatedFieldType, "The registration terms of this conference", null: true
|
|
32
|
+
field :registration_types, [Decidim::Conferences::ConferenceRegistrationTypeType, { null: true }], "List of all registration type of this conference", null: true
|
|
31
33
|
field :registrations_enabled, GraphQL::Types::Boolean, "If the registrations are enabled in this conference", null: true
|
|
32
34
|
field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this conference", null: true
|
|
33
35
|
field :show_statistics, GraphQL::Types::Boolean, "If this conference shows the statistics", null: true
|
|
@@ -35,6 +37,12 @@ module Decidim
|
|
|
35
37
|
field :slug, GraphQL::Types::String, "The slug of this conference", null: true
|
|
36
38
|
field :speakers, [Decidim::Conferences::ConferenceSpeakerType, { null: true }], "List of speakers in this conference", null: true
|
|
37
39
|
field :start_date, Decidim::Core::DateType, "The date this conference starts", null: true
|
|
40
|
+
field :url, GraphQL::Types::String, "The URL of this conference", null: true
|
|
41
|
+
field :weight, GraphQL::Types::Int, "The weight for this object", null: false
|
|
42
|
+
|
|
43
|
+
def url
|
|
44
|
+
EngineRouter.main_proxy(object).conference_url(object)
|
|
45
|
+
end
|
|
38
46
|
|
|
39
47
|
def hero_image
|
|
40
48
|
object.attached_uploader(:hero_image).url
|
|
@@ -47,6 +55,10 @@ module Decidim
|
|
|
47
55
|
def speakers
|
|
48
56
|
object.speakers.published
|
|
49
57
|
end
|
|
58
|
+
|
|
59
|
+
def registration_types
|
|
60
|
+
object.registration_types.published
|
|
61
|
+
end
|
|
50
62
|
end
|
|
51
63
|
end
|
|
52
64
|
end
|
|
@@ -18,7 +18,7 @@ module Decidim
|
|
|
18
18
|
constraints(->(request) { Decidim::Admin::OrganizationDashboardConstraint.new(request).matches? }) do
|
|
19
19
|
resources :conferences, param: :slug, except: [:show, :destroy] do
|
|
20
20
|
resource :publish, controller: "conference_publications", only: [:create, :destroy]
|
|
21
|
-
resources :
|
|
21
|
+
resources :duplicates, controller: "conference_duplicates", only: [:new, :create]
|
|
22
22
|
resources :speakers, controller: "conference_speakers" do
|
|
23
23
|
member do
|
|
24
24
|
put :publish
|
|
@@ -6,5 +6,6 @@ module Decidim
|
|
|
6
6
|
autoload :ConferenceMediaLinkType, "decidim/api/conference_media_link_type"
|
|
7
7
|
autoload :ConferencePartnerType, "decidim/api/conference_partner_type"
|
|
8
8
|
autoload :ConferenceSpeakerType, "decidim/api/conference_speaker_type"
|
|
9
|
+
autoload :ConferenceRegistrationTypeType, "decidim/api/conference_registration_type_type"
|
|
9
10
|
end
|
|
10
11
|
end
|
|
@@ -62,7 +62,6 @@ module Decidim
|
|
|
62
62
|
|
|
63
63
|
Decidim.icons.register(name: "film-line", icon: "film-line", category: "system", description: "", engine: :conferences)
|
|
64
64
|
Decidim.icons.register(name: "ticket-line", icon: "ticket-line", category: "system", description: "", engine: :conferences)
|
|
65
|
-
Decidim.icons.register(name: "user-follow-line", icon: "user-follow-line", category: "system", description: "", engine: :conferences)
|
|
66
65
|
Decidim.icons.register(name: "link-m", icon: "link-m", category: "system", description: "", engine: :conferences)
|
|
67
66
|
end
|
|
68
67
|
|
|
@@ -72,7 +71,10 @@ module Decidim
|
|
|
72
71
|
end
|
|
73
72
|
|
|
74
73
|
initializer "decidim_conferences.stats" do
|
|
75
|
-
Decidim.stats.register :conferences_count,
|
|
74
|
+
Decidim.stats.register :conferences_count,
|
|
75
|
+
priority: StatsRegistry::HIGH_PRIORITY,
|
|
76
|
+
icon_name: "user-voice-line",
|
|
77
|
+
tooltip_key: "conferences_count_tooltip" do |organization, _start_at, _end_at|
|
|
76
78
|
Decidim::Conference.where(organization:).public_spaces.count
|
|
77
79
|
end
|
|
78
80
|
end
|
|
@@ -91,7 +93,7 @@ module Decidim
|
|
|
91
93
|
Decidim::Api::QueryType.include Decidim::Conferences::QueryExtensions
|
|
92
94
|
end
|
|
93
95
|
|
|
94
|
-
initializer "decidim_conferences.
|
|
96
|
+
initializer "decidim_conferences.shakapacker.assets_path" do
|
|
95
97
|
Decidim.register_assets_path File.expand_path("app/packs", root)
|
|
96
98
|
end
|
|
97
99
|
end
|
|
@@ -25,6 +25,20 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
|
25
25
|
resource.searchable = true
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
participatory_space.register_stat :followers_count,
|
|
29
|
+
priority: Decidim::StatsRegistry::MEDIUM_PRIORITY,
|
|
30
|
+
icon_name: "user-follow-line",
|
|
31
|
+
tooltip_key: "followers_count_tooltip" do
|
|
32
|
+
Decidim::Conferences::ConferencesStatsFollowersCount.for(participatory_space)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
participatory_space.register_stat :participants_count,
|
|
36
|
+
priority: Decidim::StatsRegistry::MEDIUM_PRIORITY,
|
|
37
|
+
icon_name: "user-line",
|
|
38
|
+
tooltip_key: "participants_count_tooltip" do
|
|
39
|
+
Decidim::Conferences::ConferencesStatsParticipantsCount.for(participatory_space)
|
|
40
|
+
end
|
|
41
|
+
|
|
28
42
|
participatory_space.context(:public) do |context|
|
|
29
43
|
context.engine = Decidim::Conferences::Engine
|
|
30
44
|
context.layout = "layouts/decidim/conference"
|
|
@@ -37,8 +51,10 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
|
37
51
|
end
|
|
38
52
|
|
|
39
53
|
participatory_space.exports :conferences do |export|
|
|
40
|
-
export.collection do
|
|
41
|
-
Decidim::Conference
|
|
54
|
+
export.collection do
|
|
55
|
+
Decidim::Conference
|
|
56
|
+
.public_spaces
|
|
57
|
+
.includes(:taxonomies, :attachment_collections)
|
|
42
58
|
end
|
|
43
59
|
|
|
44
60
|
export.include_in_open_data = true
|
|
@@ -8,28 +8,28 @@ module Decidim
|
|
|
8
8
|
def call
|
|
9
9
|
create_content_block!
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
number_of_records.times do |_n|
|
|
12
12
|
conference = create_conference!
|
|
13
13
|
|
|
14
14
|
create_conference_user_roles!(conference:)
|
|
15
15
|
|
|
16
16
|
create_attachments!(attached_to: conference)
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
number_of_records.times do
|
|
19
19
|
create_conference_speaker!(conference:)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
Decidim::Conferences::Partner::TYPES.map do |type|
|
|
23
|
-
|
|
23
|
+
number_of_records.times do
|
|
24
24
|
create_conference_partner!(conference:, type:)
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
number_of_records.times do
|
|
29
29
|
create_conference_media_link!(conference:)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
number_of_records.times do
|
|
33
33
|
create_conference_registration_type!(conference:)
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -56,7 +56,6 @@ module Decidim
|
|
|
56
56
|
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
|
57
57
|
slogan: Decidim::Faker::Localized.sentence(word_count: 2),
|
|
58
58
|
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
|
59
|
-
hashtag: "##{::Faker::Lorem.word}",
|
|
60
59
|
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
|
61
60
|
Decidim::Faker::Localized.sentence(word_count: 3)
|
|
62
61
|
end,
|
|
@@ -115,7 +115,7 @@ FactoryBot.define do
|
|
|
115
115
|
end
|
|
116
116
|
end
|
|
117
117
|
|
|
118
|
-
factory :
|
|
118
|
+
factory :conference_evaluator, parent: :user, class: "Decidim::User" do
|
|
119
119
|
transient do
|
|
120
120
|
skip_injection { false }
|
|
121
121
|
conference { create(:conference, skip_injection:) }
|
|
@@ -128,7 +128,7 @@ FactoryBot.define do
|
|
|
128
128
|
create(:conference_user_role,
|
|
129
129
|
user:,
|
|
130
130
|
conference: evaluator.conference,
|
|
131
|
-
role: :
|
|
131
|
+
role: :evaluator,
|
|
132
132
|
skip_injection: evaluator.skip_injection)
|
|
133
133
|
end
|
|
134
134
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decidim-conferences
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.31.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Isaac Massot Gil
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-09-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: decidim-core
|
|
@@ -16,56 +16,56 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.31.0.rc1
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 0.31.0.rc1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: decidim-meetings
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.31.0.rc1
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.
|
|
40
|
+
version: 0.31.0.rc1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: decidim-admin
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - '='
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.
|
|
47
|
+
version: 0.31.0.rc1
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - '='
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.
|
|
54
|
+
version: 0.31.0.rc1
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: decidim-dev
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - '='
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.
|
|
61
|
+
version: 0.31.0.rc1
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - '='
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.
|
|
68
|
+
version: 0.31.0.rc1
|
|
69
69
|
description: Conferences component for decidim.
|
|
70
70
|
email:
|
|
71
71
|
- isaac.mg@coditramuntana.com
|
|
@@ -99,7 +99,6 @@ files:
|
|
|
99
99
|
- app/cells/decidim/conferences/registration_type/show.erb
|
|
100
100
|
- app/cells/decidim/conferences/registration_type_cell.rb
|
|
101
101
|
- app/commands/decidim/conferences/admin/confirm_conference_registration.rb
|
|
102
|
-
- app/commands/decidim/conferences/admin/copy_conference.rb
|
|
103
102
|
- app/commands/decidim/conferences/admin/create_conference.rb
|
|
104
103
|
- app/commands/decidim/conferences/admin/create_conference_speaker.rb
|
|
105
104
|
- app/commands/decidim/conferences/admin/create_media_link.rb
|
|
@@ -109,6 +108,7 @@ files:
|
|
|
109
108
|
- app/commands/decidim/conferences/admin/destroy_media_link.rb
|
|
110
109
|
- app/commands/decidim/conferences/admin/destroy_partner.rb
|
|
111
110
|
- app/commands/decidim/conferences/admin/destroy_registration_type.rb
|
|
111
|
+
- app/commands/decidim/conferences/admin/duplicate_conference.rb
|
|
112
112
|
- app/commands/decidim/conferences/admin/export_conference_registrations.rb
|
|
113
113
|
- app/commands/decidim/conferences/admin/invite_user_to_join_conference.rb
|
|
114
114
|
- app/commands/decidim/conferences/admin/publish_conference.rb
|
|
@@ -138,7 +138,7 @@ files:
|
|
|
138
138
|
- app/controllers/decidim/conferences/admin/concerns/conference_admin.rb
|
|
139
139
|
- app/controllers/decidim/conferences/admin/conference_attachment_collections_controller.rb
|
|
140
140
|
- app/controllers/decidim/conferences/admin/conference_attachments_controller.rb
|
|
141
|
-
- app/controllers/decidim/conferences/admin/
|
|
141
|
+
- app/controllers/decidim/conferences/admin/conference_duplicates_controller.rb
|
|
142
142
|
- app/controllers/decidim/conferences/admin/conference_invites_controller.rb
|
|
143
143
|
- app/controllers/decidim/conferences/admin/conference_publications_controller.rb
|
|
144
144
|
- app/controllers/decidim/conferences/admin/conference_registrations_controller.rb
|
|
@@ -169,7 +169,7 @@ files:
|
|
|
169
169
|
- app/events/decidim/conferences/conference_role_assigned_event.rb
|
|
170
170
|
- app/events/decidim/conferences/upcoming_conference_event.rb
|
|
171
171
|
- app/events/decidim/conferences/update_conference_event.rb
|
|
172
|
-
- app/forms/decidim/conferences/admin/
|
|
172
|
+
- app/forms/decidim/conferences/admin/conference_duplicate_form.rb
|
|
173
173
|
- app/forms/decidim/conferences/admin/conference_form.rb
|
|
174
174
|
- app/forms/decidim/conferences/admin/conference_registration_invite_form.rb
|
|
175
175
|
- app/forms/decidim/conferences/admin/conference_speaker_form.rb
|
|
@@ -230,6 +230,8 @@ files:
|
|
|
230
230
|
- app/queries/decidim/conferences/admin/conference_speakers.rb
|
|
231
231
|
- app/queries/decidim/conferences/conference_program_meetings.rb
|
|
232
232
|
- app/queries/decidim/conferences/conference_program_meetings_by_day.rb
|
|
233
|
+
- app/queries/decidim/conferences/conferences_stats_followers_count.rb
|
|
234
|
+
- app/queries/decidim/conferences/conferences_stats_participants_count.rb
|
|
233
235
|
- app/queries/decidim/conferences/conferences_with_user_role.rb
|
|
234
236
|
- app/queries/decidim/conferences/organization_conferences.rb
|
|
235
237
|
- app/queries/decidim/conferences/organization_prioritized_conferences.rb
|
|
@@ -247,8 +249,8 @@ files:
|
|
|
247
249
|
- app/uploaders/decidim/conferences/partner_logo_uploader.rb
|
|
248
250
|
- app/views/decidim/conference_speakers/_conference_speaker.html.erb
|
|
249
251
|
- app/views/decidim/conferences/_conference.html.erb
|
|
250
|
-
- app/views/decidim/conferences/admin/
|
|
251
|
-
- app/views/decidim/conferences/admin/
|
|
252
|
+
- app/views/decidim/conferences/admin/conference_duplicates/_form.html.erb
|
|
253
|
+
- app/views/decidim/conferences/admin/conference_duplicates/new.html.erb
|
|
252
254
|
- app/views/decidim/conferences/admin/conference_invites/_form.html.erb
|
|
253
255
|
- app/views/decidim/conferences/admin/conference_invites/index.html.erb
|
|
254
256
|
- app/views/decidim/conferences/admin/conference_invites/new.html.erb
|
|
@@ -410,9 +412,11 @@ files:
|
|
|
410
412
|
- db/migrate/20221116084952_add_weight_to_conferences.rb
|
|
411
413
|
- db/migrate/20240613095855_add_published_at_to_conference_speakers.rb
|
|
412
414
|
- db/migrate/20240822161330_add_deleted_at_to_decidim_conferences.rb
|
|
415
|
+
- db/migrate/20250605094623_remove_hashtag_column_conferences.rb
|
|
413
416
|
- decidim-conferences.gemspec
|
|
414
417
|
- lib/decidim/api/conference_media_link_type.rb
|
|
415
418
|
- lib/decidim/api/conference_partner_type.rb
|
|
419
|
+
- lib/decidim/api/conference_registration_type_type.rb
|
|
416
420
|
- lib/decidim/api/conference_speaker_type.rb
|
|
417
421
|
- lib/decidim/api/conference_type.rb
|
|
418
422
|
- lib/decidim/conferences.rb
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Decidim
|
|
4
|
-
module Conferences
|
|
5
|
-
module Admin
|
|
6
|
-
# Controller that allows managing conferences.
|
|
7
|
-
#
|
|
8
|
-
class ConferenceCopiesController < Decidim::Conferences::Admin::ApplicationController
|
|
9
|
-
include Concerns::ConferenceAdmin
|
|
10
|
-
|
|
11
|
-
def new
|
|
12
|
-
enforce_permission_to :create, :conference
|
|
13
|
-
@form = form(ConferenceCopyForm).from_model(current_conference)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def create
|
|
17
|
-
enforce_permission_to :create, :conference
|
|
18
|
-
@form = form(ConferenceCopyForm).from_params(params)
|
|
19
|
-
|
|
20
|
-
CopyConference.call(@form, current_conference) do
|
|
21
|
-
on(:ok) do
|
|
22
|
-
flash[:notice] = I18n.t("conferences_copies.create.success", scope: "decidim.admin")
|
|
23
|
-
redirect_to conferences_path
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
on(:invalid) do
|
|
27
|
-
flash.now[:alert] = I18n.t("conferences_copies.create.error", scope: "decidim.admin")
|
|
28
|
-
render :new
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<% add_decidim_page_title(t("conference_copies.new.title", scope: "decidim.admin")) %>
|
|
2
|
-
|
|
3
|
-
<div class="item_show__header">
|
|
4
|
-
<h1 class="item_show__header-title">
|
|
5
|
-
<%= t("conference_copies.new.title", scope: "decidim.admin") %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
<div class="item__edit item__edit-1col">
|
|
9
|
-
<div class="item__edit-form">
|
|
10
|
-
<%= decidim_form_for(@form, url: conference_copies_path(current_conference), method: :post, html: { class: "form form-defaults copy_conference" }) do |f| %>
|
|
11
|
-
<%= render partial: "form", object: f %>
|
|
12
|
-
<div class="item__edit-sticky">
|
|
13
|
-
<div class="item__edit-sticky-container">
|
|
14
|
-
<%= f.submit t("conference_copies.new.copy", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
<% end %>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|