decidim-assemblies 0.27.4 → 0.28.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (196) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/assemblies/assemblies/show.erb +16 -0
  3. data/app/cells/decidim/assemblies/assemblies_cell.rb +24 -0
  4. data/app/cells/decidim/assemblies/assembly_cell.rb +7 -2
  5. data/app/cells/decidim/assemblies/assembly_dropdown_metadata_cell.rb +19 -0
  6. data/app/cells/decidim/assemblies/assembly_g_cell.rb +23 -0
  7. data/app/cells/decidim/assemblies/assembly_member/data.erb +19 -0
  8. data/app/cells/decidim/assemblies/assembly_member/name_and_position.erb +11 -0
  9. data/app/cells/decidim/assemblies/assembly_member/show.erb +8 -52
  10. data/app/cells/decidim/assemblies/assembly_metadata_g_cell.rb +46 -0
  11. data/app/cells/decidim/assemblies/assembly_s_cell.rb +15 -0
  12. data/app/cells/decidim/assemblies/content_block_cell.rb +21 -0
  13. data/app/cells/decidim/assemblies/content_blocks/children_assemblies_cell.rb +27 -0
  14. data/app/cells/decidim/assemblies/content_blocks/dates_metadata_cell.rb +23 -0
  15. data/app/cells/decidim/assemblies/content_blocks/extra_data_cell.rb +39 -0
  16. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_cell.rb +15 -23
  17. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +1 -1
  18. data/app/cells/decidim/assemblies/content_blocks/main_data_cell.rb +52 -0
  19. data/app/cells/decidim/assemblies/content_blocks/metadata_cell.rb +23 -0
  20. data/app/cells/decidim/assemblies/content_blocks/related_assemblies/content.erb +1 -0
  21. data/app/cells/decidim/assemblies/content_blocks/related_assemblies_cell.rb +34 -0
  22. data/app/cells/decidim/assemblies/content_blocks/stats_cell.rb +15 -0
  23. data/app/commands/decidim/assemblies/admin/copy_assembly.rb +2 -2
  24. data/app/commands/decidim/assemblies/admin/create_assemblies_type.rb +1 -1
  25. data/app/commands/decidim/assemblies/admin/create_assembly.rb +2 -1
  26. data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +3 -3
  27. data/app/commands/decidim/assemblies/admin/destroy_assemblies_type.rb +1 -1
  28. data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +1 -1
  29. data/app/commands/decidim/assemblies/admin/import_assembly.rb +1 -1
  30. data/app/commands/decidim/assemblies/admin/update_assemblies_type.rb +1 -1
  31. data/app/commands/decidim/assemblies/admin/update_assembly.rb +1 -1
  32. data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +1 -1
  33. data/app/constraints/decidim/assemblies/current_assembly.rb +1 -1
  34. data/app/controllers/concerns/decidim/assemblies/admin/assembly_context.rb +1 -1
  35. data/app/controllers/concerns/decidim/assemblies/admin/assembly_members/filterable.rb +39 -0
  36. data/app/controllers/concerns/decidim/assemblies/assembly_breadcrumb.rb +36 -0
  37. data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +1 -0
  38. data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +1 -1
  39. data/app/controllers/decidim/assemblies/admin/assembly_attachment_collections_controller.rb +5 -0
  40. data/app/controllers/decidim/assemblies/admin/assembly_attachments_controller.rb +5 -0
  41. data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +2 -0
  42. data/app/controllers/decidim/assemblies/admin/assembly_landing_page_content_blocks_controller.rb +35 -0
  43. data/app/controllers/decidim/assemblies/admin/assembly_landing_page_controller.rb +37 -0
  44. data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +2 -6
  45. data/app/controllers/decidim/assemblies/admin/assembly_publications_controller.rb +9 -29
  46. data/app/controllers/decidim/assemblies/admin/assembly_user_roles_controller.rb +8 -91
  47. data/app/controllers/decidim/assemblies/admin/concerns/assembly_admin.rb +1 -1
  48. data/app/controllers/decidim/assemblies/assemblies_controller.rb +13 -8
  49. data/app/controllers/decidim/assemblies/assembly_members_controller.rb +2 -0
  50. data/app/events/decidim/role_assigned_to_assembly_event.rb +6 -6
  51. data/app/forms/decidim/assemblies/admin/assembly_copy_form.rb +1 -1
  52. data/app/forms/decidim/assemblies/admin/assembly_form.rb +1 -1
  53. data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +1 -1
  54. data/app/forms/decidim/assemblies/admin/assembly_user_role_form.rb +2 -18
  55. data/app/helpers/decidim/assemblies/admin/assembly_members_helper.rb +11 -0
  56. data/app/helpers/decidim/assemblies/application_helper.rb +12 -0
  57. data/app/helpers/decidim/assemblies/assemblies_helper.rb +20 -18
  58. data/app/helpers/decidim/assemblies/filter_assemblies_helper.rb +15 -30
  59. data/app/models/decidim/assembly.rb +6 -5
  60. data/app/models/decidim/assembly_user_role.rb +5 -33
  61. data/app/packs/entrypoints/decidim_assemblies.js +0 -1
  62. data/app/packs/src/decidim/assemblies/admin/assemblies.js +2 -2
  63. data/app/packs/src/decidim/assemblies/orgchart.js +0 -701
  64. data/app/permissions/decidim/assemblies/permissions.rb +21 -20
  65. data/app/presenters/decidim/assemblies/admin_log/assemblies_setting_presenter.rb +2 -2
  66. data/app/presenters/decidim/assemblies/admin_log/assemblies_type_presenter.rb +2 -2
  67. data/app/presenters/decidim/assemblies/admin_log/assembly_member_presenter.rb +2 -2
  68. data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +2 -2
  69. data/app/presenters/decidim/assemblies/admin_log/assembly_user_role_presenter.rb +2 -2
  70. data/app/presenters/decidim/assemblies/assembly_presenter.rb +38 -0
  71. data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +2 -41
  72. data/app/presenters/decidim/assembly_member_presenter.rb +18 -4
  73. data/app/queries/decidim/assemblies/admin/admin_users.rb +1 -1
  74. data/app/queries/decidim/assemblies/assemblies_with_user_role.rb +2 -2
  75. data/app/serializers/decidim/assemblies/assembly_importer.rb +3 -3
  76. data/app/serializers/decidim/assemblies/assembly_serializer.rb +1 -1
  77. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +218 -176
  78. data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +25 -11
  79. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +105 -115
  80. data/app/views/decidim/assemblies/admin/assemblies/new.html.erb +16 -9
  81. data/app/views/decidim/assemblies/admin/assemblies_types/_form.html.erb +6 -8
  82. data/app/views/decidim/assemblies/admin/assemblies_types/edit.html.erb +11 -5
  83. data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +34 -35
  84. data/app/views/decidim/assemblies/admin/assemblies_types/new.html.erb +16 -6
  85. data/app/views/decidim/assemblies/admin/assembly_copies/_form.html.erb +12 -20
  86. data/app/views/decidim/assemblies/admin/assembly_copies/new.html.erb +17 -5
  87. data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +28 -37
  88. data/app/views/decidim/assemblies/admin/assembly_imports/new.html.erb +17 -5
  89. data/app/views/decidim/assemblies/admin/assembly_members/_form.html.erb +45 -49
  90. data/app/views/decidim/assemblies/admin/assembly_members/edit.html.erb +17 -6
  91. data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +51 -88
  92. data/app/views/decidim/assemblies/admin/assembly_members/new.html.erb +17 -6
  93. data/app/views/decidim/assemblies/admin/assembly_user_roles/_form.html.erb +14 -18
  94. data/app/views/decidim/assemblies/admin/assembly_user_roles/edit.html.erb +17 -6
  95. data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +54 -55
  96. data/app/views/decidim/assemblies/admin/assembly_user_roles/new.html.erb +17 -6
  97. data/app/views/decidim/assemblies/assemblies/_collection.html.erb +7 -0
  98. data/app/views/decidim/assemblies/assemblies/index.html.erb +20 -19
  99. data/app/views/decidim/assemblies/assemblies/index.js.erb +1 -8
  100. data/app/views/decidim/assemblies/assemblies/show.html.erb +17 -207
  101. data/app/views/decidim/assemblies/assembly_members/index.html.erb +7 -5
  102. data/app/views/decidim/assemblies/pages/user_profile/_member_of.html.erb +6 -9
  103. data/app/views/layouts/decidim/admin/_manage_assemblies.html.erb +36 -0
  104. data/app/views/layouts/decidim/admin/assemblies.html.erb +13 -11
  105. data/app/views/layouts/decidim/admin/assemblies_imports.html.erb +9 -0
  106. data/app/views/layouts/decidim/admin/assemblies_types.html.erb +17 -0
  107. data/app/views/layouts/decidim/admin/assembly.html.erb +12 -13
  108. data/app/views/layouts/decidim/assembly.html.erb +7 -14
  109. data/config/environment.rb +3 -0
  110. data/config/locales/ar.yml +6 -75
  111. data/config/locales/bg.yml +0 -4
  112. data/config/locales/ca.yml +58 -67
  113. data/config/locales/cs.yml +60 -67
  114. data/config/locales/de.yml +62 -71
  115. data/config/locales/el.yml +10 -69
  116. data/config/locales/en.yml +58 -67
  117. data/config/locales/es-MX.yml +58 -67
  118. data/config/locales/es-PY.yml +58 -67
  119. data/config/locales/es.yml +58 -67
  120. data/config/locales/eu.yml +206 -202
  121. data/config/locales/fi-plain.yml +58 -67
  122. data/config/locales/fi.yml +60 -69
  123. data/config/locales/fr-CA.yml +58 -67
  124. data/config/locales/fr.yml +61 -70
  125. data/config/locales/ga-IE.yml +4 -17
  126. data/config/locales/gl.yml +3 -69
  127. data/config/locales/hu.yml +38 -70
  128. data/config/locales/id-ID.yml +4 -50
  129. data/config/locales/is-IS.yml +4 -44
  130. data/config/locales/it.yml +4 -70
  131. data/config/locales/ja.yml +52 -67
  132. data/config/locales/kaa.yml +0 -9
  133. data/config/locales/lb.yml +4 -64
  134. data/config/locales/lt.yml +52 -67
  135. data/config/locales/lv.yml +4 -63
  136. data/config/locales/nl.yml +3 -70
  137. data/config/locales/no.yml +4 -70
  138. data/config/locales/pl.yml +4 -76
  139. data/config/locales/pt-BR.yml +27 -69
  140. data/config/locales/pt.yml +4 -70
  141. data/config/locales/ro-RO.yml +19 -71
  142. data/config/locales/ru.yml +4 -48
  143. data/config/locales/sk.yml +0 -23
  144. data/config/locales/sl.yml +4 -49
  145. data/config/locales/sq-AL.yml +1 -0
  146. data/config/locales/sr-CS.yml +0 -5
  147. data/config/locales/sv.yml +17 -69
  148. data/config/locales/th-TH.yml +1 -0
  149. data/config/locales/tr-TR.yml +6 -76
  150. data/config/locales/uk.yml +4 -48
  151. data/config/locales/zh-CN.yml +4 -68
  152. data/config/locales/zh-TW.yml +5 -70
  153. data/db/migrate/20200108123050_migrate_decidim_assembly_types.rb +1 -1
  154. data/lib/decidim/api/assemblies_type_type.rb +1 -1
  155. data/lib/decidim/api/assembly_member_type.rb +1 -1
  156. data/lib/decidim/api/assembly_type.rb +1 -1
  157. data/lib/decidim/assemblies/admin_engine.rb +21 -126
  158. data/lib/decidim/assemblies/content_blocks/registry_manager.rb +184 -0
  159. data/lib/decidim/assemblies/engine.rb +15 -21
  160. data/lib/decidim/assemblies/menu.rb +161 -0
  161. data/lib/decidim/assemblies/participatory_space.rb +7 -229
  162. data/lib/decidim/assemblies/query_extensions.rb +6 -6
  163. data/lib/decidim/assemblies/seeds.rb +161 -0
  164. data/lib/decidim/assemblies/test/factories.rb +22 -11
  165. data/lib/decidim/assemblies/version.rb +1 -1
  166. metadata +55 -48
  167. data/app/cells/decidim/assemblies/assembly_m/footer.erb +0 -15
  168. data/app/cells/decidim/assemblies/assembly_m/tags.erb +0 -1
  169. data/app/cells/decidim/assemblies/assembly_m_cell.rb +0 -77
  170. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies/show.erb +0 -30
  171. data/app/commands/decidim/assemblies/admin/create_assembly_admin.rb +0 -54
  172. data/app/commands/decidim/assemblies/admin/destroy_assembly_admin.rb +0 -58
  173. data/app/commands/decidim/assemblies/admin/notify_role_assigned_to_assembly.rb +0 -22
  174. data/app/commands/decidim/assemblies/admin/publish_assembly.rb +0 -39
  175. data/app/commands/decidim/assemblies/admin/unpublish_assembly.rb +0 -39
  176. data/app/commands/decidim/assemblies/admin/update_assemblies_setting.rb +0 -46
  177. data/app/commands/decidim/assemblies/admin/update_assembly_admin.rb +0 -53
  178. data/app/controllers/decidim/assemblies/admin/assemblies_settings_controller.rb +0 -49
  179. data/app/controllers/decidim/assemblies/widgets_controller.rb +0 -23
  180. data/app/forms/decidim/assemblies/admin/assemblies_setting_form.rb +0 -14
  181. data/app/models/decidim/assemblies_setting.rb +0 -17
  182. data/app/queries/decidim/assemblies/admin/assembly_members.rb +0 -56
  183. data/app/views/decidim/assemblies/_filter_by_type.html.erb +0 -19
  184. data/app/views/decidim/assemblies/admin/assemblies_settings/_form.html.erb +0 -10
  185. data/app/views/decidim/assemblies/admin/assemblies_settings/edit.html.erb +0 -7
  186. data/app/views/decidim/assemblies/assemblies/_count.html.erb +0 -1
  187. data/app/views/decidim/assemblies/assemblies/_nav_breadcumb.html.erb +0 -11
  188. data/app/views/decidim/assemblies/assemblies/_parent_assemblies.html.erb +0 -15
  189. data/app/views/decidim/assemblies/assemblies/_promoted_assembly.html.erb +0 -27
  190. data/app/views/layouts/decidim/_assembly_header.html.erb +0 -27
  191. data/app/views/layouts/decidim/_assembly_navigation.html.erb +0 -24
  192. data/app/views/layouts/decidim/admin/assembly_members.html.erb +0 -18
  193. data/db/seeds/Exampledocument.pdf +0 -0
  194. data/db/seeds/city.jpeg +0 -0
  195. data/db/seeds/city2.jpeg +0 -0
  196. data/db/seeds/homepage_image.jpg +0 -0
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -21,7 +21,7 @@ module Decidim
21
21
  # Executes the command. Broadcasts these events:
