decidim-conferences 0.29.2 → 0.30.0.rc2

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +1 -1
  3. data/app/commands/decidim/conferences/admin/copy_conference.rb +2 -12
  4. data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
  5. data/app/commands/decidim/conferences/admin/update_conference.rb +1 -1
  6. data/app/controllers/decidim/conferences/admin/component_share_tokens_controller.rb +18 -0
  7. data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +1 -1
  8. data/app/controllers/decidim/conferences/admin/conference_share_tokens_controller.rb +18 -0
  9. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +17 -4
  10. data/app/forms/decidim/conferences/admin/conference_copy_form.rb +0 -1
  11. data/app/forms/decidim/conferences/admin/conference_form.rb +3 -8
  12. data/app/helpers/decidim/conferences/conference_program_helper.rb +4 -2
  13. data/app/mailers/decidim/conferences/admin/send_conference_diploma_mailer.rb +1 -11
  14. data/app/models/decidim/conference.rb +19 -0
  15. data/app/models/decidim/conferences/conference_invite.rb +10 -0
  16. data/app/permissions/decidim/conferences/permissions.rb +11 -4
  17. data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +1 -1
  18. data/app/presenters/decidim/conferences/conference_presenter.rb +19 -0
  19. data/app/serializers/decidim/conferences/conference_serializer.rb +24 -0
  20. data/app/serializers/decidim/conferences/download_your_data_conference_invite_serializer.rb +3 -4
  21. data/app/serializers/decidim/conferences/download_your_data_conference_registration_serializer.rb +4 -4
  22. data/app/serializers/decidim/conferences/open_data_conference_serializer.rb +30 -0
  23. data/app/views/decidim/conferences/admin/conference_copies/_form.html.erb +0 -3
  24. data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +35 -0
  25. data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +28 -0
  26. data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +8 -0
  27. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +27 -8
  28. data/app/views/decidim/conferences/admin/conferences/index.html.erb +14 -52
  29. data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +20 -0
  30. data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb +3 -1
  31. data/app/views/decidim/conferences/conference_program/show.html.erb +3 -1
  32. data/app/views/decidim/conferences/conference_speakers/index.html.erb +4 -1
  33. data/app/views/decidim/conferences/conferences/index.html.erb +3 -2
  34. data/app/views/decidim/conferences/conferences/show.html.erb +6 -6
  35. data/app/views/decidim/conferences/media/index.html.erb +3 -1
  36. data/app/views/decidim/conferences/registration_types/index.html.erb +3 -1
  37. data/app/views/layouts/decidim/admin/conference.html.erb +1 -1
  38. data/config/locales/ar.yml +12 -3
  39. data/config/locales/bg.yml +0 -3
  40. data/config/locales/ca.yml +63 -3
  41. data/config/locales/cs.yml +63 -3
  42. data/config/locales/de.yml +63 -3
  43. data/config/locales/el.yml +0 -3
  44. data/config/locales/en.yml +63 -3
  45. data/config/locales/es-MX.yml +63 -3
  46. data/config/locales/es-PY.yml +63 -3
  47. data/config/locales/es.yml +63 -3
  48. data/config/locales/eu.yml +63 -3
  49. data/config/locales/fi-plain.yml +63 -3
  50. data/config/locales/fi.yml +63 -3
  51. data/config/locales/fr-CA.yml +22 -3
  52. data/config/locales/fr.yml +22 -3
  53. data/config/locales/ga-IE.yml +0 -2
  54. data/config/locales/gl.yml +0 -3
  55. data/config/locales/hu.yml +0 -3
  56. data/config/locales/id-ID.yml +0 -3
  57. data/config/locales/it.yml +0 -3
  58. data/config/locales/ja.yml +65 -3
  59. data/config/locales/lb.yml +0 -3
  60. data/config/locales/lt.yml +0 -3
  61. data/config/locales/lv.yml +0 -3
  62. data/config/locales/nl.yml +0 -3
  63. data/config/locales/no.yml +0 -3
  64. data/config/locales/pl.yml +0 -3
  65. data/config/locales/pt-BR.yml +0 -3
  66. data/config/locales/pt.yml +0 -3
  67. data/config/locales/ro-RO.yml +0 -3
  68. data/config/locales/sk.yml +0 -3
  69. data/config/locales/sv.yml +116 -3
  70. data/config/locales/tr-TR.yml +0 -3
  71. data/config/locales/zh-CN.yml +0 -3
  72. data/config/locales/zh-TW.yml +0 -3
  73. data/db/migrate/20210310134942_add_followable_counter_cache_to_conferences.rb +1 -1
  74. data/db/migrate/20240822161330_add_deleted_at_to_decidim_conferences.rb +8 -0
  75. data/decidim-conferences.gemspec +1 -2
  76. data/lib/decidim/api/conference_media_link_type.rb +4 -4
  77. data/lib/decidim/api/conference_partner_type.rb +4 -4
  78. data/lib/decidim/api/conference_speaker_type.rb +7 -8
  79. data/lib/decidim/api/conference_type.rb +17 -19
  80. data/lib/decidim/conferences/admin_engine.rb +87 -58
  81. data/lib/decidim/conferences/conference_diploma_pdf.rb +242 -0
  82. data/lib/decidim/conferences/engine.rb +6 -1
  83. data/lib/decidim/conferences/menu.rb +23 -9
  84. data/lib/decidim/conferences/participatory_space.rb +13 -0
  85. data/lib/decidim/conferences/seeds.rb +134 -115
  86. data/lib/decidim/conferences/test/factories.rb +10 -9
  87. data/lib/decidim/conferences/version.rb +1 -1
  88. data/lib/decidim/conferences.rb +1 -0
  89. metadata +23 -28
  90. data/app/controllers/decidim/conferences/admin/categories_controller.rb +0 -13
  91. data/config/initializers/wicked_pdf.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd17ff8810ca187af1de5c15ffa1200a77962924f180c3a335c6fe58ecd98baa
