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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +2 -1
- data/.eslintignore +1 -0
- data/.eslintrc.json +12 -0
- data/.github/ISSUE_TEMPLATE.md +12 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +8 -11
- data/.gitignore +1 -0
- data/.hound.yml +4 -0
- data/.rubocop.yml +14 -1
- data/.travis.yml +20 -4
- data/CODE_OF_CONDUCT.md +1 -1
- data/Dockerfile +1 -0
- data/Gemfile +3 -2
- data/Gemfile.common +1 -1
- data/Gemfile.lock +68 -39
- data/LICENSE.txt +619 -21
- data/README.md +17 -13
- data/Rakefile +1 -1
- data/codecov.yml +6 -1
- data/crowdin.yaml +4 -0
- data/decidim-admin/LICENSE.txt +619 -0
- data/decidim-admin/README.md +1 -1
- data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +12 -0
- data/decidim-admin/app/assets/javascripts/decidim/admin/sort_steps.js.es6 +21 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +9 -0
- data/decidim-admin/app/commands/decidim/admin/activate_participatory_process_step.rb +43 -0
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +1 -0
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process_step.rb +46 -0
- data/decidim-admin/app/commands/decidim/admin/deactivate_participatory_process_step.rb +35 -0
- data/decidim-admin/app/commands/decidim/admin/publish_participatory_process.rb +35 -0
- data/decidim-admin/app/commands/decidim/admin/reorder_participatory_process_steps.rb +47 -0
- data/decidim-admin/app/commands/decidim/admin/unpublish_participatory_process.rb +35 -0
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +1 -0
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process_step.rb +49 -0
- data/decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +4 -0
- data/decidim-admin/app/controllers/decidim/admin/dashboard_controller.rb +1 -9
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_publications_controller.rb +49 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +56 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +30 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +81 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +7 -12
- data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +1 -0
- data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +25 -0
- data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/decidim-admin/app/mailers/decidim/admin/application_mailer.rb +1 -1
- data/decidim-admin/app/models/decidim/admin/abilities/admin.rb +21 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +19 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_table.html.erb +53 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +11 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +11 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/show.html.erb +22 -0
- data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +4 -0
- data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +22 -2
- data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +21 -2
- data/decidim-admin/config/i18n-tasks.yml +2 -2
- data/decidim-admin/config/locales/ca.yml +55 -2
- data/decidim-admin/config/locales/en.yml +55 -2
- data/decidim-admin/config/locales/es.yml +56 -3
- data/decidim-admin/config/routes.rb +10 -1
- data/decidim-admin/decidim-admin.gemspec +6 -7
- data/decidim-admin/lib/decidim/admin/engine.rb +6 -1
- data/decidim-admin/spec/commands/activate_participatory_process_step_spec.rb +44 -0
- data/decidim-admin/spec/commands/deactivate_participatory_process_step_spec.rb +35 -0
- data/decidim-admin/spec/commands/publish_participatory_process_spec.rb +35 -0
- data/decidim-admin/spec/commands/reorder_participatory_process_steps_spec.rb +53 -0
- data/decidim-admin/spec/commands/unpublish_participatory_process_spec.rb +35 -0
- data/decidim-admin/spec/controllers/participatory_processes_controller_spec.rb +32 -0
- data/decidim-admin/spec/features/manage_participatory_process_steps_spec.rb +151 -0
- data/decidim-admin/spec/features/manage_participatory_processes_spec.rb +87 -39
- data/decidim-admin/spec/forms/participatory_process_form_spec.rb +122 -0
- data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +113 -0
- data/decidim-admin/spec/models/abilities/admin_spec.rb +25 -0
- data/decidim-admin/spec/spec_helper.rb +0 -1
- data/decidim-admin/vendor/assets/javascripts/html.sortable.min.js +2 -0
- data/decidim-api/.gitignore +7 -0
- data/decidim-api/LICENSE.txt +619 -0
- data/decidim-api/README.md +28 -0
- data/decidim-api/Rakefile +27 -0
- data/decidim-api/app/controllers/decidim/api/application_controller.rb +9 -0
- data/decidim-api/app/controllers/decidim/api/queries_controller.rb +33 -0
- data/decidim-api/app/schemas/decidim/api/schema.rb +9 -0
- data/decidim-api/app/types/decidim/api/localized_string_type.rb +13 -0
- data/decidim-api/app/types/decidim/api/process_step_type.rb +26 -0
- data/decidim-api/app/types/decidim/api/process_type.rb +18 -0
- data/decidim-api/app/types/decidim/api/query_type.rb +19 -0
- data/decidim-api/app/types/decidim/api/translated_field_type.rb +44 -0
- data/decidim-api/bin/rails +14 -0
- data/decidim-api/config/routes.rb +6 -0
- data/decidim-api/decidim-api.gemspec +27 -0
- data/decidim-api/lib/decidim/api.rb +9 -0
- data/decidim-api/lib/decidim/api/engine.rb +22 -0
- data/decidim-api/lib/tasks/decidim/api_tasks.rake +5 -0
- data/decidim-api/spec/controllers/queries_controller_spec.rb +22 -0
- data/decidim-api/spec/factories.rb +1 -0
- data/decidim-api/spec/schemas/schema_spec.rb +38 -0
- data/decidim-api/spec/spec_helper.rb +2 -0
- data/decidim-api/spec/support/type_helpers.rb +46 -0
- data/decidim-api/spec/types/localized_string_type_spec.rb +30 -0
- data/decidim-api/spec/types/process_step_type_spec.rb +50 -0
- data/decidim-api/spec/types/process_type_spec.rb +39 -0
- data/decidim-api/spec/types/query_type_spec.rb +24 -0
- data/decidim-api/spec/types/translated_field_type_spec.rb +68 -0
- data/decidim-dev/README.md +1 -1
- data/decidim-dev/decidim-dev.gemspec +5 -3
- data/decidim-dev/lib/decidim/dummy_authorization_handler.rb +18 -0
- data/decidim-dev/lib/decidim/test/authorization_shared_examples.rb +31 -0
- data/decidim-dev/lib/decidim/test/base_spec_helper.rb +6 -1
- data/decidim-dev/lib/decidim/test/rspec_support/authenticated_controller_context.rb +9 -0
- data/decidim-dev/lib/decidim/test/rspec_support/authorization_handlers.rb +7 -0
- data/decidim-dev/lib/decidim/test/rspec_support/bullet.rb +15 -0
- data/decidim-dev/lib/decidim/test/rspec_support/engine_routes.rb +30 -0
- data/decidim-dev/lib/decidim/test/rspec_support/translation_helpers.rb +12 -0
- data/decidim-dev/lib/generators/decidim/dummy_generator.rb +10 -0
- data/decidim-dev/lib/generators/decidim/templates/bullet.rb +6 -0
- data/decidim-system/LICENSE.txt +619 -0
- data/decidim-system/README.md +1 -1
- data/decidim-system/app/assets/javascripts/decidim/system/application.js.es6 +10 -0
- data/decidim-system/app/mailers/decidim/system/application_mailer.rb +1 -1
- data/decidim-system/decidim-system.gemspec +4 -4
- data/decidim.gemspec +3 -2
- data/lib/decidim.rb +1 -6
- data/lib/generators/decidim/app_generator.rb +13 -1
- data/lib/generators/decidim/install_generator.rb +11 -2
- data/lib/generators/decidim/templates/Gemfile.erb +5 -2
- data/lib/generators/decidim/templates/authorization_handler.rb +50 -0
- data/lib/generators/decidim/templates/carrierwave.rb +27 -0
- data/lib/generators/decidim/templates/decidim.scss.erb +3 -0
- data/lib/generators/decidim/templates/initializer.rb +3 -1
- data/package.json +21 -0
- data/yarn.lock +890 -0
- metadata +102 -21
- data/.eslintrc +0 -213
- data/decidim-admin/app/assets/javascripts/decidim/admin/application.js +0 -22
- data/decidim-admin/app/controllers/concerns/decidim/needs_authorization.rb +0 -50
- data/decidim-admin/app/policies/decidim/admin/application_policy.rb +0 -20
- data/decidim-admin/app/policies/decidim/admin/dashboard_policy.rb +0 -15
- data/decidim-admin/app/policies/decidim/admin/organization_policy.rb +0 -15
- data/decidim-admin/app/policies/decidim/admin/participatory_process_policy.rb +0 -57
- data/decidim-admin/spec/policies/dashboard_policy_spec.rb +0 -23
- data/decidim-admin/spec/policies/organization_policy_spec.rb +0 -41
- data/decidim-admin/spec/policies/participatory_process_policy_spec.rb +0 -153
- data/decidim-system/app/assets/javascripts/decidim/system/application.js +0 -22
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Decidim::Admin::DeactivateParticipatoryProcessStep do
|
4
|
+
let(:process_step) { create :participatory_process_step, :active }
|
5
|
+
|
6
|
+
subject { described_class.new(process_step) }
|
7
|
+
|
8
|
+
context "when the step is nil" do
|
9
|
+
let(:process_step) { nil }
|
10
|
+
|
11
|
+
it "is not valid" do
|
12
|
+
expect { subject.call }.to broadcast(:invalid)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "when the step is inactive" do
|
17
|
+
let(:process_step) { create :participatory_process_step }
|
18
|
+
|
19
|
+
it "is not valid" do
|
20
|
+
expect { subject.call }.to broadcast(:invalid)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when the step is active" do
|
25
|
+
it "is valid" do
|
26
|
+
expect { subject.call }.to broadcast(:ok)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "deactivates it" do
|
30
|
+
subject.call
|
31
|
+
process_step.reload
|
32
|
+
expect(process_step).not_to be_active
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Decidim::Admin::PublishParticipatoryProcess do
|
4
|
+
let(:my_process) { create :participatory_process, :unpublished }
|
5
|
+
|
6
|
+
subject { described_class.new(my_process) }
|
7
|
+
|
8
|
+
context "when the process is nil" do
|
9
|
+
let(:my_process) { nil }
|
10
|
+
|
11
|
+
it "is not valid" do
|
12
|
+
expect { subject.call }.to broadcast(:invalid)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "when the process is published" do
|
17
|
+
let(:my_process) { create :participatory_process }
|
18
|
+
|
19
|
+
it "is not valid" do
|
20
|
+
expect { subject.call }.to broadcast(:invalid)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when the process is not published" do
|
25
|
+
it "is valid" do
|
26
|
+
expect { subject.call }.to broadcast(:ok)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "publishes it" do
|
30
|
+
subject.call
|
31
|
+
my_process.reload
|
32
|
+
expect(my_process).to be_published
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Decidim::Admin::ReorderParticipatoryProcessSteps do
|
4
|
+
let(:process) { create :participatory_process }
|
5
|
+
let!(:process_step1) do
|
6
|
+
create(
|
7
|
+
:participatory_process_step,
|
8
|
+
participatory_process: process,
|
9
|
+
position: 1
|
10
|
+
)
|
11
|
+
end
|
12
|
+
let!(:process_step2) do
|
13
|
+
create(
|
14
|
+
:participatory_process_step,
|
15
|
+
participatory_process: process,
|
16
|
+
position: 2
|
17
|
+
)
|
18
|
+
end
|
19
|
+
let(:collection) { process.steps }
|
20
|
+
let(:order) { [process_step2.id, process_step1.id] }
|
21
|
+
|
22
|
+
subject { described_class.new(collection, order) }
|
23
|
+
|
24
|
+
context "when the order is nil" do
|
25
|
+
let(:order) { nil }
|
26
|
+
|
27
|
+
it "is not valid" do
|
28
|
+
expect { subject.call }.to broadcast(:invalid)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "when the order is empty" do
|
33
|
+
let(:order) { [] }
|
34
|
+
|
35
|
+
it "is not valid" do
|
36
|
+
expect { subject.call }.to broadcast(:invalid)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "when the order is valid" do
|
41
|
+
it "is valid" do
|
42
|
+
expect { subject.call }.to broadcast(:ok)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "reorders the steps" do
|
46
|
+
subject.call
|
47
|
+
process_step1.reload
|
48
|
+
process_step2.reload
|
49
|
+
expect(process_step1.position).to eq 1
|
50
|
+
expect(process_step2.position).to eq 0
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Decidim::Admin::UnpublishParticipatoryProcess do
|
4
|
+
let(:my_process) { create :participatory_process }
|
5
|
+
|
6
|
+
subject { described_class.new(my_process) }
|
7
|
+
|
8
|
+
context "when the process is nil" do
|
9
|
+
let(:my_process) { nil }
|
10
|
+
|
11
|
+
it "is not valid" do
|
12
|
+
expect { subject.call }.to broadcast(:invalid)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "when the process is not published" do
|
17
|
+
let(:my_process) { create :participatory_process, :unpublished }
|
18
|
+
|
19
|
+
it "is not valid" do
|
20
|
+
expect { subject.call }.to broadcast(:invalid)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when the process is published" do
|
25
|
+
it "is valid" do
|
26
|
+
expect { subject.call }.to broadcast(:ok)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "unpublishes it" do
|
30
|
+
subject.call
|
31
|
+
my_process.reload
|
32
|
+
expect(my_process).not_to be_published
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
module Decidim
|
5
|
+
module Admin
|
6
|
+
describe ParticipatoryProcessesController, type: :controller do
|
7
|
+
let(:organization) { create(:organization) }
|
8
|
+
let!(:external_process) { create :participatory_process }
|
9
|
+
|
10
|
+
before do
|
11
|
+
@request.env["decidim.current_organization"] = organization
|
12
|
+
@request.env["devise.mapping"] = Devise.mappings[:user]
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "GET show" do
|
16
|
+
context "process in another organization" do
|
17
|
+
let(:user) { create(:user, :admin, :confirmed, organization: organization) }
|
18
|
+
|
19
|
+
before do
|
20
|
+
sign_in user, scope: :user
|
21
|
+
end
|
22
|
+
|
23
|
+
it "is not visible to the user" do
|
24
|
+
expect do
|
25
|
+
get :show, params: { id: external_process.id }
|
26
|
+
end.to raise_error(ActiveRecord::RecordNotFound)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe "Manage participatory process steps", type: :feature do
|
6
|
+
let(:organization) { create(:organization) }
|
7
|
+
let(:admin) { create(:user, :admin, :confirmed, organization: organization) }
|
8
|
+
let(:participatory_process) do
|
9
|
+
create(
|
10
|
+
:participatory_process,
|
11
|
+
organization: organization,
|
12
|
+
description: { en: "Description", ca: "Descripció", es: "Descripción" },
|
13
|
+
short_description: { en: "Short description", ca: "Descripció curta", es: "Descripción corta" }
|
14
|
+
)
|
15
|
+
end
|
16
|
+
let(:active) { false }
|
17
|
+
let!(:process_step) do
|
18
|
+
create(
|
19
|
+
:participatory_process_step,
|
20
|
+
participatory_process: participatory_process,
|
21
|
+
active: active,
|
22
|
+
description: { en: "Description", ca: "Descripció", es: "Descripción" },
|
23
|
+
short_description: { en: "Short description", ca: "Descripció curta", es: "Descripción corta" }
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
before do
|
28
|
+
switch_to_host(organization.host)
|
29
|
+
login_as admin, scope: :user
|
30
|
+
visit decidim_admin.participatory_process_path(participatory_process)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "displays all fields from a single participatory process" do
|
34
|
+
within "table" do
|
35
|
+
click_link translated(process_step.title)
|
36
|
+
end
|
37
|
+
|
38
|
+
within "dl" do
|
39
|
+
expect(page).to have_content(translated(process_step.title, locale: :en))
|
40
|
+
expect(page).to have_content(translated(process_step.title, locale: :es))
|
41
|
+
expect(page).to have_content(translated(process_step.title, locale: :ca))
|
42
|
+
expect(page).to have_content(translated(process_step.short_description, locale: :en))
|
43
|
+
expect(page).to have_content(translated(process_step.short_description, locale: :es))
|
44
|
+
expect(page).to have_content(translated(process_step.short_description, locale: :ca))
|
45
|
+
expect(page).to have_content(translated(process_step.description, locale: :en))
|
46
|
+
expect(page).to have_content(translated(process_step.description, locale: :es))
|
47
|
+
expect(page).to have_content(translated(process_step.description, locale: :ca))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it "creates a new participatory_process" do
|
52
|
+
find("#steps .actions .new").click
|
53
|
+
|
54
|
+
within ".new_participatory_process_step" do
|
55
|
+
fill_in :participatory_process_step_title_en, with: "My participatory process step"
|
56
|
+
fill_in :participatory_process_step_title_es, with: "Mi fase de proceso participativo"
|
57
|
+
fill_in :participatory_process_step_title_ca, with: "La meva fase de procés participatiu"
|
58
|
+
fill_in :participatory_process_step_short_description_en, with: "Short description"
|
59
|
+
fill_in :participatory_process_step_short_description_es, with: "Descripción corta"
|
60
|
+
fill_in :participatory_process_step_short_description_ca, with: "Descripció curta"
|
61
|
+
fill_in :participatory_process_step_description_en, with: "A longer description"
|
62
|
+
fill_in :participatory_process_step_description_es, with: "Descripción más larga"
|
63
|
+
fill_in :participatory_process_step_description_ca, with: "Descripció més llarga"
|
64
|
+
fill_in :participatory_process_step_start_date, with: 1.months.ago
|
65
|
+
fill_in :participatory_process_step_end_date, with: 2.months.from_now
|
66
|
+
|
67
|
+
find("*[type=submit]").click
|
68
|
+
end
|
69
|
+
|
70
|
+
within ".flash" do
|
71
|
+
expect(page).to have_content("successfully")
|
72
|
+
end
|
73
|
+
|
74
|
+
within "table" do
|
75
|
+
expect(page).to have_content("My participatory process step")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it "updates a participatory_process_step" do
|
80
|
+
within "#steps" do
|
81
|
+
within find("tr", text: translated(process_step.title)) do
|
82
|
+
click_link "Edit"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
within ".edit_participatory_process_step" do
|
87
|
+
fill_in :participatory_process_step_title_en, with: "My new title"
|
88
|
+
fill_in :participatory_process_step_title_es, with: "Mi nuevo título"
|
89
|
+
fill_in :participatory_process_step_title_ca, with: "El meu nou títol"
|
90
|
+
|
91
|
+
find("*[type=submit]").click
|
92
|
+
end
|
93
|
+
|
94
|
+
within ".flash" do
|
95
|
+
expect(page).to have_content("successfully")
|
96
|
+
end
|
97
|
+
|
98
|
+
within "#steps table" do
|
99
|
+
expect(page).to have_content("My new title")
|
100
|
+
click_link("My new title")
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "deleting a participatory process step" do
|
105
|
+
let!(:process_step2) { create(:participatory_process_step, participatory_process: participatory_process) }
|
106
|
+
|
107
|
+
before do
|
108
|
+
visit decidim_admin.participatory_process_path(participatory_process)
|
109
|
+
end
|
110
|
+
|
111
|
+
it "deletes a participatory_process_step" do
|
112
|
+
within find("tr", text: translated(process_step2.title)) do
|
113
|
+
click_link "Destroy"
|
114
|
+
end
|
115
|
+
|
116
|
+
within ".flash" do
|
117
|
+
expect(page).to have_content("successfully")
|
118
|
+
end
|
119
|
+
|
120
|
+
within "table" do
|
121
|
+
expect(page).to_not have_content(translated(process_step2.title))
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
context "activating a step" do
|
127
|
+
it "activates a step" do
|
128
|
+
within find("tr", text: translated(process_step.title)) do
|
129
|
+
click_link "Activate"
|
130
|
+
end
|
131
|
+
|
132
|
+
within find("tr", text: translated(process_step.title)) do
|
133
|
+
expect(page).to have_content("Deactivate")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
context "deactivating a step" do
|
139
|
+
let(:active) { true }
|
140
|
+
|
141
|
+
it "deactivates a step" do
|
142
|
+
within find("tr", text: translated(process_step.title)) do
|
143
|
+
click_link "Deactivate"
|
144
|
+
end
|
145
|
+
|
146
|
+
within find("tr", text: translated(process_step.title)) do
|
147
|
+
expect(page).to have_content("Activate")
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -17,7 +17,14 @@ describe "Manage participatory processes", type: :feature do
|
|
17
17
|
end
|
18
18
|
let(:organization) { create(:organization) }
|
19
19
|
let(:admin) { create(:user, :admin, :confirmed, organization: organization) }
|
20
|
-
let!(:participatory_process)
|
20
|
+
let!(:participatory_process) do
|
21
|
+
create(
|
22
|
+
:participatory_process,
|
23
|
+
organization: organization,
|
24
|
+
description: { en: "Description", ca: "Descripció", es: "Descripción" },
|
25
|
+
short_description: { en: "Short description", ca: "Descripció curta", es: "Descripción corta" }
|
26
|
+
)
|
27
|
+
end
|
21
28
|
|
22
29
|
before do
|
23
30
|
switch_to_host(organization.host)
|
@@ -31,18 +38,18 @@ describe "Manage participatory processes", type: :feature do
|
|
31
38
|
end
|
32
39
|
|
33
40
|
within "dl" do
|
34
|
-
expect(page).to have_content(participatory_process.title
|
35
|
-
expect(page).to have_content(participatory_process.title
|
36
|
-
expect(page).to have_content(participatory_process.title
|
37
|
-
expect(page).to have_content(participatory_process.subtitle
|
38
|
-
expect(page).to have_content(participatory_process.subtitle
|
39
|
-
expect(page).to have_content(participatory_process.subtitle
|
40
|
-
expect(page).to have_content(participatory_process.short_description
|
41
|
-
expect(page).to have_content(participatory_process.short_description
|
42
|
-
expect(page).to have_content(participatory_process.short_description
|
43
|
-
expect(page).to have_content(participatory_process.description
|
44
|
-
expect(page).to have_content(participatory_process.description
|
45
|
-
expect(page).to have_content(participatory_process.description
|
41
|
+
expect(page).to have_content(translated(participatory_process.title, locale: :en))
|
42
|
+
expect(page).to have_content(translated(participatory_process.title, locale: :es))
|
43
|
+
expect(page).to have_content(translated(participatory_process.title, locale: :ca))
|
44
|
+
expect(page).to have_content(translated(participatory_process.subtitle, locale: :en))
|
45
|
+
expect(page).to have_content(translated(participatory_process.subtitle, locale: :es))
|
46
|
+
expect(page).to have_content(translated(participatory_process.subtitle, locale: :ca))
|
47
|
+
expect(page).to have_content(translated(participatory_process.short_description, locale: :en))
|
48
|
+
expect(page).to have_content(translated(participatory_process.short_description, locale: :es))
|
49
|
+
expect(page).to have_content(translated(participatory_process.short_description, locale: :ca))
|
50
|
+
expect(page).to have_content(translated(participatory_process.description, locale: :en))
|
51
|
+
expect(page).to have_content(translated(participatory_process.description, locale: :es))
|
52
|
+
expect(page).to have_content(translated(participatory_process.description, locale: :ca))
|
46
53
|
expect(page).to have_content(participatory_process.hashtag)
|
47
54
|
expect(page).to have_content(participatory_process.slug)
|
48
55
|
expect(page).to have_xpath("//img[@src=\"#{participatory_process.hero_image.url}\"]")
|
@@ -90,7 +97,7 @@ describe "Manage participatory processes", type: :feature do
|
|
90
97
|
end
|
91
98
|
|
92
99
|
it "updates an participatory_process" do
|
93
|
-
within find("tr", text: participatory_process.title
|
100
|
+
within find("tr", text: translated(participatory_process.title)) do
|
94
101
|
click_link "Edit"
|
95
102
|
end
|
96
103
|
|
@@ -119,14 +126,14 @@ describe "Manage participatory processes", type: :feature do
|
|
119
126
|
end
|
120
127
|
|
121
128
|
context "deleting a participatory process" do
|
122
|
-
let!(:participatory_process2) { create(:
|
129
|
+
let!(:participatory_process2) { create(:participatory_process, organization: organization) }
|
123
130
|
|
124
131
|
before do
|
125
132
|
visit decidim_admin.participatory_processes_path
|
126
133
|
end
|
127
134
|
|
128
135
|
it "deletes a participatory_process" do
|
129
|
-
within find("tr", text: participatory_process2.title
|
136
|
+
within find("tr", text: translated(participatory_process2.title)) do
|
130
137
|
click_link "Destroy"
|
131
138
|
end
|
132
139
|
|
@@ -135,44 +142,85 @@ describe "Manage participatory processes", type: :feature do
|
|
135
142
|
end
|
136
143
|
|
137
144
|
within "table" do
|
138
|
-
expect(page).to_not have_content(participatory_process2.title)
|
145
|
+
expect(page).to_not have_content(translated(participatory_process2.title))
|
139
146
|
end
|
140
147
|
end
|
141
148
|
end
|
142
149
|
|
143
|
-
context "
|
144
|
-
let!(:
|
150
|
+
context "publishing a process" do
|
151
|
+
let!(:participatory_process) { create(:participatory_process, :unpublished, organization: organization) }
|
145
152
|
|
146
|
-
|
147
|
-
|
153
|
+
context "from the index page" do
|
154
|
+
it "publishes the process" do
|
155
|
+
click_link "Publish"
|
156
|
+
expect(page).to have_content("published successfully")
|
157
|
+
expect(page).to have_content("Unpublish")
|
158
|
+
expect(current_path).to eq decidim_admin.participatory_processes_path
|
159
|
+
|
160
|
+
participatory_process.reload
|
161
|
+
expect(participatory_process).to be_published
|
162
|
+
end
|
148
163
|
end
|
149
164
|
|
150
|
-
|
151
|
-
|
152
|
-
|
165
|
+
context "from the process page" do
|
166
|
+
before do
|
167
|
+
click_link translated(participatory_process.title)
|
168
|
+
end
|
169
|
+
|
170
|
+
it "publishes the process" do
|
171
|
+
click_link "Publish"
|
172
|
+
expect(page).to have_content("published successfully")
|
173
|
+
expect(page).to have_content("Unpublish")
|
174
|
+
expect(current_path).to eq decidim_admin.participatory_process_path(participatory_process)
|
175
|
+
|
176
|
+
participatory_process.reload
|
177
|
+
expect(participatory_process).to be_published
|
153
178
|
end
|
154
179
|
end
|
155
180
|
end
|
156
181
|
|
157
|
-
context "
|
158
|
-
let(:
|
159
|
-
let(:policy_edit) { true }
|
182
|
+
context "unpublishing a process" do
|
183
|
+
let!(:participatory_process) { create(:participatory_process, organization: organization) }
|
160
184
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
.
|
185
|
+
context "from the index page" do
|
186
|
+
it "unpublishes the process" do
|
187
|
+
click_link "Unpublish"
|
188
|
+
expect(page).to have_content("unpublished successfully")
|
189
|
+
expect(page).to have_content("Publish")
|
190
|
+
expect(current_path).to eq decidim_admin.participatory_processes_path
|
191
|
+
|
192
|
+
participatory_process.reload
|
193
|
+
expect(participatory_process).not_to be_published
|
194
|
+
end
|
165
195
|
end
|
166
196
|
|
167
|
-
context "
|
168
|
-
|
197
|
+
context "from the process page" do
|
198
|
+
before do
|
199
|
+
click_link translated(participatory_process.title)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "unpublishes the process" do
|
203
|
+
click_link "Unpublish"
|
204
|
+
expect(page).to have_content("unpublished successfully")
|
205
|
+
expect(page).to have_content("Publish")
|
206
|
+
expect(current_path).to eq decidim_admin.participatory_process_path(participatory_process)
|
207
|
+
|
208
|
+
participatory_process.reload
|
209
|
+
expect(participatory_process).not_to be_published
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
context "when there are multiple organizations in the system" do
|
215
|
+
let!(:external_participatory_process) { create(:participatory_process) }
|
169
216
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
217
|
+
before do
|
218
|
+
visit decidim_admin.participatory_processes_path
|
219
|
+
end
|
220
|
+
|
221
|
+
it "doesn't let the admin manage processes form other organizations" do
|
222
|
+
within "table" do
|
223
|
+
expect(page).to_not have_content(external_participatory_process.title)
|
176
224
|
end
|
177
225
|
end
|
178
226
|
end
|