22
22
  #
23
23
  # - :ok when everything is valid.
24
- # - :invalid if the form wasn't valid and we couldn't proceed.
24
+ # - :invalid if the form was not valid and we could not proceed.
25
25
  #
26
26
  # Returns nothing.
27
27
  def call
@@ -20,7 +20,7 @@ module Decidim
20
20
  # Executes the command. Broadcasts these events:
21
21
  #
22
22
  # - :ok when everything is valid.
23
- # - :invalid if the form wasn't valid and we couldn't proceed.
23
+ # - :invalid if the form was not valid and we could not proceed.
24
24
  #
25
25
  # Returns nothing.
26
26
  def call
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Assemblies
5
- # This class infers the current assembly we're scoped to by
5
+ # This class infers the current assembly we are scoped to by
6
6
  # looking at the request parameters and the organization in the request
7
7
  # environment, and injects it into the environment.
8
8
  class CurrentAssembly
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Assemblies
5
5
  module Admin
6
- # This module, when injected into a controller, ensures there's a
6
+ # This module, when injected into a controller, ensures there is a
7
7
  # Assembly available and deducts it from the context.
8
8
  module AssemblyContext
9
9
  def self.extended(base)
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
4
+
5
+ module Decidim
6
+ module Assemblies
7
+ module Admin
8
+ module AssemblyMembers
9
+ module Filterable
10
+ extend ActiveSupport::Concern
11
+
12
+ included do
13
+ include Decidim::Admin::Filterable
14
+
15
+ private
16
+
17
+ def filters
18
+ [:ceased_date_not_null]
19
+ end
20
+
21
+ def filters_with_values
22
+ {
23
+ ceased_date_not_null: %w(true false)
24
+ }
25
+ end
26
+
27
+ def base_query
28
+ collection
29
+ end
30
+
31
+ def search_field_predicate
32
+ :full_name_or_user_name_or_user_nickname_cont
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ # Concern to provide a specific breadcrumb item to controllers using it
6
+ module AssemblyBreadcrumb
7
+ extend ActiveSupport::Concern
8
+
9
+ private
10
+
11
+ def current_participatory_space_breadcrumb_item
12
+ return {} if current_participatory_space.blank?
13
+
14
+ dropdown_cell = current_participatory_space_manifest.breadcrumb_cell
15
+
16
+ items = current_participatory_space.ancestors.map do |participatory_space|
17
+ {
18
+ label: participatory_space.title,
19
+ url: Decidim::ResourceLocatorPresenter.new(participatory_space).path,
20
+ active: false,
21
+ dropdown_cell:,
22
+ resource: participatory_space
23
+ }
24
+ end
25
+
26
+ items << {
27
+ label: current_participatory_space.title,
28
+ url: Decidim::ResourceLocatorPresenter.new(current_participatory_space).path,
29
+ active: true,
30
+ dropdown_cell:,
31
+ resource: current_participatory_space
32
+ }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -7,6 +7,7 @@ module Decidim
7
7
  #
