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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +3 -1
  3. data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
  4. data/app/commands/decidim/conferences/admin/{copy_conference.rb → duplicate_conference.rb} +15 -16
  5. data/app/commands/decidim/conferences/admin/update_conference.rb +2 -2
  6. data/app/controllers/decidim/conferences/admin/conference_duplicates_controller.rb +35 -0
  7. data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +1 -1
  8. data/app/controllers/decidim/conferences/admin/conference_speakers_controller.rb +4 -4
  9. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +3 -3
  10. data/app/controllers/decidim/conferences/admin/diplomas_controller.rb +1 -1
  11. data/app/controllers/decidim/conferences/admin/media_links_controller.rb +2 -2
  12. data/app/controllers/decidim/conferences/admin/partners_controller.rb +2 -2
  13. data/app/controllers/decidim/conferences/admin/registration_types_controller.rb +2 -2
  14. data/app/forms/decidim/conferences/admin/{conference_copy_form.rb → conference_duplicate_form.rb} +3 -3
  15. data/app/forms/decidim/conferences/admin/conference_form.rb +0 -4
  16. data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
  17. data/app/jobs/decidim/conferences/upcoming_conference_notification_job.rb +1 -1
  18. data/app/models/decidim/conference.rb +0 -4
  19. data/app/models/decidim/conferences/registration_type.rb +4 -0
  20. data/app/packs/entrypoints/decidim_conferences_admin.js +0 -1
  21. data/app/packs/src/decidim/conferences/admin/conference_invite_form.js +1 -1
  22. data/app/packs/src/decidim/conferences/admin/conference_speakers.js +1 -1
  23. data/app/packs/src/decidim/conferences/admin/conferences.js +1 -1
  24. data/app/packs/stylesheets/decidim/conferences/_program.scss +1 -1
  25. data/app/packs/stylesheets/decidim/conferences/conferences.scss +5 -5
  26. data/app/permissions/decidim/conferences/permissions.rb +4 -4
  27. data/app/presenters/decidim/conference_speaker_presenter.rb +0 -4
  28. data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +0 -1
  29. data/app/presenters/decidim/conferences/conference_stats_presenter.rb +1 -3
  30. data/app/queries/decidim/conferences/admin/conference_speakers.rb +2 -2
  31. data/app/queries/decidim/conferences/conferences_stats_followers_count.rb +14 -0
  32. data/app/queries/decidim/conferences/conferences_stats_participants_count.rb +14 -0
  33. data/app/views/decidim/conferences/admin/{conference_copies → conference_duplicates}/_form.html.erb +3 -3
  34. data/app/views/decidim/conferences/admin/conference_duplicates/new.html.erb +19 -0
  35. data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +34 -20
  36. data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +51 -22
  37. data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +44 -17
  38. data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +108 -33
  39. data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +4 -4
  40. data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +2 -2
  41. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +115 -40
  42. data/app/views/decidim/conferences/admin/conferences/edit.html.erb +0 -8
  43. data/app/views/decidim/conferences/admin/conferences/index.html.erb +2 -2
  44. data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +2 -1
  45. data/app/views/decidim/conferences/admin/media_links/index.html.erb +32 -13
  46. data/app/views/decidim/conferences/admin/partners/index.html.erb +33 -14
  47. data/app/views/decidim/conferences/admin/registration_types/index.html.erb +56 -21
  48. data/app/views/decidim/conferences/conference_program/_program_item.html.erb +9 -9
  49. data/app/views/decidim/conferences/conference_program/show.html.erb +1 -1
  50. data/app/views/decidim/conferences/conferences/_conference_hero.html.erb +0 -5
  51. data/app/views/decidim/conferences/conferences/show.html.erb +1 -1
  52. data/app/views/layouts/decidim/diploma.html.erb +2 -2
  53. data/config/assets.rb +2 -2
  54. data/config/locales/ar.yml +1 -10
  55. data/config/locales/bg.yml +1 -13
  56. data/config/locales/bs-BA.yml +0 -5
  57. data/config/locales/ca-IT.yml +24 -14
  58. data/config/locales/ca.yml +24 -14
  59. data/config/locales/cs.yml +23 -13
  60. data/config/locales/de.yml +25 -13
  61. data/config/locales/el.yml +1 -10
  62. data/config/locales/en.yml +24 -14
  63. data/config/locales/es-MX.yml +24 -14
  64. data/config/locales/es-PY.yml +24 -14
  65. data/config/locales/es.yml +24 -14
  66. data/config/locales/eu.yml +24 -14
  67. data/config/locales/fi-plain.yml +23 -11
  68. data/config/locales/fi.yml +23 -11
  69. data/config/locales/fr-CA.yml +24 -17
  70. data/config/locales/fr.yml +24 -17
  71. data/config/locales/ga-IE.yml +2 -6
  72. data/config/locales/gl.yml +1 -10
  73. data/config/locales/hu.yml +1 -10
  74. data/config/locales/id-ID.yml +1 -9
  75. data/config/locales/it.yml +1 -10
  76. data/config/locales/ja.yml +25 -15
  77. data/config/locales/lb.yml +1 -7
  78. data/config/locales/lt.yml +1 -10
  79. data/config/locales/lv.yml +1 -10
  80. data/config/locales/nl.yml +1 -10
  81. data/config/locales/no.yml +1 -10
  82. data/config/locales/pl.yml +1 -13
  83. data/config/locales/pt-BR.yml +1 -13
  84. data/config/locales/pt.yml +1 -10
  85. data/config/locales/ro-RO.yml +3 -10
  86. data/config/locales/sk.yml +1 -10
  87. data/config/locales/sl.yml +0 -5
  88. data/config/locales/sr-CS.yml +0 -5
  89. data/config/locales/sv.yml +16 -15
  90. data/config/locales/tr-TR.yml +1 -10
  91. data/config/locales/zh-CN.yml +1 -10
  92. data/config/locales/zh-TW.yml +1 -10
  93. data/db/migrate/20250605094623_remove_hashtag_column_conferences.rb +7 -0
  94. data/lib/decidim/api/conference_registration_type_type.rb +30 -0
  95. data/lib/decidim/api/conference_speaker_type.rb +12 -0
  96. data/lib/decidim/api/conference_type.rb +15 -3
  97. data/lib/decidim/conferences/admin_engine.rb +1 -1
  98. data/lib/decidim/conferences/api.rb +1 -0
  99. data/lib/decidim/conferences/conference_diploma_pdf.rb +1 -1
  100. data/lib/decidim/conferences/engine.rb +5 -3
  101. data/lib/decidim/conferences/participatory_space.rb +18 -2
  102. data/lib/decidim/conferences/seeds.rb +5 -6
  103. data/lib/decidim/conferences/test/factories.rb +2 -2
  104. data/lib/decidim/conferences/version.rb +1 -1
  105. metadata +19 -15
  106. data/app/controllers/decidim/conferences/admin/conference_copies_controller.rb +0 -35
  107. data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +0 -19
