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
@@ -7,7 +7,6 @@ module Decidim
7
7
  include Decidim::ResourceHelper
8
8
  include Decidim::AttachmentsHelper
9
9
  include Decidim::IconHelper
10
- include Decidim::WidgetUrlsHelper
11
10
  include Decidim::SanitizeHelper
12
11
  include Decidim::ResourceReferenceHelper
13
12
  include Decidim::FiltersHelper
@@ -15,10 +14,11 @@ module Decidim
15
14
 
16
15
  # Public: Returns the characteristics of an assembly in a readable format like
17
16
  # "title: close, no public, no transparent and is restricted to the members of the assembly"
17
+ # deprecated
18
18
  def participatory_processes_for_assembly(assembly_participatory_processes)
19
19
  html = ""
20
20
  html += %( <div class="section"> ).html_safe
21
- html += %( <h4 class="section-heading">#{t("assemblies.show.related_participatory_processes", scope: "decidim")}</h4> ).html_safe
21
+ html += %( <h4>#{t("assemblies.show.related_participatory_processes", scope: "decidim")}</h4> ).html_safe
22
22
  html += %( <div class="row small-up-1 medium-up-2 card-grid"> ).html_safe
23
23
  assembly_participatory_processes.each do |assembly_participatory_process|
24
24
  html += render partial: "decidim/participatory_processes/participatory_process", locals: { participatory_process: assembly_participatory_process }
@@ -38,24 +38,26 @@ module Decidim
38
38
  html.html_safe
39
39
  end
40
40
 
41
- def social_handler_links(assembly)
42
- html = "".html_safe
43
- if Decidim::Assembly::SOCIAL_HANDLERS.any? { |h| assembly.try("#{h}_handler").present? }
44
- html += "<div class='definition-data__item social_networks'>".html_safe
45
- html += "<span class='definition-data__title'>#{t("assemblies.show.social_networks", scope: "decidim")}</span>".html_safe
46
- Decidim::Assembly::SOCIAL_HANDLERS.each do |handler|
47
- handler_name = "#{handler}_handler"
48
- next if assembly.send(handler_name).blank?
41
+ # Items to display in the navigation of an assembly
42
+ def assembly_nav_items(participatory_space)
43
+ components = participatory_space.components.published.or(Decidim::Component.where(id: try(:current_component)))
49
44
 
50
- html += link_to handler.capitalize, "https://#{handler}.com/#{assembly.send(handler_name)}",
51
- target: "_blank",
52
- class: "",
53
- title: t("assemblies.show.social_networks_title", scope: "decidim") << " " << handler.capitalize.to_s, rel: "noopener"
54
- end
55
- html += "</div>".html_safe
45
+ [
46
+ *(if participatory_space.members.not_ceased.any?
47
+ [{
48
+ name: t("assembly_member_menu_item", scope: "layouts.decidim.assembly_navigation"),
49
+ url: decidim_assemblies.assembly_assembly_members_path(participatory_space),
50
+ active: is_active_link?(decidim_assemblies.assembly_assembly_members_path(participatory_space), :inclusive)
51
+ }]
52
+ end
53
+ )
54
+ ] + components.map do |component|
55
+ {
56
+ name: translated_attribute(component.name),
57
+ url: main_component_path(component),
58
+ active: is_active_link?(main_component_path(component), :inclusive)
59
+ }
56
60
  end
57
-
58
- html.html_safe
59
61
  end
60
62
  end
61
63
  end
@@ -2,44 +2,29 @@
2
2
 
3
3
  module Decidim
4
4
  module Assemblies
5
- # Helpers related to the Assemblies filter by type.
6
- #
7
- # `filter` returns a Filter object from Decidim::FilterResource
5
+ # Helpers related to the Assemblies filters.
8
6
  module FilterAssembliesHelper
9
- def available_filters
10
- return if organization_assembly_types.blank?
7
+ include Decidim::CheckBoxesTreeHelper
11
8
 
12
- [t("all", scope: "decidim.assemblies.filter")] + organization_assembly_types
9
+ def assembly_types
10
+ @assembly_types ||= AssembliesType.where(organization: current_organization).joins(:assemblies).distinct
13
11
  end
14
12
 
15
- def filter_link(type_id)
16
- Decidim::Assemblies::Engine
17
- .routes
18
- .url_helpers
19
- .assemblies_path(
20
- filter: {
21
- with_scope: filter.with_scope,
22
- with_area: filter.with_area,
23
- type_id_eq: type_id
24
- }
25
- )
26
- end
27
-
28
- def help_text
29
- t("help", scope: "decidim.assemblies.filter")
30
- end
13
+ def filter_types_values
14
+ return if assembly_types.blank?
31
15
 
32
- def current_filter_name
33
- type = AssembliesType.find_by(id: filter_params[:type_id_eq])
34
- return translated_attribute type.title if type
16
+ type_values = assembly_types.map { |type| [type.id.to_s, translated_attribute(type.title)] }
17
+ type_values.prepend(["", t("decidim.assemblies.assemblies.filters.names.all")])
35
18
 
36
- t("all", scope: "decidim.assemblies.filter")
19
+ filter_tree_from_array(type_values)
37
20
  end
38
21
 
39
- def organization_assembly_types
40
- @organization_assembly_types ||= AssembliesType.where(organization: current_organization).joins(:assemblies).where(
41
- decidim_assemblies: { id: search.result.unscope(where: :decidim_assemblies_type_id).parent_assemblies }
42
- ).distinct&.map { |type| [translated_attribute(type.title), type.id] }
22
+ def filter_sections
23
+ [
24
+ { method: :with_any_scope, collection: filter_global_scopes_values, label_scope: "decidim.shared.participatory_space_filters.filters", id: "scope" },
25
+ { method: :with_any_area, collection: filter_areas_values, label_scope: "decidim.shared.participatory_space_filters.filters", id: "area" },
26
+ { method: :with_any_type, collection: filter_types_values, label_scope: "decidim.assemblies.assemblies.filters", id: "type" }
27
+ ].reject { |item| item[:collection].blank? }
43
28
  end
44
29
  end
45
30
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  # Interaction between a user and an organization can be done via an Assembly.
5
- # It's a unit of action from the Organization point of view that groups
5
+ # It is a unit of action from the Organization point of view that groups
6
6
  # several components (proposals, debates...) that can be enabled or disabled.
7
7
  #
8
8
  # An assembly can have children. This is implemented using a PostgreSQL extension: LTREE
@@ -37,7 +37,6 @@ module Decidim
37
37
  include Decidim::HasArea
38
38
  include Decidim::FilterableResource
39
39
 
40
- SOCIAL_HANDLERS = [:twitter, :facebook, :instagram, :youtube, :github].freeze
41
40
  CREATED_BY = %w(city_council public others).freeze
42
41
 
43
42
  translatable_fields :title, :subtitle, :short_description, :description, :developer_group, :meta_scope, :local_area,
@@ -83,6 +82,8 @@ module Decidim
83
82
  after_create :set_parents_path
84
83
  after_update :set_parents_path, :update_children_paths, if: :saved_change_to_parent_id?
85
84
 
85
+ scope :with_any_type, ->(*type_ids) { where(decidim_assemblies_type_id: type_ids) }
86
+
86
87
  searchable_fields({
87
88
  scope_id: :decidim_scope_id,
88
89
  participatory_space: :itself,
@@ -134,7 +135,7 @@ module Decidim
134
135
  end
135
136
 
136
137
  def ancestors
137
- self_and_ancestors.where.not(id: id)
138
+ self_and_ancestors.where.not(id:)
138
139
  end
139
140
 
140
141
  def translated_title
@@ -159,7 +160,7 @@ module Decidim
159
160
  end
160
161
 
161
162
  def self.ransackable_scopes(_auth_object = nil)
162
- [:with_area, :with_scope]
163
+ [:with_any_area, :with_any_scope, :with_any_type]
163
164
  end
164
165
 
165
166
  private
@@ -206,7 +207,7 @@ module Decidim
206
207
  # rubocop:disable Rails/SkipsModelValidations
207
208
  def update_children_paths
208
209
  self.class.where(
209
- ["#{self.class.table_name}.parents_path <@ :old_path AND #{self.class.table_name}.id != :id", { old_path: parents_path_before_last_save, id: id }]
210
+ ["#{self.class.table_name}.parents_path <@ :old_path AND #{self.class.table_name}.id != :id", { old_path: parents_path_before_last_save, id: }]
210
211
  ).update_all(
211
212
  ["parents_path = :new_path || subpath(parents_path, nlevel(:old_path))", { new_path: parents_path, old_path: parents_path_before_last_save }]
212
213
  )
@@ -6,46 +6,18 @@ module Decidim
6
6
  class AssemblyUserRole < ApplicationRecord
7
7
  include Traceable
8
8
  include Loggable
9
+ include ParticipatorySpaceUser
9
10
 
10
- belongs_to :user, foreign_key: "decidim_user_id", class_name: "Decidim::User", optional: true
11
11
  belongs_to :assembly, foreign_key: "decidim_assembly_id", class_name: "Decidim::Assembly", optional: true
12
12
  alias participatory_space assembly
13
13
 
14
- ROLES = %w(admin collaborator moderator valuator).freeze
15
- validates :role, inclusion: { in: ROLES }, uniqueness: { scope: [:user, :assembly] }
16
- validate :user_and_assembly_same_organization
14
+ scope :for_space, ->(participatory_space) { where(assembly: participatory_space) }
15
+
16
+ validates :role, inclusion: { in: ParticipatorySpaceUser::ROLES }, uniqueness: { scope: [:user, :assembly] }
17
+ def target_space_association = :assembly
17
18
 
18
19
  def self.log_presenter_class_for(_log)
19
20
  Decidim::Assemblies::AdminLog::AssemblyUserRolePresenter
20
21
  end
21
-
22
- ransacker :name do
23
- Arel.sql(%{("decidim_users"."name")::text})
24
- end
25
-
26
- ransacker :nickname do
27
- Arel.sql(%{("decidim_users"."nickname")::text})
28
- end
29
-
30
- ransacker :email do
31
- Arel.sql(%{("decidim_users"."email")::text})
32
- end
33
-
34
- ransacker :invitation_accepted_at do
35
- Arel.sql(%{("decidim_users"."invitation_accepted_at")::text})
36
- end
37
-
38
- ransacker :last_sign_in_at do
39
- Arel.sql(%{("decidim_users"."last_sign_in_at")::text})
40
- end
41
-
42
- private
43
-
44
- # Private: check if the process and the user have the same organization
45
- def user_and_assembly_same_organization
46
- return if !assembly || !user
47
-
48
- errors.add(:assembly, :invalid) unless user.organization == assembly.organization
49
- end
50
22
  end
51
23
  end
@@ -1,5 +1,4 @@
1
1
  import "src/decidim/assemblies/assemblies"
2
- import "src/decidim/assemblies/orgchart"
3
2
 
4
3
  // Images
5
4
  require.context("../images", true)
@@ -5,9 +5,9 @@ $(() => {
5
5
  if ($(".edit_assembly, .new_assembly").length > 0) {
6
6
  $assemblyScopeEnabled.on("change", (event) => {
7
7
  const checked = event.target.checked;
8
- window.theDataPicker.enabled($assemblyScopeId, checked);
8
+ $assemblyScopeId.attr("disabled", !checked);
9
9
  })
10
- window.theDataPicker.enabled($assemblyScopeId, $assemblyScopeEnabled.prop("checked"));
10
+ $assemblyScopeId.attr("disabled", !$assemblyScopeEnabled.prop("checked"));
11
11
  }
12
12
 
13
13
  const $form = $(".assembly_form_admin");