8
8
  class AssembliesController < Decidim::Assemblies::Admin::ApplicationController
9
9
  include Decidim::Assemblies::Admin::Filterable
10
+ include Decidim::Admin::ParticipatorySpaceAdminBreadcrumb
10
11
  helper_method :current_assembly, :parent_assembly, :current_participatory_space
11
12
  layout "decidim/admin/assemblies"
12
13
 
@@ -17,7 +17,7 @@ module Decidim
17
17
  # This comment (and the i18n keys) may be removed in future versions
18
18
  class AssembliesTypesController < Decidim::Assemblies::Admin::ApplicationController
19
19
  helper_method :available_assemblies_types, :current_assembly_type
20
- layout "decidim/admin/assemblies"
20
+ layout "decidim/admin/assemblies_types"
21
21
 
22
22
  # GET /admin/assemblies_types
23
23
  def index
@@ -8,6 +8,7 @@ module Decidim
8
8
  class AssemblyAttachmentCollectionsController < Decidim::Assemblies::Admin::ApplicationController
9
9
  include Concerns::AssemblyAdmin
10
10
  include Decidim::Admin::Concerns::HasAttachmentCollections
11
+ include Decidim::Admin::Concerns::HasTabbedMenu
11
12
 
12
13
  def after_destroy_path
