decidim-assemblies 0.27.5 → 0.28.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/assemblies/assemblies/show.erb +16 -0
- data/app/cells/decidim/assemblies/assemblies_cell.rb +24 -0
- data/app/cells/decidim/assemblies/assembly_cell.rb +7 -2
- data/app/cells/decidim/assemblies/assembly_dropdown_metadata_cell.rb +19 -0
- data/app/cells/decidim/assemblies/assembly_g_cell.rb +23 -0
- data/app/cells/decidim/assemblies/assembly_member/data.erb +19 -0
- data/app/cells/decidim/assemblies/assembly_member/name_and_position.erb +11 -0
- data/app/cells/decidim/assemblies/assembly_member/show.erb +8 -52
- data/app/cells/decidim/assemblies/assembly_metadata_g_cell.rb +46 -0
- data/app/cells/decidim/assemblies/assembly_s_cell.rb +15 -0
- data/app/cells/decidim/assemblies/content_block_cell.rb +21 -0
- data/app/cells/decidim/assemblies/content_blocks/children_assemblies_cell.rb +27 -0
- data/app/cells/decidim/assemblies/content_blocks/dates_metadata_cell.rb +23 -0
- data/app/cells/decidim/assemblies/content_blocks/extra_data_cell.rb +39 -0
- data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_cell.rb +15 -23
- data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +1 -1
- data/app/cells/decidim/assemblies/content_blocks/main_data_cell.rb +52 -0
- data/app/cells/decidim/assemblies/content_blocks/metadata_cell.rb +23 -0
- data/app/cells/decidim/assemblies/content_blocks/related_assemblies/content.erb +1 -0
- data/app/cells/decidim/assemblies/content_blocks/related_assemblies_cell.rb +34 -0
- data/app/cells/decidim/assemblies/content_blocks/stats_cell.rb +15 -0
- data/app/commands/decidim/assemblies/admin/copy_assembly.rb +2 -2
- data/app/commands/decidim/assemblies/admin/create_assemblies_type.rb +1 -1
- data/app/commands/decidim/assemblies/admin/create_assembly.rb +2 -1
- data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +3 -3
- data/app/commands/decidim/assemblies/admin/destroy_assemblies_type.rb +1 -1
- data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +1 -1
- data/app/commands/decidim/assemblies/admin/import_assembly.rb +1 -1
- data/app/commands/decidim/assemblies/admin/update_assemblies_type.rb +1 -1
- data/app/commands/decidim/assemblies/admin/update_assembly.rb +1 -1
- data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +1 -1
- data/app/constraints/decidim/assemblies/current_assembly.rb +1 -1
- data/app/controllers/concerns/decidim/assemblies/admin/assembly_context.rb +1 -1
- data/app/controllers/concerns/decidim/assemblies/admin/assembly_members/filterable.rb +39 -0
- data/app/controllers/concerns/decidim/assemblies/assembly_breadcrumb.rb +36 -0
- data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +1 -0
- data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assembly_attachment_collections_controller.rb +5 -0
- data/app/controllers/decidim/assemblies/admin/assembly_attachments_controller.rb +5 -0
- data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +2 -0
- data/app/controllers/decidim/assemblies/admin/assembly_landing_page_content_blocks_controller.rb +35 -0
- data/app/controllers/decidim/assemblies/admin/assembly_landing_page_controller.rb +37 -0
- data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +2 -6
- data/app/controllers/decidim/assemblies/admin/assembly_publications_controller.rb +9 -29
- data/app/controllers/decidim/assemblies/admin/assembly_user_roles_controller.rb +8 -91
- data/app/controllers/decidim/assemblies/admin/concerns/assembly_admin.rb +1 -1
- data/app/controllers/decidim/assemblies/assemblies_controller.rb +12 -7
- data/app/controllers/decidim/assemblies/assembly_members_controller.rb +2 -0
- data/app/events/decidim/role_assigned_to_assembly_event.rb +6 -6
- data/app/forms/decidim/assemblies/admin/assembly_copy_form.rb +1 -1
- data/app/forms/decidim/assemblies/admin/assembly_form.rb +1 -1
- data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +1 -1
- data/app/forms/decidim/assemblies/admin/assembly_user_role_form.rb +2 -18
- data/app/helpers/decidim/assemblies/admin/assembly_members_helper.rb +11 -0
- data/app/helpers/decidim/assemblies/application_helper.rb +12 -0
- data/app/helpers/decidim/assemblies/assemblies_helper.rb +20 -18
- data/app/helpers/decidim/assemblies/filter_assemblies_helper.rb +15 -30
- data/app/models/decidim/assembly.rb +6 -5
- data/app/models/decidim/assembly_user_role.rb +5 -33
- data/app/packs/entrypoints/decidim_assemblies.js +0 -1
- data/app/packs/src/decidim/assemblies/admin/assemblies.js +2 -2
- data/app/packs/src/decidim/assemblies/orgchart.js +0 -701
- data/app/permissions/decidim/assemblies/permissions.rb +14 -15
- data/app/presenters/decidim/assemblies/admin_log/assemblies_setting_presenter.rb +2 -2
- data/app/presenters/decidim/assemblies/admin_log/assemblies_type_presenter.rb +2 -2
- data/app/presenters/decidim/assemblies/admin_log/assembly_member_presenter.rb +2 -2
- data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +2 -2
- data/app/presenters/decidim/assemblies/admin_log/assembly_user_role_presenter.rb +2 -2
- data/app/presenters/decidim/assemblies/assembly_presenter.rb +38 -0
- data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +2 -41
- data/app/presenters/decidim/assembly_member_presenter.rb +18 -4
- data/app/queries/decidim/assemblies/admin/admin_users.rb +1 -1
- data/app/queries/decidim/assemblies/assemblies_with_user_role.rb +2 -2
- data/app/serializers/decidim/assemblies/assembly_importer.rb +3 -3
- data/app/serializers/decidim/assemblies/assembly_serializer.rb +1 -1
- data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +218 -176
- data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +25 -11
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +105 -115
- data/app/views/decidim/assemblies/admin/assemblies/new.html.erb +16 -9
- data/app/views/decidim/assemblies/admin/assemblies_types/_form.html.erb +6 -8
- data/app/views/decidim/assemblies/admin/assemblies_types/edit.html.erb +11 -5
- data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +34 -35
- data/app/views/decidim/assemblies/admin/assemblies_types/new.html.erb +16 -6
- data/app/views/decidim/assemblies/admin/assembly_copies/_form.html.erb +12 -20
- data/app/views/decidim/assemblies/admin/assembly_copies/new.html.erb +17 -5
- data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +28 -37
- data/app/views/decidim/assemblies/admin/assembly_imports/new.html.erb +17 -5
- data/app/views/decidim/assemblies/admin/assembly_members/_form.html.erb +45 -49
- data/app/views/decidim/assemblies/admin/assembly_members/edit.html.erb +17 -6
- data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +51 -88
- data/app/views/decidim/assemblies/admin/assembly_members/new.html.erb +17 -6
- data/app/views/decidim/assemblies/admin/assembly_user_roles/_form.html.erb +14 -18
- data/app/views/decidim/assemblies/admin/assembly_user_roles/edit.html.erb +17 -6
- data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +54 -55
- data/app/views/decidim/assemblies/admin/assembly_user_roles/new.html.erb +17 -6
- data/app/views/decidim/assemblies/assemblies/_collection.html.erb +7 -0
- data/app/views/decidim/assemblies/assemblies/index.html.erb +20 -19
- data/app/views/decidim/assemblies/assemblies/index.js.erb +1 -8
- data/app/views/decidim/assemblies/assemblies/show.html.erb +17 -207
- data/app/views/decidim/assemblies/assembly_members/index.html.erb +7 -5
- data/app/views/decidim/assemblies/pages/user_profile/_member_of.html.erb +6 -9
- data/app/views/layouts/decidim/admin/_manage_assemblies.html.erb +36 -0
- data/app/views/layouts/decidim/admin/assemblies.html.erb +13 -11
- data/app/views/layouts/decidim/admin/assemblies_imports.html.erb +9 -0
- data/app/views/layouts/decidim/admin/assemblies_types.html.erb +17 -0
- data/app/views/layouts/decidim/admin/assembly.html.erb +12 -13
- data/app/views/layouts/decidim/assembly.html.erb +7 -14
- data/config/locales/ar.yml +6 -67
- data/config/locales/bg.yml +0 -4
- data/config/locales/ca.yml +57 -66
- data/config/locales/cs.yml +59 -66
- data/config/locales/de.yml +57 -66
- data/config/locales/el.yml +10 -61
- data/config/locales/en.yml +57 -66
- data/config/locales/es-MX.yml +57 -66
- data/config/locales/es-PY.yml +57 -66
- data/config/locales/es.yml +57 -66
- data/config/locales/eu.yml +56 -69
- data/config/locales/fi-plain.yml +57 -66
- data/config/locales/fi.yml +57 -66
- data/config/locales/fr-CA.yml +57 -66
- data/config/locales/fr.yml +57 -66
- data/config/locales/ga-IE.yml +4 -15
- data/config/locales/gl.yml +3 -62
- data/config/locales/hu.yml +33 -63
- data/config/locales/id-ID.yml +4 -46
- data/config/locales/is-IS.yml +4 -40
- data/config/locales/it.yml +4 -62
- data/config/locales/ja.yml +51 -66
- data/config/locales/kaa.yml +0 -8
- data/config/locales/lb.yml +4 -60
- data/config/locales/lt.yml +39 -63
- data/config/locales/lv.yml +4 -57
- data/config/locales/nl.yml +3 -62
- data/config/locales/no.yml +4 -62
- data/config/locales/pl.yml +3 -89
- data/config/locales/pt-BR.yml +27 -70
- data/config/locales/pt.yml +4 -62
- data/config/locales/ro-RO.yml +19 -63
- data/config/locales/ru.yml +4 -44
- data/config/locales/sk.yml +0 -25
- data/config/locales/sl.yml +4 -48
- data/config/locales/sr-CS.yml +0 -5
- data/config/locales/sv.yml +17 -62
- data/config/locales/tr-TR.yml +6 -68
- data/config/locales/uk.yml +4 -44
- data/config/locales/zh-CN.yml +4 -60
- data/config/locales/zh-TW.yml +5 -62
- data/db/migrate/20200108123050_migrate_decidim_assembly_types.rb +1 -1
- data/lib/decidim/api/assemblies_type_type.rb +1 -1
- data/lib/decidim/api/assembly_member_type.rb +1 -1
- data/lib/decidim/api/assembly_type.rb +1 -1
- data/lib/decidim/assemblies/admin_engine.rb +21 -126
- data/lib/decidim/assemblies/content_blocks/registry_manager.rb +184 -0
- data/lib/decidim/assemblies/engine.rb +15 -21
- data/lib/decidim/assemblies/menu.rb +161 -0
- data/lib/decidim/assemblies/participatory_space.rb +7 -229
- data/lib/decidim/assemblies/query_extensions.rb +6 -6
- data/lib/decidim/assemblies/seeds.rb +161 -0
- data/lib/decidim/assemblies/test/factories.rb +22 -11
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +53 -49
- data/app/cells/decidim/assemblies/assembly_m/footer.erb +0 -15
- data/app/cells/decidim/assemblies/assembly_m/tags.erb +0 -1
- data/app/cells/decidim/assemblies/assembly_m_cell.rb +0 -77
- data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies/show.erb +0 -30
- data/app/commands/decidim/assemblies/admin/create_assembly_admin.rb +0 -54
- data/app/commands/decidim/assemblies/admin/destroy_assembly_admin.rb +0 -58
- data/app/commands/decidim/assemblies/admin/notify_role_assigned_to_assembly.rb +0 -22
- data/app/commands/decidim/assemblies/admin/publish_assembly.rb +0 -39
- data/app/commands/decidim/assemblies/admin/unpublish_assembly.rb +0 -39
- data/app/commands/decidim/assemblies/admin/update_assemblies_setting.rb +0 -46
- data/app/commands/decidim/assemblies/admin/update_assembly_admin.rb +0 -53
- data/app/controllers/decidim/assemblies/admin/assemblies_settings_controller.rb +0 -49
- data/app/controllers/decidim/assemblies/widgets_controller.rb +0 -23
- data/app/forms/decidim/assemblies/admin/assemblies_setting_form.rb +0 -14
- data/app/models/decidim/assemblies_setting.rb +0 -17
- data/app/queries/decidim/assemblies/admin/assembly_members.rb +0 -56
- data/app/views/decidim/assemblies/_filter_by_type.html.erb +0 -19
- data/app/views/decidim/assemblies/admin/assemblies_settings/_form.html.erb +0 -10
- data/app/views/decidim/assemblies/admin/assemblies_settings/edit.html.erb +0 -7
- data/app/views/decidim/assemblies/assemblies/_count.html.erb +0 -1
- data/app/views/decidim/assemblies/assemblies/_nav_breadcumb.html.erb +0 -11
- data/app/views/decidim/assemblies/assemblies/_parent_assemblies.html.erb +0 -15
- data/app/views/decidim/assemblies/assemblies/_promoted_assembly.html.erb +0 -27
- data/app/views/layouts/decidim/_assembly_header.html.erb +0 -27
- data/app/views/layouts/decidim/_assembly_navigation.html.erb +0 -24
- data/app/views/layouts/decidim/admin/assembly_members.html.erb +0 -18
- data/config/environment.rb +0 -3
- data/db/seeds/Exampledocument.pdf +0 -0
- data/db/seeds/city.jpeg +0 -0
- data/db/seeds/city2.jpeg +0 -0
- data/db/seeds/homepage_image.jpg +0 -0
@@ -5,6 +5,8 @@ require "active_support/all"
|
|
5
5
|
|
6
6
|
require "decidim/core"
|
7
7
|
require "decidim/assemblies/query_extensions"
|
8
|
+
require "decidim/assemblies/content_blocks/registry_manager"
|
9
|
+
require "decidim/assemblies/menu"
|
8
10
|
|
9
11
|
module Decidim
|
10
12
|
module Assemblies
|
@@ -25,7 +27,6 @@ module Decidim
|
|
25
27
|
|
26
28
|
resources :assemblies, only: [:index, :show], param: :slug, path: "assemblies" do
|
27
29
|
resources :assembly_members, only: :index, path: "members"
|
28
|
-
resource :widget, only: :show, path: "embed"
|
29
30
|
end
|
30
31
|
|
31
32
|
scope "/assemblies/:assembly_slug/f/:component_id" do
|
@@ -39,26 +40,27 @@ module Decidim
|
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
43
|
+
initializer "decidim_assemblies.register_icons" do
|
44
|
+
Decidim.icons.register(name: "Decidim::Assembly", icon: "government-line", description: "Assembly", category: "activity", engine: :assemblies)
|
45
|
+
Decidim.icons.register(name: "assembly_type", icon: "group-2-line", description: "Type", category: "assemblies", engine: :assemblies)
|
46
|
+
|
47
|
+
Decidim.icons.register(name: "group-2-line", icon: "group-2-line", category: "system", description: "", engine: :assemblies)
|
48
|
+
end
|
49
|
+
|
42
50
|
initializer "decidim_assemblies.add_cells_view_paths" do
|
43
51
|
Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Assemblies::Engine.root}/app/cells")
|
44
52
|
Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Assemblies::Engine.root}/app/views") # for partials
|
45
53
|
end
|
46
54
|
|
47
|
-
initializer "
|
55
|
+
initializer "decidim_assemblies.stats" do
|
48
56
|
Decidim.stats.register :assemblies_count, priority: StatsRegistry::HIGH_PRIORITY do |organization, _start_at, _end_at|
|
49
|
-
Decidim::Assembly.where(organization:
|
57
|
+
Decidim::Assembly.where(organization:).public_spaces.count
|
50
58
|
end
|
51
59
|
end
|
52
60
|
|
53
61
|
initializer "decidim_assemblies.menu" do
|
54
|
-
Decidim.
|
55
|
-
|
56
|
-
I18n.t("menu.assemblies", scope: "decidim"),
|
57
|
-
decidim_assemblies.assemblies_path,
|
58
|
-
position: 2.2,
|
59
|
-
if: OrganizationPublishedAssemblies.new(current_organization, current_user).any?,
|
60
|
-
active: :inclusive
|
61
|
-
end
|
62
|
+
Decidim::Assemblies::Menu.register_menu!
|
63
|
+
Decidim::Assemblies::Menu.register_home_content_block_menu!
|
62
64
|
end
|
63
65
|
|
64
66
|
initializer "decidim_assemblies.view_hooks" do
|
@@ -77,22 +79,14 @@ module Decidim
|
|
77
79
|
view_context.render(
|
78
80
|
partial: "decidim/assemblies/pages/user_profile/member_of",
|
79
81
|
locals: {
|
80
|
-
assemblies:
|
82
|
+
assemblies:
|
81
83
|
}
|
82
84
|
)
|
83
85
|
end
|
84
86
|
end
|
85
87
|
|
86
88
|
initializer "decidim_assemblies.content_blocks" do
|
87
|
-
Decidim.
|
88
|
-
content_block.cell = "decidim/assemblies/content_blocks/highlighted_assemblies"
|
89
|
-
content_block.public_name_key = "decidim.assemblies.content_blocks.highlighted_assemblies.name"
|
90
|
-
content_block.settings_form_cell = "decidim/assemblies/content_blocks/highlighted_assemblies_settings_form"
|
91
|
-
|
92
|
-
content_block.settings do |settings|
|
93
|
-
settings.attribute :max_results, type: :integer, default: 4
|
94
|
-
end
|
95
|
-
end
|
89
|
+
Decidim::Assemblies::ContentBlocks::RegistryManager.register!
|
96
90
|
end
|
97
91
|
|
98
92
|
initializer "decidim_assemblies.register_metrics" do
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Assemblies
|
5
|
+
class Menu
|
6
|
+
def self.register_menu!
|
7
|
+
Decidim.menu :menu do |menu|
|
8
|
+
menu.add_item :assemblies,
|
9
|
+
I18n.t("menu.assemblies", scope: "decidim"),
|
10
|
+
decidim_assemblies.assemblies_path,
|
11
|
+
position: 2.2,
|
12
|
+
if: OrganizationPublishedAssemblies.new(current_organization, current_user).any?,
|
13
|
+
active: :inclusive
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.register_home_content_block_menu!
|
18
|
+
Decidim.menu :home_content_block_menu do |menu|
|
19
|
+
menu.add_item :assemblies,
|
20
|
+
I18n.t("menu.assemblies", scope: "decidim"),
|
21
|
+
decidim_assemblies.assemblies_path,
|
22
|
+
position: 20,
|
23
|
+
if: OrganizationPublishedAssemblies.new(current_organization, current_user).any?,
|
24
|
+
active: :inclusive
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.register_admin_menu_modules!
|
29
|
+
Decidim.menu :admin_menu_modules do |menu|
|
30
|
+
menu.add_item :assemblies,
|
31
|
+
I18n.t("menu.assemblies", scope: "decidim.admin"),
|
32
|
+
decidim_admin_assemblies.assemblies_path,
|
33
|
+
icon_name: "government-line",
|
34
|
+
position: 2.2,
|
35
|
+
active: is_active_link?(decidim_admin_assemblies.assemblies_path) ||
|
36
|
+
is_active_link?(decidim_admin_assemblies.assemblies_types_path),
|
37
|
+
if: allowed_to?(:enter, :space_area, space_name: :assemblies)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.register_assemblies_admin_attachments_menu!
|
42
|
+
Decidim.menu :assemblies_admin_attachments_menu do |menu|
|
43
|
+
menu.add_item :assembly_attachments,
|
44
|
+
I18n.t("attachment_files", scope: "decidim.admin.menu.assemblies_submenu"),
|
45
|
+
decidim_admin_assemblies.assembly_attachments_path(current_participatory_space),
|
46
|
+
active: is_active_link?(decidim_admin_assemblies.assembly_attachments_path(current_participatory_space)),
|
47
|
+
if: allowed_to?(:read, :attachment, assembly: current_participatory_space),
|
48
|
+
icon_name: "attachment-line"
|
49
|
+
menu.add_item :assembly_attachment_collections,
|
50
|
+
I18n.t("attachment_collections", scope: "decidim.admin.menu.assemblies_submenu"),
|
51
|
+
decidim_admin_assemblies.assembly_attachment_collections_path(current_participatory_space),
|
52
|
+
active: is_active_link?(decidim_admin_assemblies.assembly_attachment_collections_path(current_participatory_space)),
|
53
|
+
if: allowed_to?(:read, :attachment_collection, assembly: current_participatory_space),
|
54
|
+
icon_name: "folder-line"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.register_admin_assemblies_components_menu!
|
59
|
+
Decidim.menu :admin_assemblies_components_menu do |menu|
|
60
|
+
current_participatory_space.components.each do |component|
|
61
|
+
caption = translated_attribute(component.name)
|
62
|
+
if component.primary_stat.present?
|
63
|
+
caption += content_tag(:span, component.primary_stat, class: component.primary_stat.zero? ? "component-counter component-counter--off" : "component-counter")
|
64
|
+
end
|
65
|
+
|
66
|
+
menu.add_item [component.manifest_name, component.id].join("_"),
|
67
|
+
caption.html_safe,
|
68
|
+
manage_component_path(component),
|
69
|
+
active: is_active_link?(manage_component_path(component)) ||
|
70
|
+
is_active_link?(decidim_admin_assemblies.edit_component_path(current_participatory_space, component)) ||
|
71
|
+
is_active_link?(decidim_admin_assemblies.edit_component_permissions_path(current_participatory_space, component)) ||
|
72
|
+
participatory_space_active_link?(component),
|
73
|
+
if: component.manifest.admin_engine && user_role_config.component_is_accessible?(component.manifest_name)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.register_admin_assembly_menu!
|
79
|
+
Decidim.menu :admin_assembly_menu do |menu|
|
80
|
+
menu.add_item :edit_assembly,
|
81
|
+
I18n.t("info", scope: "decidim.admin.menu.assemblies_submenu"),
|
82
|
+
decidim_admin_assemblies.edit_assembly_path(current_participatory_space),
|
83
|
+
position: 1,
|
84
|
+
icon_name: "information-line",
|
85
|
+
if: allowed_to?(:update, :assembly, assembly: current_participatory_space)
|
86
|
+
|
87
|
+
menu.add_item :edit_assembly_landing_page,
|
88
|
+
I18n.t("landing_page", scope: "decidim.admin.menu.assemblies_submenu"),
|
89
|
+
decidim_admin_assemblies.edit_assembly_landing_page_path(current_participatory_space),
|
90
|
+
icon_name: "layout-masonry-line",
|
91
|
+
if: allowed_to?(:update, :assembly, assembly: current_participatory_space)
|
92
|
+
|
93
|
+
menu.add_item :components,
|
94
|
+
I18n.t("components", scope: "decidim.admin.menu.assemblies_submenu"),
|
95
|
+
decidim_admin_assemblies.components_path(current_participatory_space),
|
96
|
+
icon_name: "tools-line",
|
97
|
+
active: is_active_link?(decidim_admin_assemblies.components_path(current_participatory_space), ["decidim/assemblies/admin/components", %w(index new edit)]),
|
98
|
+
if: allowed_to?(:read, :component, assembly: current_participatory_space),
|
99
|
+
submenu: { target_menu: :admin_assemblies_components_menu }
|
100
|
+
|
101
|
+
menu.add_item :categories,
|
102
|
+
I18n.t("categories", scope: "decidim.admin.menu.assemblies_submenu"),
|
103
|
+
decidim_admin_assemblies.categories_path(current_participatory_space),
|
104
|
+
icon_name: "price-tag-3-line",
|
105
|
+
if: allowed_to?(:read, :category, assembly: current_participatory_space)
|
106
|
+
|
107
|
+
menu.add_item :attachments,
|
108
|
+
I18n.t("attachments", scope: "decidim.admin.menu.assemblies_submenu"),
|
109
|
+
decidim_admin_assemblies.assembly_attachments_path(current_participatory_space),
|
110
|
+
icon_name: "attachment-2",
|
111
|
+
active: is_active_link?(decidim_admin_assemblies.assembly_attachments_path(current_participatory_space)) ||
|
112
|
+
is_active_link?(decidim_admin_assemblies.assembly_attachment_collections_path(current_participatory_space)),
|
113
|
+
if: allowed_to?(:read, :attachment_collection, assembly: current_participatory_space) ||
|
114
|
+
allowed_to?(:read, :attachment, assembly: current_participatory_space)
|
115
|
+
|
116
|
+
menu.add_item :assembly_members,
|
117
|
+
I18n.t("assembly_members", scope: "decidim.admin.menu.assemblies_submenu"),
|
118
|
+
decidim_admin_assemblies.assembly_members_path(current_participatory_space),
|
119
|
+
icon_name: "user-settings-line",
|
120
|
+
if: allowed_to?(:read, :assembly_member, assembly: current_participatory_space)
|
121
|
+
|
122
|
+
menu.add_item :assembly_user_roles,
|
123
|
+
I18n.t("assembly_admins", scope: "decidim.admin.menu.assemblies_submenu"),
|
124
|
+
decidim_admin_assemblies.assembly_user_roles_path(current_participatory_space),
|
125
|
+
icon_name: "user-settings-line",
|
126
|
+
if: allowed_to?(:read, :assembly_user_role, assembly: current_participatory_space)
|
127
|
+
|
128
|
+
menu.add_item :participatory_space_private_users,
|
129
|
+
I18n.t("private_users", scope: "decidim.admin.menu.assemblies_submenu"),
|
130
|
+
decidim_admin_assemblies.participatory_space_private_users_path(current_participatory_space),
|
131
|
+
icon_name: "spy-line",
|
132
|
+
if: allowed_to?(:read, :space_private_user, current_participatory_space:)
|
133
|
+
|
134
|
+
menu.add_item :moderations,
|
135
|
+
I18n.t("moderations", scope: "decidim.admin.menu.assemblies_submenu"),
|
136
|
+
decidim_admin_assemblies.moderations_path(current_participatory_space),
|
137
|
+
icon_name: "flag-line",
|
138
|
+
if: allowed_to?(:read, :moderation, assembly: current_participatory_space)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def self.register_admin_assemblies_menu!
|
143
|
+
Decidim.menu :admin_assemblies_menu do |menu|
|
144
|
+
menu.add_item :assemblies,
|
145
|
+
I18n.t("menu.assemblies", scope: "decidim.admin"),
|
146
|
+
decidim_admin_assemblies.assemblies_path,
|
147
|
+
position: 1.0,
|
148
|
+
active: is_active_link?(decidim_admin_assemblies.assemblies_path),
|
149
|
+
if: allowed_to?(:read, :assembly_list)
|
150
|
+
|
151
|
+
menu.add_item :assemblies_types,
|
152
|
+
I18n.t("menu.assemblies_types", scope: "decidim.admin"),
|
153
|
+
decidim_admin_assemblies.assemblies_types_path,
|
154
|
+
active: is_active_link?(decidim_admin_assemblies.assemblies_types_path),
|
155
|
+
position: 1.1,
|
156
|
+
if: allowed_to?(:manage, :assemblies_type)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
Decidim.register_participatory_space(:assemblies) do |participatory_space|
|
4
4
|
participatory_space.icon = "media/images/decidim_assemblies.svg"
|
5
5
|
participatory_space.model_class_name = "Decidim::Assembly"
|
6
|
+
participatory_space.content_blocks_scope_name = "assembly_homepage"
|
6
7
|
|
7
8
|
participatory_space.participatory_spaces do |organization|
|
8
9
|
Decidim::Assemblies::OrganizationAssemblies.new(organization).query
|
@@ -12,6 +13,8 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
|
|
12
13
|
|
13
14
|
participatory_space.query_type = "Decidim::Assemblies::AssemblyType"
|
14
15
|
|
16
|
+
participatory_space.breadcrumb_cell = "decidim/assemblies/assembly_dropdown_metadata"
|
17
|
+
|
15
18
|
participatory_space.register_resource(:assembly) do |resource|
|
16
19
|
resource.model_class_name = "Decidim::Assembly"
|
17
20
|
resource.card = "decidim/assemblies/assembly"
|
@@ -37,238 +40,13 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
|
|
37
40
|
end
|
38
41
|
|
39
42
|
participatory_space.register_on_destroy_account do |user|
|
40
|
-
Decidim::AssemblyUserRole.where(user:
|
41
|
-
Decidim::AssemblyMember.where(user:
|
43
|
+
Decidim::AssemblyUserRole.where(user:).destroy_all
|
44
|
+
Decidim::AssemblyMember.where(user:).destroy_all
|
42
45
|
end
|
43
46
|
|
44
47
|
participatory_space.seeds do
|
45
|
-
|
46
|
-
seeds_root = File.join(__dir__, "..", "..", "..", "db", "seeds")
|
47
|
-
|
48
|
-
Decidim::ContentBlock.create(
|
49
|
-
organization: organization,
|
50
|
-
weight: 32,
|
51
|
-
scope_name: :homepage,
|
52
|
-
manifest_name: :highlighted_assemblies,
|
53
|
-
published_at: Time.current
|
54
|
-
)
|
55
|
-
|
56
|
-
2.times do |n|
|
57
|
-
params = {
|
58
|
-
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
59
|
-
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
60
|
-
subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
|
61
|
-
hashtag: "##{Faker::Lorem.word}",
|
62
|
-
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
63
|
-
Decidim::Faker::Localized.sentence(word_count: 3)
|
64
|
-
end,
|
65
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
66
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
67
|
-
end,
|
68
|
-
organization: organization,
|
69
|
-
hero_image: ActiveStorage::Blob.create_and_upload!(
|
70
|
-
io: File.open(File.join(seeds_root, "city.jpeg")),
|
71
|
-
filename: "hero_image.jpeg",
|
72
|
-
content_type: "image/jpeg",
|
73
|
-
metadata: nil
|
74
|
-
), # Keep after organization
|
75
|
-
banner_image: ActiveStorage::Blob.create_and_upload!(
|
76
|
-
io: File.open(File.join(seeds_root, "city2.jpeg")),
|
77
|
-
filename: "banner_image.jpeg",
|
78
|
-
content_type: "image/jpeg",
|
79
|
-
metadata: nil
|
80
|
-
), # Keep after organization
|
81
|
-
promoted: true,
|
82
|
-
published_at: 2.weeks.ago,
|
83
|
-
meta_scope: Decidim::Faker::Localized.word,
|
84
|
-
developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
|
85
|
-
local_area: Decidim::Faker::Localized.sentence(word_count: 2),
|
86
|
-
target: Decidim::Faker::Localized.sentence(word_count: 3),
|
87
|
-
participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
|
88
|
-
participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2),
|
89
|
-
scope: n.positive? ? Decidim::Scope.reorder(Arel.sql("RANDOM()")).first : nil,
|
90
|
-
purpose_of_action: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
91
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
92
|
-
end,
|
93
|
-
composition: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
94
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
95
|
-
end,
|
96
|
-
assembly_type: Decidim::AssembliesType.create!(organization: organization, title: Decidim::Faker::Localized.word),
|
97
|
-
creation_date: 1.day.from_now,
|
98
|
-
created_by: "others",
|
99
|
-
created_by_other: Decidim::Faker::Localized.word,
|
100
|
-
duration: 2.days.from_now,
|
101
|
-
included_at: 5.days.from_now,
|
102
|
-
closing_date: 5.days.from_now,
|
103
|
-
closing_date_reason: Decidim::Faker::Localized.sentence(word_count: 3),
|
104
|
-
internal_organisation: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
105
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
106
|
-
end,
|
107
|
-
is_transparent: true,
|
108
|
-
special_features: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
109
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
110
|
-
end,
|
111
|
-
twitter_handler: Faker::Lorem.word,
|
112
|
-
facebook_handler: Faker::Lorem.word,
|
113
|
-
instagram_handler: Faker::Lorem.word,
|
114
|
-
youtube_handler: Faker::Lorem.word,
|
115
|
-
github_handler: Faker::Lorem.word
|
116
|
-
}
|
117
|
-
|
118
|
-
assembly = Decidim.traceability.perform_action!(
|
119
|
-
"publish",
|
120
|
-
Decidim::Assembly,
|
121
|
-
organization.users.first,
|
122
|
-
visibility: "all"
|
123
|
-
) do
|
124
|
-
Decidim::Assembly.create!(params)
|
125
|
-
end
|
126
|
-
|
127
|
-
# Create users with specific roles
|
128
|
-
Decidim::AssemblyUserRole::ROLES.each do |role|
|
129
|
-
email = "assembly_#{assembly.id}_#{role}@example.org"
|
130
|
-
|
131
|
-
user = Decidim::User.find_or_initialize_by(email: email)
|
132
|
-
user.update!(
|
133
|
-
name: Faker::Name.name,
|
134
|
-
nickname: Faker::Twitter.unique.screen_name,
|
135
|
-
password: "decidim123456789",
|
136
|
-
password_confirmation: "decidim123456789",
|
137
|
-
organization: organization,
|
138
|
-
confirmed_at: Time.current,
|
139
|
-
locale: I18n.default_locale,
|
140
|
-
tos_agreement: true
|
141
|
-
)
|
142
|
-
|
143
|
-
Decidim::AssemblyUserRole.find_or_create_by!(
|
144
|
-
user: user,
|
145
|
-
assembly: assembly,
|
146
|
-
role: role
|
147
|
-
)
|
148
|
-
end
|
149
|
-
|
150
|
-
child = Decidim::Assembly.create!(
|
151
|
-
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
152
|
-
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
153
|
-
subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
|
154
|
-
hashtag: "##{Faker::Lorem.word}",
|
155
|
-
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
156
|
-
Decidim::Faker::Localized.sentence(word_count: 3)
|
157
|
-
end,
|
158
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
159
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
160
|
-
end,
|
161
|
-
organization: organization,
|
162
|
-
hero_image: ActiveStorage::Blob.create_and_upload!(
|
163
|
-
io: File.open(File.join(seeds_root, "city.jpeg")),
|
164
|
-
filename: "hero_image.jpeg",
|
165
|
-
content_type: "image/jpeg",
|
166
|
-
metadata: nil
|
167
|
-
), # Keep after organization
|
168
|
-
banner_image: ActiveStorage::Blob.create_and_upload!(
|
169
|
-
io: File.open(File.join(seeds_root, "city2.jpeg")),
|
170
|
-
filename: "banner_image.jpeg",
|
171
|
-
content_type: "image/jpeg",
|
172
|
-
metadata: nil
|
173
|
-
), # Keep after organization
|
174
|
-
promoted: true,
|
175
|
-
published_at: 2.weeks.ago,
|
176
|
-
meta_scope: Decidim::Faker::Localized.word,
|
177
|
-
developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
|
178
|
-
local_area: Decidim::Faker::Localized.sentence(word_count: 2),
|
179
|
-
target: Decidim::Faker::Localized.sentence(word_count: 3),
|
180
|
-
participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
|
181
|
-
participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2),
|
182
|
-
scope: n.positive? ? Decidim::Scope.reorder(Arel.sql("RANDOM()")).first : nil,
|
183
|
-
parent: assembly
|
184
|
-
)
|
48
|
+
require "decidim/assemblies/seeds"
|
185
49
|
|
186
|
-
|
187
|
-
current_assembly.add_to_index_as_search_resource
|
188
|
-
attachment_collection = Decidim::AttachmentCollection.create!(
|
189
|
-
name: Decidim::Faker::Localized.word,
|
190
|
-
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
191
|
-
collection_for: current_assembly
|
192
|
-
)
|
193
|
-
|
194
|
-
Decidim::Attachment.create!(
|
195
|
-
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
196
|
-
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
197
|
-
attachment_collection: attachment_collection,
|
198
|
-
attached_to: current_assembly,
|
199
|
-
content_type: "application/pdf",
|
200
|
-
file: ActiveStorage::Blob.create_and_upload!(
|
201
|
-
io: File.open(File.join(seeds_root, "Exampledocument.pdf")),
|
202
|
-
filename: "Exampledocument.pdf",
|
203
|
-
content_type: "application/pdf",
|
204
|
-
metadata: nil
|
205
|
-
) # Keep after attached_to
|
206
|
-
)
|
207
|
-
|
208
|
-
Decidim::Attachment.create!(
|
209
|
-
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
210
|
-
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
211
|
-
attached_to: current_assembly,
|
212
|
-
content_type: "image/jpeg",
|
213
|
-
file: ActiveStorage::Blob.create_and_upload!(
|
214
|
-
io: File.open(File.join(seeds_root, "city.jpeg")),
|
215
|
-
filename: "city.jpeg",
|
216
|
-
content_type: "image/jpeg",
|
217
|
-
metadata: nil
|
218
|
-
) # Keep after attached_to
|
219
|
-
)
|
220
|
-
|
221
|
-
Decidim::Attachment.create!(
|
222
|
-
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
223
|
-
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
224
|
-
attached_to: current_assembly,
|
225
|
-
content_type: "application/pdf",
|
226
|
-
file: ActiveStorage::Blob.create_and_upload!(
|
227
|
-
io: File.open(File.join(seeds_root, "Exampledocument.pdf")),
|
228
|
-
filename: "Exampledocument.pdf",
|
229
|
-
content_type: "application/pdf",
|
230
|
-
metadata: nil
|
231
|
-
) # Keep after attached_to
|
232
|
-
)
|
233
|
-
|
234
|
-
2.times do
|
235
|
-
Decidim::Category.create!(
|
236
|
-
name: Decidim::Faker::Localized.sentence(word_count: 5),
|
237
|
-
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
238
|
-
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
239
|
-
end,
|
240
|
-
participatory_space: current_assembly
|
241
|
-
)
|
242
|
-
end
|
243
|
-
|
244
|
-
Decidim::AssemblyMember::POSITIONS.each do |position|
|
245
|
-
Decidim::AssemblyMember.create!(
|
246
|
-
full_name: Faker::Name.name,
|
247
|
-
gender: Faker::Lorem.word,
|
248
|
-
birthday: Faker::Date.birthday(min_age: 18, max_age: 65),
|
249
|
-
birthplace: Faker::Demographic.demonym,
|
250
|
-
designation_date: Faker::Date.between(from: 1.year.ago, to: 1.month.ago),
|
251
|
-
position: position,
|
252
|
-
position_other: position == "other" ? Faker::Job.position : nil,
|
253
|
-
assembly: current_assembly
|
254
|
-
)
|
255
|
-
end
|
256
|
-
|
257
|
-
Decidim::AssemblyMember.create!(
|
258
|
-
user: current_assembly.organization.users.first,
|
259
|
-
gender: Faker::Lorem.word,
|
260
|
-
birthday: Faker::Date.birthday(min_age: 18, max_age: 65),
|
261
|
-
birthplace: Faker::Demographic.demonym,
|
262
|
-
designation_date: Faker::Date.between(from: 1.year.ago, to: 1.month.ago),
|
263
|
-
position: "other",
|
264
|
-
position_other: Faker::Job.position,
|
265
|
-
assembly: current_assembly
|
266
|
-
)
|
267
|
-
|
268
|
-
Decidim.component_manifests.each do |manifest|
|
269
|
-
manifest.seed!(current_assembly.reload)
|
270
|
-
end
|
271
|
-
end
|
272
|
-
end
|
50
|
+
Decidim::Assemblies::Seeds.new.call
|
273
51
|
end
|
274
52
|
end
|
@@ -20,14 +20,14 @@ module Decidim
|
|
20
20
|
[Decidim::Assemblies::AssemblyType],
|
21
21
|
null: true,
|
22
22
|
description: "Lists all assemblies" do
|
23
|
-
argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument
|
24
|
-
argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument
|
23
|
+
argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument lets you filter the results", required: false
|
24
|
+
argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument lets you order the results", required: false
|
25
25
|
end
|
26
26
|
|
27
27
|
type.field :assembly,
|
28
28
|
Decidim::Assemblies::AssemblyType,
|
29
29
|
null: true,
|
30
|
-
description: "Finds
|
30
|
+
description: "Finds an assembly" do
|
31
31
|
argument :id, GraphQL::Types::ID, "The ID of the participatory space", required: false
|
32
32
|
end
|
33
33
|
end
|
@@ -41,18 +41,18 @@ module Decidim
|
|
41
41
|
def assemblies_type(id:)
|
42
42
|
Decidim::AssembliesType.find_by(
|
43
43
|
organization: context[:current_organization],
|
44
|
-
id:
|
44
|
+
id:
|
45
45
|
)
|
46
46
|
end
|
47
47
|
|
48
48
|
def assemblies(filter: {}, order: {})
|
49
49
|
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :assemblies }.first
|
50
|
-
Decidim::Core::ParticipatorySpaceListBase.new(manifest:
|
50
|
+
Decidim::Core::ParticipatorySpaceListBase.new(manifest:).call(object, { filter:, order: }, context)
|
51
51
|
end
|
52
52
|
|
53
53
|
def assembly(id: nil)
|
54
54
|
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :assemblies }.first
|
55
|
-
Decidim::Core::ParticipatorySpaceFinderBase.new(manifest:
|
55
|
+
Decidim::Core::ParticipatorySpaceFinderBase.new(manifest:).call(object, { id: }, context)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|