4
- data.tar.gz: 74042cd8d968615ea0725c4e1ad05ff8c092b056dec706bf768f6178b6963a1c
3
+ metadata.gz: 938f028210e8d29944a5e773395f9b2da6a5ea5f828686e7f3b808384e0df28e
4
+ data.tar.gz: f0d4098deebabf371dde62671ac8963b66d5aa094e9f9f7b3fc65cb2469b8615
5
5
  SHA512:
6
- metadata.gz: c2b2935fdfc2300c4f580588e9c8282ddcc583520ab1b7a78f52e3bc571d8d4509ddbb32006f26af398c9aa7f353471b1505027aaa547f2aaf24c8edabf190be
7
- data.tar.gz: e3302d5a273f7183a1bac7bbaa4d7381d6747a711da1294ac3630a76dc3a70d0a383f98caa3edde1f41047ecac34c3a8245155c4a87c0dc638cf4834feb0648d
6
+ metadata.gz: 5784b0dd2cf605410280f36a608ae81289c09e466a6249dd9c98007bb0a9685341dbd41a72da87c93f95a12f8c3318ac9210dbd996166f2665346625972f16fe
7
+ data.tar.gz: 9e158de0512c5b8e4ca78efddd6361bcea736c07a4c01ff8e6aee587d8874ddfe40894e1a1d1d90f76685ab633f5b74c406d7d0ba1e3ef83a28fa328c853ac4e
@@ -1,3 +1,3 @@
1
1
  <% form.fields_for :settings, form.object.settings do |settings_fields| %>
2
- <%= settings_fields.select :max_results, [6, 9, 12], prompt: "", label: %>
2
+ <%= settings_fields.number_field :max_results, label: %>
3
3
  <% end %>
@@ -27,7 +27,6 @@ module Decidim
27
27
  Conference.transaction do
28
28
  copy_conference
29
29
  copy_conference_attachments
30
- copy_conference_categories if @form.copy_categories?
31
30
  copy_conference_components if @form.copy_components?
32
31
  end
33
32
 
@@ -49,11 +48,10 @@ module Decidim
49
48
  short_description: @conference.short_description,
50
49
  location: @conference.location,
51
50
  promoted: @conference.promoted,
52
- scopes_enabled: @conference.scopes_enabled,
53
- scope: @conference.scope,
54
51
  objectives: @conference.objectives,
55
52
  start_date: @conference.start_date,
56
- end_date: @conference.end_date
53
+ end_date: @conference.end_date,
54
+ taxonomies: @conference.taxonomies
57
55
  )
58
56
  end
59
57
 
@@ -65,14 +63,6 @@ module Decidim
65
63
  end
66
64
  end
67
65
 