13
14
  assembly_attachment_collections_path(current_assembly)
@@ -16,6 +17,10 @@ module Decidim
16
17
  def collection_for
17
18
  current_assembly
18
19
  end
20
+
21
+ private
22
+
23
+ def tab_menu_name = :assemblies_admin_attachments_menu
19
24
  end
20
25
  end
21
26
  end
@@ -9,6 +9,7 @@ module Decidim
9
9
  class AssemblyAttachmentsController < Decidim::Assemblies::Admin::ApplicationController
10
10
  include Concerns::AssemblyAdmin
11
11
  include Decidim::Admin::Concerns::HasAttachments
12
+ include Decidim::Admin::Concerns::HasTabbedMenu
12
13
 
13
14
  def after_destroy_path
14
15
  assembly_attachments_path(current_assembly)
@@ -17,6 +18,10 @@ module Decidim
17
18
  def attached_to
18
19
  current_assembly
19
20
  end
21
+
22
+ private
23
+
24
+ def tab_menu_name = :assemblies_admin_attachments_menu
20
25
  end
21
26
  end
22
27
  end
@@ -4,6 +4,8 @@ module Decidim
4
4
  module Assemblies
5
5
  module Admin
6
6
  class AssemblyImportsController < Decidim::Assemblies::Admin::ApplicationController
