decidim 0.0.1.alpha7 → 0.0.1.alpha8

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/.eslintignore +1 -0
  4. data/.eslintrc.json +12 -0
  5. data/.github/ISSUE_TEMPLATE.md +12 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +8 -11
  7. data/.gitignore +1 -0
  8. data/.hound.yml +4 -0
  9. data/.rubocop.yml +14 -1
  10. data/.travis.yml +20 -4
  11. data/CODE_OF_CONDUCT.md +1 -1
  12. data/Dockerfile +1 -0
  13. data/Gemfile +3 -2
  14. data/Gemfile.common +1 -1
  15. data/Gemfile.lock +68 -39
  16. data/LICENSE.txt +619 -21
  17. data/README.md +17 -13
  18. data/Rakefile +1 -1
  19. data/codecov.yml +6 -1
  20. data/crowdin.yaml +4 -0
  21. data/decidim-admin/LICENSE.txt +619 -0
  22. data/decidim-admin/README.md +1 -1
  23. data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +12 -0
  24. data/decidim-admin/app/assets/javascripts/decidim/admin/sort_steps.js.es6 +21 -0
  25. data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +9 -0
  26. data/decidim-admin/app/commands/decidim/admin/activate_participatory_process_step.rb +43 -0
  27. data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +1 -0
  28. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_step.rb +46 -0
  29. data/decidim-admin/app/commands/decidim/admin/deactivate_participatory_process_step.rb +35 -0
  30. data/decidim-admin/app/commands/decidim/admin/publish_participatory_process.rb +35 -0
  31. data/decidim-admin/app/commands/decidim/admin/reorder_participatory_process_steps.rb +47 -0
  32. data/decidim-admin/app/commands/decidim/admin/unpublish_participatory_process.rb +35 -0
  33. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +1 -0
  34. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_step.rb +49 -0
  35. data/decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb +1 -1
  36. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +4 -0
  37. data/decidim-admin/app/controllers/decidim/admin/dashboard_controller.rb +1 -9
  38. data/decidim-admin/app/controllers/decidim/admin/participatory_process_publications_controller.rb +49 -0
  39. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +56 -0
  40. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +30 -0
  41. data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +81 -0
  42. data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +7 -12
  43. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +1 -0
  44. data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +25 -0
  45. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
  46. data/decidim-admin/app/mailers/decidim/admin/application_mailer.rb +1 -1
  47. data/decidim-admin/app/models/decidim/admin/abilities/admin.rb +21 -0
  48. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +19 -0
  49. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_table.html.erb +53 -0
  50. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +11 -0
  51. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +11 -0
  52. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/show.html.erb +22 -0
  53. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +4 -0
  54. data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +22 -2
  55. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +21 -2
  56. data/decidim-admin/config/i18n-tasks.yml +2 -2
  57. data/decidim-admin/config/locales/ca.yml +55 -2
  58. data/decidim-admin/config/locales/en.yml +55 -2
  59. data/decidim-admin/config/locales/es.yml +56 -3
  60. data/decidim-admin/config/routes.rb +10 -1
  61. data/decidim-admin/decidim-admin.gemspec +6 -7
  62. data/decidim-admin/lib/decidim/admin/engine.rb +6 -1
  63. data/decidim-admin/spec/commands/activate_participatory_process_step_spec.rb +44 -0
  64. data/decidim-admin/spec/commands/deactivate_participatory_process_step_spec.rb +35 -0
  65. data/decidim-admin/spec/commands/publish_participatory_process_spec.rb +35 -0
  66. data/decidim-admin/spec/commands/reorder_participatory_process_steps_spec.rb +53 -0
  67. data/decidim-admin/spec/commands/unpublish_participatory_process_spec.rb +35 -0
  68. data/decidim-admin/spec/controllers/participatory_processes_controller_spec.rb +32 -0
  69. data/decidim-admin/spec/features/manage_participatory_process_steps_spec.rb +151 -0
  70. data/decidim-admin/spec/features/manage_participatory_processes_spec.rb +87 -39
  71. data/decidim-admin/spec/forms/participatory_process_form_spec.rb +122 -0
  72. data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +113 -0
  73. data/decidim-admin/spec/models/abilities/admin_spec.rb +25 -0
  74. data/decidim-admin/spec/spec_helper.rb +0 -1
  75. data/decidim-admin/vendor/assets/javascripts/html.sortable.min.js +2 -0
  76. data/decidim-api/.gitignore +7 -0
  77. data/decidim-api/LICENSE.txt +619 -0
  78. data/decidim-api/README.md +28 -0
  79. data/decidim-api/Rakefile +27 -0
  80. data/decidim-api/app/controllers/decidim/api/application_controller.rb +9 -0
  81. data/decidim-api/app/controllers/decidim/api/queries_controller.rb +33 -0
  82. data/decidim-api/app/schemas/decidim/api/schema.rb +9 -0
  83. data/decidim-api/app/types/decidim/api/localized_string_type.rb +13 -0
  84. data/decidim-api/app/types/decidim/api/process_step_type.rb +26 -0
  85. data/decidim-api/app/types/decidim/api/process_type.rb +18 -0
  86. data/decidim-api/app/types/decidim/api/query_type.rb +19 -0
  87. data/decidim-api/app/types/decidim/api/translated_field_type.rb +44 -0
  88. data/decidim-api/bin/rails +14 -0
  89. data/decidim-api/config/routes.rb +6 -0
  90. data/decidim-api/decidim-api.gemspec +27 -0
  91. data/decidim-api/lib/decidim/api.rb +9 -0
  92. data/decidim-api/lib/decidim/api/engine.rb +22 -0
  93. data/decidim-api/lib/tasks/decidim/api_tasks.rake +5 -0
  94. data/decidim-api/spec/controllers/queries_controller_spec.rb +22 -0
  95. data/decidim-api/spec/factories.rb +1 -0
  96. data/decidim-api/spec/schemas/schema_spec.rb +38 -0
  97. data/decidim-api/spec/spec_helper.rb +2 -0
  98. data/decidim-api/spec/support/type_helpers.rb +46 -0
  99. data/decidim-api/spec/types/localized_string_type_spec.rb +30 -0
  100. data/decidim-api/spec/types/process_step_type_spec.rb +50 -0
  101. data/decidim-api/spec/types/process_type_spec.rb +39 -0
  102. data/decidim-api/spec/types/query_type_spec.rb +24 -0
  103. data/decidim-api/spec/types/translated_field_type_spec.rb +68 -0
  104. data/decidim-dev/README.md +1 -1
  105. data/decidim-dev/decidim-dev.gemspec +5 -3
  106. data/decidim-dev/lib/decidim/dummy_authorization_handler.rb +18 -0
  107. data/decidim-dev/lib/decidim/test/authorization_shared_examples.rb +31 -0
  108. data/decidim-dev/lib/decidim/test/base_spec_helper.rb +6 -1
  109. data/decidim-dev/lib/decidim/test/rspec_support/authenticated_controller_context.rb +9 -0
  110. data/decidim-dev/lib/decidim/test/rspec_support/authorization_handlers.rb +7 -0
  111. data/decidim-dev/lib/decidim/test/rspec_support/bullet.rb +15 -0
  112. data/decidim-dev/lib/decidim/test/rspec_support/engine_routes.rb +30 -0
  113. data/decidim-dev/lib/decidim/test/rspec_support/translation_helpers.rb +12 -0
  114. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +10 -0
  115. data/decidim-dev/lib/generators/decidim/templates/bullet.rb +6 -0
  116. data/decidim-system/LICENSE.txt +619 -0
  117. data/decidim-system/README.md +1 -1
  118. data/decidim-system/app/assets/javascripts/decidim/system/application.js.es6 +10 -0
  119. data/decidim-system/app/mailers/decidim/system/application_mailer.rb +1 -1
  120. data/decidim-system/decidim-system.gemspec +4 -4
  121. data/decidim.gemspec +3 -2
  122. data/lib/decidim.rb +1 -6
  123. data/lib/generators/decidim/app_generator.rb +13 -1
  124. data/lib/generators/decidim/install_generator.rb +11 -2
  125. data/lib/generators/decidim/templates/Gemfile.erb +5 -2
  126. data/lib/generators/decidim/templates/authorization_handler.rb +50 -0
  127. data/lib/generators/decidim/templates/carrierwave.rb +27 -0
  128. data/lib/generators/decidim/templates/decidim.scss.erb +3 -0
  129. data/lib/generators/decidim/templates/initializer.rb +3 -1
  130. data/package.json +21 -0
  131. data/yarn.lock +890 -0
  132. metadata +102 -21
  133. data/.eslintrc +0 -213
  134. data/decidim-admin/app/assets/javascripts/decidim/admin/application.js +0 -22
  135. data/decidim-admin/app/controllers/concerns/decidim/needs_authorization.rb +0 -50
  136. data/decidim-admin/app/policies/decidim/admin/application_policy.rb +0 -20
  137. data/decidim-admin/app/policies/decidim/admin/dashboard_policy.rb +0 -15
  138. data/decidim-admin/app/policies/decidim/admin/organization_policy.rb +0 -15
  139. data/decidim-admin/app/policies/decidim/admin/participatory_process_policy.rb +0 -57
  140. data/decidim-admin/spec/policies/dashboard_policy_spec.rb +0 -23
  141. data/decidim-admin/spec/policies/organization_policy_spec.rb +0 -41
  142. data/decidim-admin/spec/policies/participatory_process_policy_spec.rb +0 -153
  143. data/decidim-system/app/assets/javascripts/decidim/system/application.js +0 -22
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+ require_dependency "decidim/admin/application_controller"
3
+
4
+ module Decidim
5
+ module Admin
6
+ # Controller that allows managing all the Admins.
7
+ #
8
+ class ParticipatoryProcessStepActivationsController < ApplicationController
9
+ def create
10
+ authorize! :activate, process_step
11
+
12
+ ActivateParticipatoryProcessStep.call(process_step) do
13
+ on(:ok) do
14
+ flash[:notice] = I18n.t("participatory_process_step_activations.create.success", scope: "decidim.admin")
15
+ redirect_to participatory_process_path(participatory_process)
16
+ end
17
+
18
+ on(:invalid) do
19
+ flash.now[:alert] = I18n.t("participatory_process_step_activations.create.error", scope: "decidim.admin")
20
+ redirect_to participatory_process_path(participatory_process)
21
+ end
22
+ end
23
+ end
24
+
25
+ def destroy
26
+ authorize! :deactivate, process_step
27
+
28
+ DeactivateParticipatoryProcessStep.call(process_step) do
29
+ on(:ok) do
30
+ flash[:notice] = I18n.t("participatory_process_step_activations.destroy.success", scope: "decidim.admin")
31
+ redirect_to participatory_process_path(participatory_process)
32
+ end
33
+
34
+ on(:invalid) do
35
+ flash.now[:alert] = I18n.t("participatory_process_step_activations.destroy.error", scope: "decidim.admin")
36
+ redirect_to participatory_process_path(participatory_process)
37
+ end
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def process_step
44
+ collection.find(params[:step_id])
45
+ end
46
+
47
+ def participatory_process
48
+ current_organization.participatory_processes.find(params[:participatory_process_id])
49
+ end
50
+
51
+ def collection
52
+ participatory_process.steps
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ require_dependency "decidim/admin/application_controller"
3
+
4
+ module Decidim
5
+ module Admin
6
+ # Controller that allows managing all the Admins.
7
+ #
8
+ class ParticipatoryProcessStepOrderingController < ApplicationController
9
+ def create
10
+ authorize! :reorder, Decidim::ParticipatoryProcessStep
11
+ ReorderParticipatoryProcessSteps.call(collection, params[:items_ids]) do
12
+ on(:invalid) do
13
+ flash.now[:alert] = I18n.t("participatory_process_steps.ordering.error", scope: "decidim.admin")
14
+ redirect_to participatory_process_path(participatory_process)
15
+ end
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def participatory_process
22
+ current_organization.participatory_processes.find(params[:participatory_process_id])
23
+ end
24
+
25
+ def collection
26
+ participatory_process.steps
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+ require_dependency "decidim/admin/application_controller"
3
+
4
+ module Decidim
5
+ module Admin
6
+ # Controller that allows managing all the Admins.
7
+ #
8
+ class ParticipatoryProcessStepsController < ApplicationController
9
+ def new
10
+ authorize! :create, Decidim::ParticipatoryProcessStep
11
+ @form = ParticipatoryProcessStepForm.new
12
+ end
13
+
14
+ def create
15
+ authorize! :create, Decidim::ParticipatoryProcessStep
16
+ @form = ParticipatoryProcessStepForm.from_params(params)
17
+
18
+ CreateParticipatoryProcessStep.call(@form, participatory_process) do
19
+ on(:ok) do
20
+ flash[:notice] = I18n.t("participatory_process_steps.create.success", scope: "decidim.admin")
21
+ redirect_to participatory_process_path(participatory_process)
22
+ end
23
+
24
+ on(:invalid) do
25
+ flash.now[:alert] = I18n.t("participatory_process_steps.create.error", scope: "decidim.admin")
26
+ render :new
27
+ end
28
+ end
29
+ end
30
+
31
+ def edit
32
+ @participatory_process_step = collection.find(params[:id])
33
+ authorize! :update, @participatory_process_step
34
+ @form = ParticipatoryProcessStepForm.from_model(@participatory_process_step)
35
+ end
36
+
37
+ def update
38
+ @participatory_process_step = collection.find(params[:id])
39
+ authorize! :update, @participatory_process_step
40
+ @form = ParticipatoryProcessStepForm.from_params(params)
41
+
42
+ UpdateParticipatoryProcessStep.call(@participatory_process_step, @form) do
43
+ on(:ok) do
44
+ flash[:notice] = I18n.t("participatory_process_steps.update.success", scope: "decidim.admin")
45
+ redirect_to participatory_process_path(participatory_process)
46
+ end
47
+
48
+ on(:invalid) do
49
+ flash.now[:alert] = I18n.t("participatory_process_steps.update.error", scope: "decidim.admin")
50
+ render :edit
51
+ end
52
+ end
53
+ end
54
+
55
+ def show
56
+ @participatory_process_step = collection.find(params[:id])
57
+ authorize! :read, @participatory_process_step
58
+ end
59
+
60
+ def destroy
61
+ @participatory_process_step = collection.find(params[:id])
62
+ authorize! :destroy, @participatory_process_step
63
+ @participatory_process_step.destroy!
64
+
65
+ flash[:notice] = I18n.t("participatory_process_steps.destroy.success", scope: "decidim.admin")
66
+
67
+ redirect_to participatory_process_path(@participatory_process_step.participatory_process)
68
+ end
69
+
70
+ private
71
+
72
+ def participatory_process
73
+ @participatory_process ||= current_organization.participatory_processes.find(params[:participatory_process_id])
74
+ end
75
+
76
+ def collection
77
+ @collection ||= participatory_process.steps
78
+ end
79
+ end
80
+ end
81
+ end
@@ -7,18 +7,18 @@ module Decidim
7
7
  #