@@ -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
@@ -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: 日期
@@ -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,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveHashtagColumnConferences < ActiveRecord::Migration[7.1]
4
+ def change
5
+ remove_column :decidim_conferences, :hashtag, :string, if_exists: true
6
+ end
7
+ end
@@ -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 :copies, controller: "conference_copies", only: [:new, :create]
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
@@ -7,7 +7,7 @@ module Decidim
7
7
  module Conferences
8
8
  class ConferenceDiplomaPDF
9
9
  include ActionView::Helpers::AssetUrlHelper
10
- include Shakapacker::Helper
10
+ include ::Shakapacker::Helper
11
11
  include Decidim::TranslatableAttributes
12
12
  include Decidim::SanitizeHelper
13
13
 
@@ -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, priority: StatsRegistry::HIGH_PRIORITY do |organization, _start_at, _end_at|
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.webpacker.assets_path" do
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 |space, _user|
41
- Decidim::Conference.public_spaces.includes(:taxonomies, :attachment_collections).where(id: space)
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
- 2.times do |_n|
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
- 5.times do
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
- 4.times do
23
+ number_of_records.times do
24
24
  create_conference_partner!(conference:, type:)
25
25
  end
26
26
  end
27
27
 
28
- 5.times do
28
+ number_of_records.times do
29
29
  create_conference_media_link!(conference:)
30
30
  end
31
31
 
32
- 5.times do
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 :conference_valuator, parent: :user, class: "Decidim::User" do
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: :valuator,
131
+ role: :evaluator,
132
132
  skip_injection: evaluator.skip_injection)
133
133
  end
134
134
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-conferences version.
5
5
  module Conferences
6
6
  def self.version
7
- "0.30.4"
7
+ "0.31.0.rc1"
8
8
  end
9
9
  end
10
10
  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.30.4
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-20 00:00:00.000000000 Z
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.30.4
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.30.4
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.30.4
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.30.4
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.30.4
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.30.4
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.30.4
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.30.4
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/conference_copies_controller.rb
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/conference_copy_form.rb
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/conference_copies/_form.html.erb
251
- - app/views/decidim/conferences/admin/conference_copies/new.html.erb
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>