7
+ layout "decidim/admin/assemblies_imports"
8
+
7
9
  def new
8
10
  enforce_permission_to :import, :assembly
9
11
  @form = form(AssemblyImportForm).instance
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ module Admin
6
+ # Controller that allows to manage the content from the assembly landing page content blocks
7
+ class AssemblyLandingPageContentBlocksController < Decidim::Assemblies::Admin::ApplicationController
8
+ include Decidim::Admin::ContentBlocks::LandingPageContentBlocks
9
+ include Concerns::AssemblyAdmin
10
+
11
+ layout "decidim/admin/assemblies"
12
+
13
+ private
14
+
15
+ def content_block_scope
16
+ current_participatory_space_manifest.content_blocks_scope_name
17
+ end
18
+
19
+ alias scoped_resource current_participatory_space
20
+
21
+ def enforce_permission_to_update_resource
22
+ enforce_permission_to :update, :assembly, assembly: scoped_resource
23
+ end
24
+
25
+ def edit_resource_landing_page_path
26
+ edit_assembly_landing_page_path(scoped_resource)
27
+ end
28
+
29
+ def resource_landing_page_content_block_path
30
+ assembly_landing_page_content_block_path(scoped_resource, params[:id])
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ module Admin
6
+ # Controller that allows managing the assembly landing page
7
+ class AssemblyLandingPageController < Decidim::Assemblies::Admin::ApplicationController
8
+ include Decidim::Admin::ContentBlocks::LandingPage
9
+ include Concerns::AssemblyAdmin
10
+
11
+ layout "decidim/admin/assembly"
12
+
13
+ def content_block_scope
14
+ current_participatory_space_manifest.content_blocks_scope_name
15
+ end
16
+
17
+ alias scoped_resource current_participatory_space
18
+
19
+ def enforce_permission_to_update_resource
20
+ enforce_permission_to :update, :assembly, assembly: scoped_resource
21
+ end
22
+
23
+ def resource_sort_url
24
+ assembly_landing_page_path(scoped_resource)
25
+ end
26
+
27
+ def resource_create_url(manifest_name)
28
+ assembly_landing_page_content_blocks_path(slug: params[:slug], manifest_name:)
29
+ end
30
+
31
+ def resource_content_block_cell
32
+ "decidim/assemblies/content_block"
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -7,15 +7,11 @@ module Decidim
7
7
  #
