decidim-admin 0.0.1.alpha9 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -8
  3. data/Rakefile +0 -25
  4. data/app/assets/javascripts/decidim/admin/application.js.es6 +17 -10
  5. data/app/assets/javascripts/decidim/admin/sort_steps.js.es6 +20 -11
  6. data/app/assets/javascripts/decidim/admin/tab_focus.js.es6 +22 -0
  7. data/app/assets/stylesheets/decidim/admin/_forms.scss +10 -0
  8. data/app/assets/stylesheets/decidim/admin/_layout.scss +11 -0
  9. data/app/assets/stylesheets/decidim/admin/_tables.scss +4 -0
  10. data/app/assets/stylesheets/decidim/admin/application.scss +8 -2
  11. data/app/commands/decidim/admin/activate_participatory_process_step.rb +1 -1
  12. data/app/commands/decidim/admin/create_category.rb +44 -0
  13. data/app/commands/decidim/admin/create_feature.rb +48 -0
  14. data/app/commands/decidim/admin/create_participatory_process.rb +3 -6
  15. data/app/commands/decidim/admin/create_participatory_process_admin.rb +51 -0
  16. data/app/commands/decidim/admin/create_participatory_process_attachment.rb +44 -0
  17. data/app/commands/decidim/admin/create_participatory_process_step.rb +3 -3
  18. data/app/commands/decidim/admin/create_scope.rb +38 -0
  19. data/app/commands/decidim/admin/create_static_page.rb +40 -0
  20. data/app/commands/decidim/admin/destroy_category.rb +36 -0
  21. data/app/commands/decidim/admin/destroy_feature.rb +39 -0
  22. data/app/commands/decidim/admin/publish_participatory_process.rb +1 -1
  23. data/app/commands/decidim/admin/reorder_participatory_process_steps.rb +5 -2
  24. data/app/commands/decidim/admin/unpublish_participatory_process.rb +1 -1
  25. data/app/commands/decidim/admin/update_category.rb +48 -0
  26. data/app/commands/decidim/admin/update_organization.rb +49 -0
  27. data/app/commands/decidim/admin/update_participatory_process.rb +2 -2
  28. data/app/commands/decidim/admin/update_participatory_process_attachment.rb +49 -0
  29. data/app/commands/decidim/admin/update_participatory_process_step.rb +1 -1
  30. data/app/commands/decidim/admin/update_scope.rb +43 -0
  31. data/app/commands/decidim/admin/update_static_page.rb +45 -0
  32. data/app/constraints/decidim/admin/organization_dashboard_constraint.rb +5 -1
  33. data/app/controllers/decidim/admin/application_controller.rb +8 -0
  34. data/app/controllers/decidim/admin/categories_controller.rb +90 -0
  35. data/app/controllers/decidim/admin/concerns/participatory_process_admin.rb +31 -0
  36. data/app/controllers/decidim/admin/features_controller.rb +74 -0
  37. data/app/controllers/decidim/admin/organization_controller.rb +40 -0
  38. data/app/controllers/decidim/admin/participatory_process_attachments_controller.rb +84 -0
  39. data/app/controllers/decidim/admin/participatory_process_publications_controller.rb +2 -7
  40. data/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +6 -8
  41. data/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +2 -4
  42. data/app/controllers/decidim/admin/participatory_process_steps_controller.rb +13 -11
  43. data/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +54 -0
  44. data/app/controllers/decidim/admin/participatory_processes_controller.rb +11 -6
  45. data/app/controllers/decidim/admin/scopes_controller.rb +79 -0
  46. data/app/controllers/decidim/admin/static_pages_controller.rb +94 -0
  47. data/app/forms/decidim/admin/category_form.rb +37 -0
  48. data/app/forms/decidim/admin/feature_form.rb +16 -0
  49. data/app/forms/decidim/admin/organization_form.rb +31 -0
  50. data/app/forms/decidim/admin/participatory_process_attachment_form.rb +19 -0
  51. data/app/forms/decidim/admin/participatory_process_form.rb +4 -7
  52. data/app/forms/decidim/admin/participatory_process_step_form.rb +12 -2
  53. data/app/forms/decidim/admin/participatory_process_user_role_form.rb +15 -0
  54. data/app/forms/decidim/admin/scope_form.rb +24 -0
  55. data/app/forms/decidim/admin/static_page_form.rb +30 -0
  56. data/app/helpers/decidim/admin/application_helper.rb +1 -0
  57. data/app/helpers/decidim/admin/aria_selected_link_to_helper.rb +28 -0
  58. data/app/helpers/decidim/admin/attributes_display_helper.rb +13 -5
  59. data/app/models/decidim/admin/abilities/admin_user.rb +34 -0
  60. data/app/models/decidim/admin/abilities/base.rb +19 -0
  61. data/app/models/decidim/admin/abilities/participatory_process_admin.rb +51 -0
  62. data/app/models/decidim/admin/participatory_process_user_role.rb +14 -0
  63. data/app/queries/decidim/admin/manageable_participatory_processes_for_user.rb +41 -0
  64. data/app/queries/decidim/admin/process_admin_roles_for_process.rb +35 -0
  65. data/app/views/decidim/admin/categories/_form.html.erb +12 -0
  66. data/app/views/decidim/admin/categories/edit.html.erb +9 -0
  67. data/app/views/decidim/admin/categories/index.html.erb +44 -0
  68. data/app/views/decidim/admin/categories/new.html.erb +9 -0
  69. data/app/views/decidim/admin/categories/show.html.erb +14 -0
  70. data/app/views/decidim/admin/features/_feature.html.erb +20 -0
  71. data/app/views/decidim/admin/features/_form.html.erb +3 -0
  72. data/app/views/decidim/admin/features/index.html.erb +23 -0
  73. data/app/views/decidim/admin/features/new.html.erb +9 -0
  74. data/app/views/decidim/admin/organization/_form.html.erb +23 -0
  75. data/app/views/decidim/admin/organization/edit.html.erb +11 -0
  76. data/app/views/decidim/admin/participatory_process_attachments/_form.html.erb +11 -0
  77. data/app/views/decidim/admin/participatory_process_attachments/edit.html.erb +9 -0
  78. data/app/views/decidim/admin/participatory_process_attachments/index.html.erb +37 -0
  79. data/app/views/decidim/admin/participatory_process_attachments/new.html.erb +9 -0
  80. data/app/views/decidim/admin/participatory_process_attachments/show.html.erb +25 -0
  81. data/app/views/decidim/admin/participatory_process_steps/_form.html.erb +2 -2
  82. data/app/views/decidim/admin/participatory_process_steps/edit.html.erb +1 -3
  83. data/app/views/decidim/admin/participatory_process_steps/{_table.html.erb → index.html.erb} +15 -11
  84. data/app/views/decidim/admin/participatory_process_steps/new.html.erb +1 -3
  85. data/app/views/decidim/admin/participatory_process_steps/show.html.erb +1 -4
  86. data/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +34 -0
  87. data/app/views/decidim/admin/participatory_processes/_form.html.erb +2 -2
  88. data/app/views/decidim/admin/participatory_processes/edit.html.erb +13 -3
  89. data/app/views/decidim/admin/participatory_processes/index.html.erb +5 -14
  90. data/app/views/decidim/admin/participatory_processes/show.html.erb +19 -36
  91. data/app/views/decidim/admin/scopes/_form.html.erb +3 -0
  92. data/app/views/decidim/admin/scopes/edit.html.erb +11 -0
  93. data/app/views/decidim/admin/scopes/index.html.erb +38 -0
  94. data/app/views/decidim/admin/scopes/new.html.erb +11 -0
  95. data/app/views/decidim/admin/static_pages/_form.html.erb +13 -0
  96. data/app/views/decidim/admin/static_pages/edit.html.erb +11 -0
  97. data/app/views/decidim/admin/static_pages/index.html.erb +40 -0
  98. data/app/views/decidim/admin/static_pages/new.html.erb +11 -0
  99. data/app/views/decidim/admin/static_pages/show.html.erb +22 -0
  100. data/app/views/layouts/decidim/admin/_application.html.erb +40 -0
  101. data/app/views/layouts/decidim/admin/_sidebar.html.erb +5 -2
  102. data/app/views/layouts/decidim/admin/application.html.erb +3 -40
  103. data/app/views/layouts/decidim/admin/participatory_process.html.erb +54 -0
  104. data/config/i18n-tasks.yml +3 -2
  105. data/config/locales/ca.yml +138 -6
  106. data/config/locales/en.yml +191 -13
  107. data/config/locales/es.yml +139 -7
  108. data/config/routes.rb +23 -1
  109. data/db/migrate/20161102144648_add_admin_participatory_process_user_roles.rb +15 -0
  110. data/db/seeds.rb +21 -0
  111. data/lib/decidim/admin/engine.rb +10 -3
  112. data/lib/decidim/admin/features/base_controller.rb +33 -0
  113. data/lib/decidim/admin/features.rb +10 -0
  114. data/lib/decidim/admin.rb +1 -0
  115. data/vendor/assets/javascripts/html.sortable.js +691 -0
  116. metadata +98 -33
  117. data/LICENSE.txt +0 -619
  118. data/app/models/decidim/admin/abilities/admin.rb +0 -21
  119. data/vendor/assets/javascripts/html.sortable.min.js +0 -2