68
- def copy_conference_categories
69
- @conference.categories.each do |category|
70
- category_copied = category.dup
71
- category_copied.participatory_space = @copied_conference
72
- category_copied.save
73
- end
74
- end
75
-
76
66
  def copy_conference_components
77
67
  @conference.components.each do |component|
78
68
  component_copied = component.dup
@@ -9,7 +9,7 @@ module Decidim
9
9
  fetch_file_attributes :hero_image, :banner_image
10
10
 
11
11
  fetch_form_attributes :organization, :title, :slogan, :slug, :weight, :hashtag, :description,
12
- :short_description, :objectives, :location, :scopes_enabled, :scope, :start_date, :end_date,
12
+ :short_description, :objectives, :location, :taxonomizations, :start_date, :end_date,
13
13
  :promoted, :show_statistics, :registrations_enabled, :available_slots, :registration_terms
14
14
 
15
15
  private
@@ -10,7 +10,7 @@ module Decidim
10
10
 
11
11
  fetch_form_attributes :title, :slogan, :slug, :weight, :hashtag, :description, :short_description,
12
12
  :objectives, :location, :start_date, :end_date, :promoted, :show_statistics,
13
- :scopes_enabled, :scope, :registrations_enabled
13
+ :taxonomizations, :registrations_enabled
14
14
 
15
15
  private
16
16
 
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ module Admin
6
+ # This controller allows sharing unpublished things.
7
+ # It is targeted for customizations for sharing unpublished things that lives under
8
+ # an conference.
9
+ class ComponentShareTokensController < Decidim::Admin::ShareTokensController
10
+ include Concerns::ConferenceAdmin
11
+
12
+ def resource
13
+ @resource ||= current_participatory_space.components.find(params[:component_id])
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -20,7 +20,7 @@ module Decidim
20
20
  included do
21
21
  include Decidim::Admin::ParticipatorySpaceAdminContext
22
22
  helper_method :current_conference
23
- add_breadcrumb_item_from_menu :conferences_admin_menu
23
+ add_breadcrumb_item_from_menu :conference_admin_menu
24
24
 
25
25
  participatory_space_admin_layout
26
26
 
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ module Admin
6
+ # This controller allows sharing unpublished things.
7
+ # It is targeted for customizations for sharing unpublished things that lives under
8
+ # an conference.
9
+ class ConferenceShareTokensController < Decidim::Admin::ShareTokensController
10
+ include Concerns::ConferenceAdmin
11
+
12
+ def resource
13
+ current_conference
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -6,11 +6,12 @@ module Decidim
6
6
  # Controller that allows managing conferences.
7
7
  #
8
8
  class ConferencesController < Decidim::Conferences::Admin::ApplicationController
9
- include Decidim::Admin::ParticipatorySpaceAdminBreadcrumb
9
+ include Decidim::Admin::HasTrashableResources
10
+ include Decidim::Admin::ParticipatorySpaceAdminContext
11
+ include Decidim::Conferences::Admin::Filterable
10
12
 
11
13
  helper_method :current_conference, :current_participatory_space
12
14
  layout "decidim/admin/conferences"
13
- include Decidim::Conferences::Admin::Filterable
14
15
 
15
16
  def index
16
17
  enforce_permission_to :read, :conference_list
@@ -71,9 +72,21 @@ module Decidim
71
72
 
72
73
  private
73
74
 
75
+ def trashable_deleted_resource_type
76
+ :conference
77
+ end
78
+
79
+ def trashable_deleted_resource
80
+ @trashable_deleted_resource ||= current_conference
81
+ end
82
+
83
+ def trashable_deleted_collection
84
+ @trashable_deleted_collection = filtered_collection.only_deleted.deleted_at_desc
85
+ end
86
+
74
87
  def current_conference