8
8
  class AssemblyMembersController < Decidim::Assemblies::Admin::ApplicationController
9
9
  include Concerns::AssemblyAdmin
10
- layout "decidim/admin/assembly_members"
10
+ include Decidim::Assemblies::Admin::AssemblyMembers::Filterable
11
11
 
12
12
  def index
13
13
  enforce_permission_to :index, :assembly_member
14
-
15
- @query = params[:q]
16
- @status = params[:status]
17
-
18
- @assembly_members = Decidim::Assemblies::Admin::AssemblyMembers.for(collection, @query, @status).page(params[:page]).per(15)
14
+ @assembly_members = filtered_collection
19
15
  end
20
16
 
21
17
  def new
@@ -5,40 +5,20 @@ module Decidim
5
5
  module Admin
6
6
  # Controller that allows managing assembly publications.
7
7
  #
8
- class AssemblyPublicationsController < Decidim::Assemblies::Admin::ApplicationController
8
+ # i18n-tasks-use t('decidim.admin.assembly_publications.create.error')
9
+ # i18n-tasks-use t('decidim.admin.assembly_publications.create.success')
10
+ # i18n-tasks-use t('decidim.admin.assembly_publications.destroy.error')
11
+ # i18n-tasks-use t('decidim.admin.assembly_publications.destroy.success')
12
+ class AssemblyPublicationsController < Decidim::Admin::SpacePublicationsController
9
13
  include Concerns::AssemblyAdmin
10
14
 
11
- def create
12
- enforce_permission_to :publish, :assembly, assembly: current_assembly
15
+ private
13
16
 
14
- PublishAssembly.call(current_assembly, current_user) do
15
- on(:ok) do
16
- flash[:notice] = I18n.t("assembly_publications.create.success", scope: "decidim.admin")
17
- end
17
+ def enforce_permission_to_publish = enforce_permission_to(:publish, :assembly, assembly: current_assembly)
18
18
 
19
- on(:invalid) do
20
- flash.now[:alert] = I18n.t("assembly_publications.create.error", scope: "decidim.admin")
21
- end
19
+ def i18n_scope = "decidim.admin.assembly_publications"
22
20
 
23
- redirect_back(fallback_location: assemblies_path)
24
- end
25
- end
26
-
27
- def destroy
28
- enforce_permission_to :publish, :assembly, assembly: current_assembly
29
-
30
- UnpublishAssembly.call(current_assembly, current_user) do
31
- on(:ok) do
32
- flash[:notice] = I18n.t("assembly_publications.destroy.success", scope: "decidim.admin")
33
- end
34
-
35
- on(:invalid) do
36
- flash.now[:alert] = I18n.t("assembly_publications.destroy.error", scope: "decidim.admin")
37
- end
38
-
39
- redirect_back(fallback_location: assemblies_path)
40
- end
41
- end
21
+ def fallback_location = assemblies_path
42
22
  end
43
23
  end
44
24
  end
@@ -5,105 +5,22 @@ module Decidim
5
5
  module Admin
6
6
  # Controller that allows managing assembly user roles.
7
7
  #
8
- class AssemblyUserRolesController < Decidim::Assemblies::Admin::ApplicationController
8
+ class AssemblyUserRolesController < Decidim::Admin::ParticipatorySpace::UserRoleController
9
9
  include Concerns::AssemblyAdmin
10
- include Decidim::Admin::Officializations::Filterable
11
10
 
12
- def index
13
- enforce_permission_to :index, :assembly_user_role
14
- @assembly_user_roles = filtered_collection
15
- end
11
+ def authorization_scope = :assembly_user_role
16
12
 
17
- def new
18
- enforce_permission_to :create, :assembly_user_role
19
- @form = form(AssemblyUserRoleForm).instance
20
- end
13
+ def resource_form = form(AssemblyUserRoleForm)
21
14
 
22
- def create
23
- enforce_permission_to :create, :assembly_user_role
24
- @form = form(AssemblyUserRoleForm).from_params(params)
15
+ def space_index_path = assembly_user_roles_path(current_participatory_space)
25
16
 
26
- CreateAssemblyAdmin.call(@form, current_user, current_assembly) do
27
- on(:ok) do
28
- flash[:notice] = I18n.t("assembly_user_roles.create.success", scope: "decidim.admin")
29
- redirect_to assembly_user_roles_path(current_assembly)
30
- end
17
+ def i18n_scope = "decidim.admin.assembly_user_roles"
31
18
 