data/config/routes.rb CHANGED
@@ -1,16 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
  Decidim::Admin::Engine.routes.draw do
3
3
  constraints(->(request) { Decidim::Admin::OrganizationDashboardConstraint.new(request).matches? }) do
4
+ resource :organization, only: [:edit, :update], controller: "organization"
4
5
  resources :participatory_processes do
5
6
  resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
6
7
 
7
- resources :steps, controller: "participatory_process_steps", except: :index do
8
+ resources :categories
9
+
10
+ resources :steps, controller: "participatory_process_steps" do
8
11
  resource :activate, controller: "participatory_process_step_activations", only: [:create, :destroy]
9
12
  collection do
10
13
  post :ordering, to: "participatory_process_step_ordering#create"
11
14
  end
12
15
  end
16
+ resources :user_roles, controller: "participatory_process_user_roles", only: [:destroy, :create, :index]
17
+ resources :attachments, controller: "participatory_process_attachments"
18
+ resources :features
13
19
  end
20
+
21
+ scope "/participatory_processes/:participatory_process_id/features/:feature_id/manage" do
22
+ Decidim.feature_manifests.each do |manifest|
23
+ next unless manifest.admin_engine
24
+
25
+ constraints Decidim::CurrentFeature.new(manifest) do
26
+ mount manifest.admin_engine, at: "/", as: "decidim_admin_#{manifest.name}"
27
+ end
28
+ end
29
+
30
+ get "/" => proc { raise "Feature not found" }, as: :manage_feature
31
+ end
32
+
33
+ resources :static_pages
34
+ resources :scopes, except: [:show]
35
+
14
36
  root to: "dashboard#show"