8
8
  class ParticipatoryProcessesController < ApplicationController
9
9
  def index
10
+ authorize! :index, Decidim::ParticipatoryProcess
10
11
  @participatory_processes = collection
11
- authorize @participatory_processes
12
12
  end
13
13
 
14
14
  def new
15
+ authorize! :new, Decidim::ParticipatoryProcess
15
16
  @form = ParticipatoryProcessForm.new
16
- authorize ParticipatoryProcess
17
17
  end
18
18
 
19
19
  def create
20
+ authorize! :new, Decidim::ParticipatoryProcess
20
21
  @form = ParticipatoryProcessForm.from_params(params)
21
- authorize ParticipatoryProcess
22
22
 
23
23
  CreateParticipatoryProcess.call(@form, current_organization) do
24
24
  on(:ok) do
@@ -35,13 +35,13 @@ module Decidim
35
35
 
36
36
  def edit
37
37
  @participatory_process = collection.find(params[:id])
38
- authorize @participatory_process
38
+ authorize! :update, @participatory_process
39
39
  @form = ParticipatoryProcessForm.from_model(@participatory_process)
40
40
  end
41
41
 
42
42
  def update
43
43
  @participatory_process = collection.find(params[:id])
44
- authorize @participatory_process
44
+ authorize! :update, @participatory_process
45
45
  @form = ParticipatoryProcessForm.from_params(params)