32
- on(:invalid) do
33
- flash[:alert] = I18n.t("assembly_user_roles.create.error", scope: "decidim.admin")
34
- render :new
35
- end
36
- end
37
- end
19
+ def role_class = Decidim::AssemblyUserRole
38
20
 
39
- def edit
40
- @user_role = collection.find(params[:id])
41
- enforce_permission_to :update, :assembly_user_role, user_role: @user_role
42
- @form = form(AssemblyUserRoleForm).from_model(@user_role.user)
43
- end
21
+ def event = "decidim.events.assembly.role_assigned"
44
22
 
45
- def update
46
- @user_role = collection.find(params[:id])
47
- enforce_permission_to :update, :assembly_user_role, user_role: @user_role
48
- @form = form(AssemblyUserRoleForm).from_params(params)
49
-
50
- UpdateAssemblyAdmin.call(@form, @user_role) do
51
- on(:ok) do
52
- flash[:notice] = I18n.t("assembly_user_roles.update.success", scope: "decidim.admin")
53
- redirect_to assembly_user_roles_path(current_assembly)
54
- end
55
-
56
- on(:invalid) do
57
- flash.now[:alert] = I18n.t("assembly_user_roles.update.error", scope: "decidim.admin")
58
- render :edit
59
- end
60
- end
61
- end
62
-
63
- def destroy
64
- @assembly_user_role = collection.find(params[:id])
65
- enforce_permission_to :destroy, :assembly_user_role, user_role: @assembly_user_role
66
-
67
- DestroyAssemblyAdmin.call(@assembly_user_role, current_user) do
68
- on(:ok) do
69
- flash[:notice] = I18n.t("assembly_user_roles.destroy.success", scope: "decidim.admin")
70
- redirect_to assembly_user_roles_path(current_assembly)
71
- end
72
- end
73
- end
74
-
75
- def resend_invitation
76
- @user_role = collection.find(params[:id])
77
- enforce_permission_to :invite, :assembly_user_role, user_role: @user_role
78
-
79
- InviteUserAgain.call(@user_role.user, "invite_admin") do
80
- on(:ok) do
81
- flash[:notice] = I18n.t("users.resend_invitation.success", scope: "decidim.admin")
82
- end
83
-
84
- on(:invalid) do
85
- flash[:alert] = I18n.t("users.resend_invitation.error", scope: "decidim.admin")
86
- end
87
- end
88
-
89
- redirect_to assembly_user_roles_path(current_assembly)
90
- end
91
-
92
- private
93
-
94
- def search_field_predicate
95
- :name_or_nickname_or_email_cont
96
- end
97
-
98
- def filters
99
- [:invitation_accepted_at_present, :last_sign_in_at_present]
100
- end
101
-
102
- def collection
103
- @collection ||= Decidim::AssemblyUserRole
104
- .joins(:user)
105
- .where(assembly: current_assembly)
106
- end
23
+ def event_class = Decidim::RoleAssignedToAssemblyEvent
107
24
  end
108
25
  end
109
26
  end
@@ -36,7 +36,7 @@ module Decidim
36
36
  end
37
37
 
38
38
  def permissions_context
39
- super.merge(current_participatory_space: current_participatory_space)
39
+ super.merge(current_participatory_space:)
40
40
  end
41
41
 
42
42
  def permission_class_chain
@@ -5,10 +5,15 @@ module Decidim
5
5
  # A controller that holds the logic to show Assemblies in a public layout.
6
6
  class AssembliesController < Decidim::Assemblies::ApplicationController
7
7
  include ParticipatorySpaceContext
8
+ include AssemblyBreadcrumb
9
+
8
10
  participatory_space_layout only: :show
11
+
9
12
  include FilterResource
13
+ include Paginable
14
+ include HasParticipatorySpaceContentBlocks
10
15
 
11
- helper_method :parent_assemblies, :promoted_assemblies, :stats, :assembly_participatory_processes, :current_assemblies_settings
16
+ helper_method :collection, :parent_assemblies, :promoted_assemblies, :stats, :assembly_participatory_processes
12
17
 
13
18
  def index
14
19
  enforce_permission_to :list, :assembly
@@ -54,9 +59,9 @@ module Decidim
54
59
 
55
60
  def default_filter_params
56
61
  {
57
- with_scope: nil,
58
- with_area: nil,
59
- type_id_eq: nil
62
+ with_any_scope: nil,
63
+ with_any_area: nil,
64
+ with_any_type: nil
60
65
  }
61
66
  end
62
67
 
@@ -80,6 +85,10 @@ module Decidim
80
85
  search.result.parent_assemblies.order(weight: :asc, promoted: :desc)