15
37
  end
16
38
  end
@@ -0,0 +1,15 @@
1
+ class AddAdminParticipatoryProcessUserRoles < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :decidim_admin_participatory_process_user_roles do |t|
4
+ t.integer :decidim_user_id
5
+ t.integer :decidim_participatory_process_id
6
+ t.string :role
7
+ t.timestamps
8
+ end
9
+
10
+ add_index :decidim_admin_participatory_process_user_roles,
11
+ [:decidim_participatory_process_id, :decidim_user_id, :role],
12
+ unique: true,
13
+ name: "index_unique_user_and_process_role"
14
+ end
15
+ end
data/db/seeds.rb ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ if !Rails.env.production? || ENV["SEED"]
3
+ staging_organization = Decidim::Organization.order(id: :asc).first
4
+
5
+ process_admin = Decidim::User.create!(
6
+ name: "Process Admin",
7
+ email: "process_admin@decidim.org",
8
+ password: "decidim123456",
9
+ password_confirmation: "decidim123456",
10
+ confirmed_at: Time.current,
11
+ locale: I18n.default_locale,
12
+ organization: staging_organization,
13
+ tos_agreement: true
14
+ )
15
+
16
+ Decidim::Admin::ParticipatoryProcessUserRole.create!(
17
+ user: process_admin,
18
+ participatory_process: Decidim::ParticipatoryProcess.order(id: :asc).first,
19
+ role: "admin"
20
+ )
21
+ end
@@ -6,26 +6,33 @@ require "devise"
6
6
  require "devise-i18n"
7
7
  require "decidim/core"
8
8
  require "jquery-rails"
9
- require "sass-rails"
9
+ require "sassc-rails"
10
10
  require "turbolinks"
11
11
  require "foundation-rails"
12
12
  require "foundation_rails_helper"
13
- require "jbuilder"
14
13
  require "rectify"
15
14
 
15
+ require_dependency File.join(File.dirname(__FILE__), "..", "..", "..", "app/models/decidim/admin/abilities/admin_user")
16
+
16
17
  module Decidim
17
18
  module Admin
18
19
  # Decidim's core Rails Engine.
19
20
  class Engine < ::Rails::Engine
20
21
  isolate_namespace Decidim::Admin
21
22
 
23
+ initializer "decidim_admin.mount_routes" do |_app|
24
+ Decidim::Core::Engine.routes do
25
+ mount Decidim::Admin::Engine => "/admin"
26
+ end
27
+ end
28
+
22
29
  initializer "decidim_admin.assets" do |app|
23
30
  app.config.assets.precompile += %w(decidim_admin_manifest.js)
24
31
  end
25
32
 
26
33
  initializer "decidim_admin.inject_abilities_to_user" do |_app|
27
34
  Decidim.configure do |config|
28
- config.abilities += [Decidim::Admin::Abilities::Admin]
35
+ config.abilities += [Decidim::Admin::Abilities::AdminUser]
29
36
  end
30
37
  end
31
38
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ module Features
5
+ # This controller is the abstract class from which all feature
6
+ # controllers in their admin engines should inherit from.
7
+ class BaseController < Admin::ApplicationController
8
+ skip_authorize_resource
9
+ include Concerns::ParticipatoryProcessAdmin
10
+ include NeedsParticipatoryProcess
11
+ helper_method :current_feature, :current_participatory_process, :parent_path
12
+
13
+ before_action do
14
+ authorize! :manage, current_feature
15
+ end
16
+
17
+ private
18
+
19
+ def current_feature
20
+ request.env["decidim.current_feature"]
21
+ end
22
+
23
+ def current_participatory_process
24
+ request.env["decidim.current_participatory_process"]
25
+ end
26
+
27
+ def parent_path
28
+ decidim_admin.participatory_process_features_path(current_participatory_process)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # This module contains all logic related to Features and how they're handled
5
+ # at the admin panel level.
6
+ module Features
7
+ autoload :BaseController, "decidim/admin/features/base_controller"
8
+ end
9
+ end
10
+ end
data/lib/decidim/admin.rb CHANGED
@@ -8,5 +8,6 @@ module Decidim
8
8
  # eye view of the whole admin.
9
9
  #
10
10
  module Admin
11
+ autoload :Features, "decidim/admin/features"
11
12
  end
12
13
  end