46
46
 
47
47
  UpdateParticipatoryProcess.call(@participatory_process, @form) do
@@ -59,13 +59,12 @@ module Decidim
59
59
 
60
60
  def show
61
61
  @participatory_process = collection.find(params[:id])
62
- authorize @participatory_process
62
+ authorize! :read, @participatory_process
63
63
  end
64
64
 
65
65
  def destroy
66
66
  @participatory_process = collection.find(params[:id])
67
- authorize @participatory_process
68
-
67
+ authorize! :destroy, @participatory_process
69
68
  @participatory_process.destroy!
70
69
 
71
70
  flash[:notice] = I18n.t("participatory_processes.destroy.success", scope: "decidim.admin")
@@ -78,10 +77,6 @@ module Decidim
78
77
  def collection
79
78
  current_organization.participatory_processes
80
79
  end
81
-
82
- def policy_class
83
- Decidim::Admin::ParticipatoryProcessPolicy
84
- end
85
80
  end
86
81
  end
87
82
  end
@@ -16,6 +16,7 @@ module Decidim
16
16
 
17
17
  attribute :slug, String
18
18
  attribute :hashtag, String
19
+ attribute :promoted, Boolean
19
20
  attribute :hero_image
20
21
  attribute :banner_image
21
22
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # A form object used to create participatory processes steps from the admin
5
+ # dashboard.
6
+ #
7
+ class ParticipatoryProcessStepForm < Rectify::Form
8
+ include TranslatableAttributes
9
+
10
+ translatable_attribute :title, String
11
+ translatable_attribute :description, String
12
+ translatable_attribute :short_description, String
13
+
14
+ mimic :participatory_process_step
15
+
16
+ attribute :start_date, DateTime
17
+ attribute :end_date, DateTime
18
+
19
+ translatable_validates :title, :description, :short_description, presence: true
20
+
21
+ validates :start_date, date: { before: :end_date, allow_blank: true, if: proc { |obj| obj.end_date.present? } }
22
+ validates :end_date, date: { after: :start_date, allow_blank: true, if: proc { |obj| obj.start_date.present? } }
23
+ end
24
+ end
25
+ end
@@ -5,6 +5,7 @@ module Decidim
5
5
  #