81
86
  end
82
87
 
88
+ def collection
89
+ @collection ||= paginate(Kaminari.paginate_array(parent_assemblies))
90
+ end
91
+
83
92
  def stats
84
93
  @stats ||= AssemblyStatsPresenter.new(assembly: current_participatory_space)
85
94
  end
@@ -87,10 +96,6 @@ module Decidim
87
96
  def assembly_participatory_processes
88
97
  @assembly_participatory_processes ||= @current_participatory_space.linked_participatory_space_resources(:participatory_processes, "included_participatory_processes")
89
98
  end
90
-
91
- def current_assemblies_settings
92
- @current_assemblies_settings ||= Decidim::AssembliesSetting.find_or_create_by(decidim_organization_id: current_organization.id)
93
- end
94
99
  end
95
100
  end
96
101
  end
@@ -4,6 +4,8 @@ module Decidim
4
4
  module Assemblies
5
5
  class AssemblyMembersController < Decidim::Assemblies::ApplicationController
6
6
  include ParticipatorySpaceContext
7
+ include AssemblyBreadcrumb
8
+
7
9
  participatory_space_layout only: :index
8
10
 
9
11
  helper_method :collection
@@ -1,4 +1,4 @@
1
- # frozen-string_literal: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
4
  class RoleAssignedToAssemblyEvent < Decidim::Events::SimpleEvent
@@ -15,12 +15,12 @@ module Decidim
15
15
 
16
16
  def i18n_options
17
17
  {
18
- resource_path: resource_path,
19
- resource_title: resource_title,
20
- resource_url: resource_url,
18
+ resource_path:,
19
+ resource_title:,
20
+ resource_url:,
21
21
  scope: event_name,
22
- participatory_space_title: participatory_space_title,
23
- participatory_space_url: participatory_space_url,
22
+ participatory_space_title:,
23
+ participatory_space_url:,
24
24
  role: i18n_role
25
25
  }
26
26
  end
@@ -24,7 +24,7 @@ module Decidim
24
24
  private
25
25
 
26
26
  def slug_uniqueness
27
- return unless OrganizationAssemblies.new(current_organization).query.where(slug: slug).where.not(id: id).any?
27
+ return unless OrganizationAssemblies.new(current_organization).query.where(slug:).where.not(id:).any?
28
28
 
29
29
  errors.add(:slug, :taken)
30
30
  end
@@ -149,7 +149,7 @@ module Decidim
149
149
 
150
150
  def slug_uniqueness
151
151
  return unless organization_assemblies
152
- .where(slug: slug)
152
+ .where(slug:)
153
153
  .where.not(id: context[:assembly_id])
154
154
  .any?
155
155
 
@@ -73,7 +73,7 @@ module Decidim
73
73
  private
74
74
 
75
75
  def slug_uniqueness
76
- return unless OrganizationAssemblies.new(current_organization).query.where(slug: slug).where.not(id: id).any?
76
+ return unless OrganizationAssemblies.new(current_organization).query.where(slug:).where.not(id:).any?
77
77
 
78
78
  errors.add(:slug, :taken)
79
79
  end
@@ -5,26 +5,10 @@ module Decidim
5
5
  module Admin
6
6
  # A form object used to create assembly user roles from the admin dashboard.
7
7
  #
8
- class AssemblyUserRoleForm < Form
8
+ class AssemblyUserRoleForm < Decidim::Admin::ParticipatorySpaceAdminUserForm
9
9
  mimic :assembly_user_role
10
10
 
11
- attribute :name, String
12
- attribute :email, String
13
- attribute :role, String
14
-
15
- validates :name, :email, :role, presence: true
16
- validates :role, inclusion: { in: Decidim::AssemblyUserRole::ROLES }
17
-
18
- validates :name, format: { with: UserBaseEntity::REGEXP_NAME }
19
-
20
- def roles
21
- Decidim::AssemblyUserRole::ROLES.map do |role|
22
- [
23
- I18n.t(role, scope: "decidim.admin.models.assembly_user_role.roles"),
24
- role
25
- ]
26
- end
27
- end
11
+ def scope = "decidim.admin.models.assembly_user_role.roles"
28
12
  end
29
13
  end
30
14
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ module Admin
6
+ module AssemblyMembersHelper
7
+ include Decidim::PaginateHelper
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Assemblies
5
+ # Custom helpers, scoped to the participatory processes engine.
6
+ #
7
+ module ApplicationHelper
8
+ include Decidim::ResourceHelper
9
+ include PaginateHelper
10
+ end
11
+ end
12
+ end