75
- @current_conference ||= collection.where(slug: params[:slug]).or(
76
- collection.where(id: params[:slug])
88
+ @current_conference ||= collection.with_deleted.where(slug: params[:slug]).or(
89
+ collection.with_deleted.where(id: params[:slug])
77
90
  ).first
78
91
  end
79
92
 
@@ -14,7 +14,6 @@ module Decidim
14
14
  mimic :conference
15
15
 
16
16
  attribute :slug, String
17
- attribute :copy_categories, Boolean
18
17
  attribute :copy_components, Boolean
19
18
 
20
19
  validates :slug, presence: true, format: { with: Decidim::Conference.slug_format }
@@ -9,6 +9,7 @@ module Decidim
9
9
  class ConferenceForm < Form
10
10
  include TranslatableAttributes
11
11
  include Decidim::HasUploadValidations
12
+ include Decidim::HasTaxonomyFormAttributes
12
13
 
13
14
  translatable_attribute :title, String
14
15
  translatable_attribute :slogan, String
@@ -23,8 +24,6 @@ module Decidim
23
24
  attribute :weight, Integer, default: 0
24
25
  attribute :hashtag, String
25
26
  attribute :promoted, Boolean
26
- attribute :scopes_enabled, Boolean
27
- attribute :scope_id, Integer
28
27
  attribute :hero_image
29
28
  attribute :remove_hero_image, Boolean, default: false
30
29
  attribute :banner_image
@@ -57,12 +56,8 @@ module Decidim
57
56
 
58
57
  alias organization current_organization
59
58
 
60
- def map_model(model)
61
- self.scope_id = model.decidim_scope_id
62
- end
63
-
64
- def scope
65
- @scope ||= current_organization.scopes.find_by(id: scope_id)
59
+ def participatory_space_manifest
60
+ :conferences
66
61
  end
67
62
 
68
63
  def processes_for_select
@@ -11,8 +11,10 @@ module Decidim
11
11
 
12
12
  meetings_by_time = {}
13
13
  meetings.each do |meeting|
14
- meetings_by_time[start_time: meeting.start_time, end_time: meeting.end_time] ||= []
15
- meetings_by_time[start_time: meeting.start_time, end_time: meeting.end_time] << { meeting: }
14
+ key = { start_time: meeting.start_time, end_time: meeting.end_time }
15
+
16
+ meetings_by_time[key] ||= []
17
+ meetings_by_time[key] << { meeting: }
16
18
  end
17
19
  meetings_by_time
18
20
  end
@@ -33,19 +33,9 @@ module Decidim
33
33
  private
34
34
 
35
35
  def add_diploma_attachment
36
- diploma = WickedPdf.new.pdf_from_string(pdf_content, orientation: "Landscape")
37
-
36
+ diploma = Decidim::Conferences::ConferenceDiplomaPDF.new(@conference, @user).render
38
37
  attachments["conference-#{@user.nickname.parameterize}-diploma.pdf"] = diploma
39
38
  end
40
-
41
- def pdf_content
42
- Premailer.new(
43
- render_to_string(pdf: "conference-diploma",
44
- template: "decidim/conferences/admin/send_conference_diploma_mailer/diploma_user",
45
- layout: "decidim/diploma"),
46
- with_html_string: true
47
- ).to_inline_css
48
- end
49
39
  end
50
40
  end
51
41
  end
@@ -10,6 +10,7 @@ module Decidim
10
10
  include Decidim::HasAttachmentCollections
11
11
  include Decidim::Participable
12
12
  include Decidim::Publicable
13
+ include Decidim::Taxonomizable
13
14
  include Decidim::ScopableParticipatorySpace
14
15
  include Decidim::Followable
15
16
  include Decidim::HasReference
@@ -20,6 +21,8 @@ module Decidim
20
21
  include Decidim::HasUploadValidations
21
22
  include Decidim::TranslatableResource
22
23
  include Decidim::FilterableResource
24
+ include Decidim::SoftDeletable
25
+ include Decidim::ShareableWithToken
23
26
 
24
27
  translatable_fields :title, :slogan, :short_description, :description, :objectives, :registration_terms
25
28
 
@@ -146,7 +149,23 @@ module Decidim
146
149
  :admin
147
150
  end
148
151
 
152
+ def shareable_url(share_token)
153
+ EngineRouter.main_proxy(self).conference_url(self, share_token: share_token.token)
154
+ end
155
+
149
156
  # Allow ransacker to search for a key in a hstore column (`title`.`en`)
150
157
  ransacker_i18n :title
158
+
159
+ def self.ransackable_attributes(auth_object = nil)
160
+ base = %w(title short_description description id)
161
+
162
+ return base unless auth_object&.admin?
163
+
164
+ base + %w(published_at)
165
+ end
166
+
167
+ def self.ransackable_associations(_auth_object = nil)
168
+ %w(taxonomies)
169
+ end
151
170
  end
152
171
  end
@@ -22,6 +22,16 @@ module Decidim
22
22
  Decidim::Conferences::AdminLog::InvitePresenter
23
23
  end
24
24
 
25
+ def self.ransackable_attributes(auth_object = nil)
26
+ return [] unless auth_object&.admin?
27
+
28
+ %w(accepted_at rejected_at sent_at)
29
+ end
30
+
31
+ def self.ransackable_associations(_auth_object = nil)
32
+ %w(user)
33
+ end
34
+
25
35
  def self.user_collection(user)
26
36
  where(decidim_user_id: user.id)
27
37
  end
@@ -127,6 +127,7 @@ module Decidim
127
127
 
128
128
  return allow! if user&.admin?
129
129
  return allow! if conference.published?
130
+ return allow! if user_can_preview_space?
130
131
 
131
132
  toggle_allow(can_manage_conference?)
132
133
  end
@@ -266,7 +267,6 @@ module Decidim
266
267
  is_allowed = [
267
268
  :attachment,
268
269
  :attachment_collection,
269
- :category,
270
270
  :component,
271
271
  :component_data,
272
272
  :moderation,
@@ -276,7 +276,8 @@ module Decidim
276
276
  :partner,
277
277
  :media_link,
278
278
  :registration_type,
279
- :conference_invite
279
+ :conference_invite,
280
+ :share_tokens
280
281
  ].include?(permission_action.subject)
281
282
  allow! if is_allowed
282
283
  end
@@ -287,7 +288,6 @@ module Decidim
287
288
  is_allowed = [
288
289
  :attachment,
289
290
  :attachment_collection,
290
- :category,
291
291
  :component,
292
292
  :component_data,
293
293
  :moderation,
@@ -299,11 +299,18 @@ module Decidim
299
299
  :partner,
300
300
  :registration_type,
301
301
  :read_conference_registrations,
302
- :export_conference_registrations
302
+ :export_conference_registrations,
303
+ :share_tokens
303
304
  ].include?(permission_action.subject)
304
305
  allow! if is_allowed
305
306
  end
306
307
 
308
+ def user_can_preview_space?
309
+ context[:share_token].present? && Decidim::ShareToken.use!(token_for: conference, token: context[:share_token], user:)
310
+ rescue ActiveRecord::RecordNotFound, StandardError
311
+ nil
312
+ end
313
+
307
314
  # Checks if the permission_action is to read the admin conferences list or
308
315
  # not.
309
316
  def read_conference_list_permission_action?
@@ -41,7 +41,7 @@ module Decidim
41
41
 
42
42
  def action_string
43
43
  case action
44
- when "create", "publish", "unpublish", "update", "update_diploma"
44
+ when "create", "publish", "unpublish", "update", "update_diploma", "soft_delete", "restore"
45
45
  "decidim.admin_log.conference.#{action}"
46
46
  else
47
47
  super
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ class ConferencePresenter < SimpleDelegator
6
+ def hero_image_url
7
+ conference.attached_uploader(:hero_image).url
8
+ end
9
+
10
+ def banner_image_url
11
+ conference.attached_uploader(:banner_image).url
12
+ end
13
+
14
+ def conference
15
+ __getobj__
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ # This class serializes a Conference so it can be exported to CSV, JSON or other formats.
6
+ class ConferenceSerializer < Decidim::Conferences::OpenDataConferenceSerializer
7
+ # Public: Exports a hash with the serialized data for this conference.
8
+ def serialize
9
+ super.merge(
10
+ {
11
+ categories: serialize_categories,
12
+ taxonomies:,
13
+ attachments: {
14
+ attachment_collections: serialize_attachment_collections,
15
+ files: serialize_attachments
16
+ },
17
+ weight: resource.weight,
18
+ components: serialize_components
19
+ }
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -10,15 +10,14 @@ module Decidim
10
10
  sent_at: resource.sent_at,
11
11
  accepted_at: resource.accepted_at,
12
12
  rejected_at: resource.rejected_at,
13
- user: {
14
- name: resource.user.name,
15
- email: resource.user.email
16
- },
13
+ created_at: resource.created_at,
14
+ updated_at: resource.updated_at,
17
15
  registration_type: {
18
16
  title: resource.registration_type.title,
19
17
  price: resource.registration_type.price
20
18
  },
21
19
  conference: {
20
+ url: Decidim::EngineRouter.main_proxy(resource.conference).conference_url(resource.conference),
22
21
  title: resource.conference.title,
23
22
  reference: resource.conference.reference,
24
23
  slogan: resource.conference.slogan,
@@ -7,15 +7,15 @@ module Decidim
7
7
  def serialize
8
8
  {
9
9
  id: resource.id,
10
- user: {
11
- name: resource.user.name,
12
- email: resource.user.email
13
- },
10
+ created_at: resource.created_at,
11
+ updated_at: resource.updated_at,
12
+ confirmed_at: resource.confirmed_at,
14
13
  registration_type: {
15
14
  title: resource.registration_type.title,
16
15
  price: resource.registration_type.price
17
16
  },
18
17
  conference: {
18
+ url: Decidim::EngineRouter.main_proxy(resource.conference).conference_url(resource.conference),
19
19
  title: resource.conference.title,
20
20
  reference: resource.conference.reference,
21
21
  slogan: resource.conference.slogan,
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ # This class serializes a Conference so it can be exported to CSV for the Open Data feature.
6
+ class OpenDataConferenceSerializer < Decidim::Exporters::ParticipatorySpaceSerializer
7
+ # Public: Exports a hash with the serialized data for this conference.
8
+ def serialize
9
+ super.merge(
10
+ {
11
+ url: EngineRouter.main_proxy(resource).conference_url(resource),
12
+ slogan: resource.slogan,
13
+ remote_hero_image_url: Decidim::Conferences::ConferencePresenter.new(resource).hero_image_url,
14
+ remote_banner_image_url: Decidim::Conferences::ConferencePresenter.new(resource).banner_image_url,
15
+ location: resource.location,
16
+ objectives: resource.objectives,
17
+ start_date: resource.start_date,
18
+ end_date: resource.end_date,
19
+ scopes_enabled: resource.scopes_enabled,
20
+ decidim_scope_id: resource.decidim_scope_id,
21
+ scope: {
22
+ id: resource.scope.try(:id),
23
+ name: resource.scope.try(:name) || empty_translatable
24
+ }
25
+ }
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -16,9 +16,6 @@
16
16
  </div>
17
17
  <div class="card-section">
18
18
  <div class="row">
19
- <div class="row column">
20
- <%= form.check_box :copy_categories %>
21
- </div>
22
19
  <div class="row column">
23
20
  <%= form.check_box :copy_components %>
24
21
  </div>
@@ -0,0 +1,35 @@
1
+ <% if view == :deleted %>
2
+ <% if allowed_to? :restore, :conference, trashable_deleted_resource: conference %>
3
+ <%= icon_link_to "refresh-line", restore_conference_path(conference), t("decidim.admin.actions.restore"), method: :patch, class: "action-icon--restore" %>
4
+ <% end %>
5
+ <% else %>
6
+ <% if allowed_to? :read, :share_tokens, current_participatory_space: conference %>
7
+ <%= icon_link_to "share-line", decidim_admin_conferences.conference_share_tokens_path(conference), t("actions.share_tokens", scope: "decidim.admin"), class: "action-icon--new" %>
8
+ <% else %>
9
+ <span class="action-space icon"></span>
10
+ <% end %>
11
+
12
+ <% if allowed_to? :update, :conference, conference: conference %>
13
+ <%= icon_link_to "pencil-line", edit_conference_path(conference), t("decidim.admin.actions.configure"), class: "action-icon--new" %>
14
+ <% end %>
15
+
16
+ <% if allowed_to? :create, :conference, conference: conference %>
17
+ <%= icon_link_to "file-copy-line", new_conference_copy_path(conference), t("decidim.admin.actions.duplicate"), class: "action-icon--copy" %>
18
+ <% end %>
19
+
20
+ <% if allowed_to? :preview, :conference, conference: conference %>
21
+ <%= icon_link_to "eye-line", decidim_conferences.conference_path(conference), t("decidim.admin.actions.preview"), class: "action-icon--preview", target: "_blank", data: { "external-link": false } %>
22
+ <% end %>
23
+
24
+ <% if allowed_to? :read, :moderation, conference: conference %>
25
+ <%= icon_link_to "flag-line", moderations_path(conference), t("decidim.admin.actions.moderate"), class: "action-icon--moderate" %>
26
+ <% end %>
27
+
28
+ <% if allowed_to? :soft_delete, :conference, trashable_deleted_resource: conference %>
29
+ <% if conference.published? %>
30
+ <%= icon "delete-bin-line", class: "action-icon action-icon--disabled", role: "img", aria_label: t("decidim.admin.actions.soft_delete") %>
31
+ <% else %>
32
+ <%= icon_link_to "delete-bin-line", soft_delete_conference_path(conference), t("decidim.admin.actions.soft_delete"), method: :patch, class: "action-icon--delete", data: { confirm: t("decidim.admin.actions.confirm_delete_conference") } %>
33
+ <% end %>
34
+ <% end %>
35
+ <% end %>
@@ -0,0 +1,28 @@
1
+ <tr>
2
+ <td>
3
+ <% if conference.promoted? %>
4
+ <%= icon_with_tooltip "star-s-fill", t("models.assembly.fields.promoted", scope: "decidim.admin") %>
5
+ <% end %>
6
+
7
+ <% if allowed_to? :update, :conference, conference: conference %>
8
+ <%= link_to translated_attribute(conference.title), edit_conference_path(conference) %><br>
9
+ <% elsif allowed_to? :read, :component, conference: conference %>
10
+ <%= link_to translated_attribute(conference.title), components_path(conference) %><br>
11
+ <% else %>
12
+ <%= translated_attribute(conference.title) %>
13
+ <% end %>
14
+ </td>
15
+ <td>
16
+ <%= l conference.created_at, format: :short %>
17
+ </td>
18
+ <td class="table-list__state">
19
+ <% if conference.published? %>
20
+ <span class="label !text-sm success"><%= t("conferences.index.published", scope: "decidim.admin") %></span>
21
+ <% else %>
22
+ <span class="label !text-sm alert"><%= t("conferences.index.unpublished", scope: "decidim.admin") %></span>
23
+ <% end %>
24
+ </td>
25
+ <td class="table-list__actions">
26
+ <%= render partial: "decidim/conferences/admin/conferences/actions", locals: { conference:, view: } %>
27
+ </td>
28
+ </tr>
@@ -0,0 +1,8 @@
1
+ <thead>
2
+ <tr>
3
+ <th><%= t("models.conference.fields.title", scope: "decidim.admin") %></th>
4
+ <th><%= sort_link(query, :created_at, t("models.conference.fields.created_at", scope: "decidim.admin"), default_order: :desc) %></th>
5
+ <th class="table-list__actions"><%= t("models.conference.fields.published", scope: "decidim.admin") %></th>
6
+ <th></th>
7
+ </tr>
8
+ </thead>
@@ -62,14 +62,6 @@
62
62
  </div>
63
63
  </div>
64
64
 
65
- <div class="row column">
66
- <%= form.check_box :scopes_enabled %>
67
- </div>
68
-
69
- <div class="row column">
70
- <%= scopes_select_field form, :scope_id, root: nil %>
71
- </div>
72
-
73
65
  <div class="row column">
74
66
  <%= form.check_box :show_statistics %>
75
67
  </div>
@@ -116,5 +108,32 @@
116
108
  </div>
117
109
  </div>
118
110
 
111
+ <div class="card" data-component="accordion" id="accordion-taxonomies">
112
+ <div class="card-divider">
113
+ <button class="card-divider-button" data-open="true" data-controls="panel-taxonomies" type="button">
114
+ <%= icon "arrow-right-s-line" %>
115
+ <h2 class="card-title" id="taxonomies">
116
+ <%= t("taxonomies", scope: "decidim.conferences.admin.conferences.form") %>
117
+ </h2>
118
+ </button>
119
+ </div>
120
+ <div id="panel-taxonomies" class="card-section">
121
+ <% if @form.taxonomy_filters.blank? %>
122
+ <div class="row column">
123
+ <p class="text-gray mr-2 mt-4">
124
+ <%= t("no_taxonomy_filters_found", scope: "decidim.conferences.admin.conferences.form") %>
125
+ <%= link_to(t("define_taxonomy_filters", scope: "decidim.conferences.admin.conferences.form"), decidim_admin.taxonomies_path, class: "button button__text-secondary") %>
126
+ </p>
127
+ </div>
128
+ <% else %>
129
+ <% @form.taxonomy_filters.each do |filter| %>
130
+ <div class="row column">
131
+ <%= filter_taxonomy_items_select_field form, :taxonomies, filter %>
132
+ </div>
133
+ <% end %>
134
+ <% end %>
135
+ </div>
136
+ </div>
119
137
  </div>
138
+
120
139
  <%= append_javascript_pack_tag "decidim_conferences_admin" %>