6
6
  module ApplicationHelper
7
7
  include Decidim::TranslationsHelper
8
+ include Decidim::HumanizeBooleansHelper
8
9
 
9
10
  def title
10
11
  current_organization.name
@@ -4,7 +4,7 @@ module Decidim
4
4
  # Custom application mailer, scoped to the admin mailer.
5
5
  #
6
6
  class ApplicationMailer < ActionMailer::Base
7
- default from: "from@example.com"
7
+ default from: Decidim.config.mailer_sender
8
8
  layout "mailer"
9
9
  end
10
10
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ module Abilities
5
+ # Defines the abilities for a user in the admin section. Intended to be
6
+ # used with `cancancan`.
7
+ class Admin
8
+ include CanCan::Ability
9
+
10
+ def initialize(user)
11
+ return unless user
12
+ return unless user.role?(:admin)
13
+
14
+ can :manage, ParticipatoryProcess
15
+ can :manage, ParticipatoryProcessStep
16
+ can :read, :admin_dashboard
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ <div class="field">
2
+ <%= form.translated :text_field, :title, autofocus: true %>
3
+ </div>
4
+
5
+ <div class="field">
6
+ <%= form.translated :text_area, :short_description %>
7
+ </div>
8
+
9
+ <div class="field">
10
+ <%= form.translated :text_area, :description %>
11
+ </div>
12
+
13
+ <div class="field">
14
+ <%= form.date_field :start_date %>
15
+ </div>
16
+
17
+ <div class="field">
18
+ <%= form.date_field :end_date %>
19
+ </div>
@@ -0,0 +1,53 @@
1
+ <section id="steps">
2
+ <h4><%= t(".steps_title", scope: "decidim.admin") %></h4>
3
+
4
+ <% if can? :create, Decidim::ParticipatoryProcessStep %>
5
+ <div class="actions title">
6
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.participatory_process_step.name", scope: "decidim.admin")), new_participatory_process_step_path(@participatory_process), class: 'new' %>
7
+ </div>
8
+ <% end %>
9
+
10
+ <% if @participatory_process.steps.any? %>
11
+ <p><%= t(".steps_hint", scope: "decidim.admin") %></p>
12
+ <table class="stack">
13
+ <thead>
14
+ <tr>
15
+ <th><%= t("models.participatory_process_step.fields.title", scope: "decidim.admin") %></th>
16
+ <th><%= t("models.participatory_process_step.fields.start_date", scope: "decidim.admin") %></th>
17
+ <th><%= t("models.participatory_process_step.fields.end_date", scope: "decidim.admin") %></th>
18
+ <th><%= t("models.participatory_process_step.fields.active", scope: "decidim.admin") %></th>
19
+ <th class="actions"><%= t("actions.title", scope: "decidim.admin") %></th>
20
+ </tr>
21
+ </thead>
22
+ <tbody class="sortable" data-sort-url="<%= ordering_participatory_process_steps_path(@participatory_process) %>">
23
+ <% @participatory_process.steps.each do |step| %>
24
+ <tr data-id="<%= step.id %>">
25
+ <td>
26
+ <%= link_to translated_attribute(step.title), participatory_process_step_path(@participatory_process, step) %><br />
27
+ </td>
28
+ <td>
29
+ <%= l step.start_date, format: :short %>
30
+ </td>
31
+ <td>
32
+ <%= l step.end_date, format: :short %>
33
+ </td>
34
+ <td>
35
+ <%= humanize_boolean step.active? %>
36
+ </td>
37
+ <td class="actions">
38
+ <%= link_to t("actions.edit", scope: "decidim.admin"), edit_participatory_process_step_path(@participatory_process, step) if can? :update, step %>
39
+ <% if can? :activate, step %>
40
+ <% if step.active? %>
41
+ <%= link_to t("actions.deactivate", scope: "decidim.admin"), participatory_process_step_activate_path(@participatory_process, step), method: :delete, class: "small button secondary" %>
42
+ <% else %>
43
+ <%= link_to t("actions.activate", scope: "decidim.admin"), participatory_process_step_activate_path(@participatory_process, step), method: :post, class: "small button secondary" %>
44
+ <% end %>
45
+ <% end %>
46
+ <%= link_to t("actions.destroy", scope: "decidim.admin"), participatory_process_step_path(@participatory_process, step), method: :delete, class: "small alert button", data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } if can? :destroy, step %>
47
+ </td>
48
+ </tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+ <% end %>
53
+ </section>
@@ -0,0 +1,11 @@
1
+ <% content_for :title do %>
2
+ <h2><%= t ".title" %></h2>
3
+ <% end %>
4
+
5
+ <%= form_for(@form, url: participatory_process_step_path(@participatory_process_step.participatory_process, @participatory_process_step)) do |f| %>
6
+ <%= render partial: 'form', object: f %>
7
+
8
+ <div class="actions">
9
+ <%= f.submit t(".update") %>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <% content_for :title do %>
2
+ <h2><%= t ".title" %></h2>
3
+ <% end %>
4
+
5
+ <%= form_for(@form) do |f| %>
6
+ <%= render partial: 'form', object: f %>
7
+
8
+ <div class="actions">
9
+ <%= f.submit t(".create") %>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,22 @@
1
+ <% content_for :title do %>
2
+ <h2><%= link_to translated_attribute(@participatory_process_step.participatory_process.title), @participatory_process_step.participatory_process %></h2>
3
+ <h3 class="subheader"><%= translated_attribute(@participatory_process_step.title) %></h3>
4
+ <% end %>
5
+
6
+ <div class="actions">
7
+ <hr />
8
+ <%= link_to t("decidim.admin.actions.edit"), ['edit', @participatory_process_step] if can? :update, @participatory_process_step %>
9
+ <%= link_to t("decidim.admin.actions.destroy"), @participatory_process_step, method: :delete, class: "alert button", data: { confirm: t("decidim.admin.actions.confirm_destroy") } if can? :destroy, @participatory_process_step %>
10
+ </div>
11
+
12
+ <dl>
13
+ <%= display_for @participatory_process_step,
14
+ :title,
15
+ :short_description,
16
+ :description
17
+ %>
18
+ <dt><%= display_label(@participatory_process_step, :start_date) %></dt>
19
+ <dd><%= l @participatory_process_step.start_date, format: :short %></dd>
20
+ <dt><%= display_label(@participatory_process_step, :end_date) %></dt>
21
+ <dd><%= l @participatory_process_step.end_date, format: :short %></dd>
22
+ </dl>
@@ -29,3 +29,7 @@
29
29
  <div class="field">
30
30
  <%= form.file_field :banner_image %>
31
31
  </div>
32
+
33
+ <div class="field">
34
+ <%= form.check_box :promoted %>
35
+ </div>