decidim-consultations 0.11.2 → 0.12.0.pre
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.
- checksums.yaml +4 -4
- data/app/assets/config/decidim_consultations_manifest.css +4 -0
- data/app/assets/stylesheets/decidim/consultations/consultations.scss +0 -1
- data/app/cells/decidim/consultations/consultation_cell.rb +19 -0
- data/app/cells/decidim/consultations/consultation_m/data.erb +21 -0
- data/app/cells/decidim/consultations/consultation_m/footer.erb +5 -0
- data/app/cells/decidim/consultations/consultation_m_cell.rb +94 -0
- data/app/commands/decidim/consultations/admin/update_consultation.rb +2 -1
- data/app/controllers/concerns/decidim/consultations/action_authorization.rb +2 -2
- data/app/controllers/concerns/decidim/consultations/admin/consultation_admin.rb +7 -0
- data/app/controllers/concerns/decidim/consultations/admin/question_admin.rb +7 -0
- data/app/controllers/concerns/decidim/consultations/needs_consultation.rb +0 -4
- data/app/controllers/concerns/decidim/consultations/needs_question.rb +0 -7
- data/app/controllers/decidim/consultations/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/consultations/admin/consultation_publications_controller.rb +3 -3
- data/app/controllers/decidim/consultations/admin/consultation_results_publications_controller.rb +3 -3
- data/app/controllers/decidim/consultations/admin/consultations_controller.rb +6 -10
- data/app/controllers/decidim/consultations/admin/question_attachments_controller.rb +1 -1
- data/app/controllers/decidim/consultations/admin/question_publications_controller.rb +3 -3
- data/app/controllers/decidim/consultations/admin/questions_controller.rb +6 -10
- data/app/controllers/decidim/consultations/admin/responses_controller.rb +7 -7
- data/app/controllers/decidim/consultations/application_controller.rb +25 -0
- data/app/controllers/decidim/consultations/consultations_controller.rb +3 -17
- data/app/controllers/decidim/consultations/question_votes_controller.rb +3 -3
- data/app/controllers/decidim/consultations/questions_controller.rb +2 -2
- data/app/forms/decidim/consultations/admin/consultation_form.rb +1 -0
- data/app/models/decidim/consultation.rb +4 -3
- data/app/models/decidim/consultations/question.rb +22 -1
- data/app/permissions/decidim/consultations/admin/permissions.rb +108 -0
- data/app/permissions/decidim/consultations/permissions.rb +55 -0
- data/app/views/decidim/consultations/admin/consultations/edit.html.erb +4 -4
- data/app/views/decidim/consultations/admin/consultations/index.html.erb +5 -5
- data/app/views/decidim/consultations/admin/questions/edit.html.erb +2 -2
- data/app/views/decidim/consultations/admin/questions/index.html.erb +5 -5
- data/app/views/decidim/consultations/admin/responses/edit.html.erb +1 -1
- data/app/views/decidim/consultations/admin/responses/index.html.erb +3 -3
- data/app/views/decidim/consultations/consultation_widgets/show.html.erb +0 -2
- data/app/views/decidim/consultations/consultations/_consultations.html.erb +1 -1
- data/app/views/decidim/consultations/consultations/_regular_questions.html.erb +2 -2
- data/app/views/decidim/consultations/consultations/show.html.erb +0 -8
- data/app/views/decidim/consultations/question_votes/update_vote_button.js.erb +3 -0
- data/app/views/decidim/consultations/questions/_vote_button.html.erb +15 -28
- data/app/views/decidim/consultations/questions/_vote_modal.html.erb +1 -1
- data/app/views/decidim/consultations/questions/_vote_modal_confirm.html.erb +1 -1
- data/app/views/layouts/decidim/_question_components.html.erb +3 -2
- data/app/views/layouts/decidim/admin/consultation.html.erb +7 -4
- data/app/views/layouts/decidim/admin/consultations.html.erb +16 -10
- data/app/views/layouts/decidim/admin/question.html.erb +11 -8
- data/app/views/layouts/decidim/consultation.html.erb +0 -2
- data/app/views/layouts/decidim/consultation_choose.html.erb +0 -2
- data/app/views/layouts/decidim/question.html.erb +0 -1
- data/config/locales/ca.yml +33 -11
- data/config/locales/en.yml +33 -11
- data/config/locales/es.yml +33 -11
- data/config/locales/eu.yml +33 -11
- data/config/locales/fi.yml +33 -11
- data/config/locales/fr.yml +33 -11
- data/config/locales/gl.yml +33 -11
- data/config/locales/it.yml +33 -11
- data/config/locales/nl.yml +33 -11
- data/config/locales/pl.yml +41 -11
- data/config/locales/pt-BR.yml +33 -11
- data/config/locales/pt.yml +33 -11
- data/config/locales/ru.yml +1 -3
- data/config/locales/sv.yml +33 -11
- data/config/locales/uk.yml +41 -11
- data/lib/decidim/consultations/admin_engine.rb +1 -11
- data/lib/decidim/consultations/engine.rb +6 -11
- data/lib/decidim/consultations/participatory_space.rb +64 -105
- data/lib/decidim/consultations/version.rb +1 -1
- metadata +20 -19
- data/app/assets/config/decidim_consultations_manifest.scss +0 -3
- data/app/models/decidim/consultations/abilities/admin/consultation_admin_ability.rb +0 -34
- data/app/models/decidim/consultations/abilities/admin/question_admin_ability.rb +0 -30
- data/app/models/decidim/consultations/abilities/admin/response_admin_ability.rb +0 -26
- data/app/models/decidim/consultations/abilities/current_user_ability.rb +0 -45
- data/app/models/decidim/consultations/abilities/everyone_ability.rb +0 -23
- data/app/views/decidim/consultations/consultations/finished.html.erb +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3687d66f875124321caae8e824709f4dc8e1b47e2b71751f594030b9eac70cb1
|
|
4
|
+
data.tar.gz: 5c5e9fc8a1eff2165b2052f6b77975e0ed4d7759035459a1debe70345ed51a78
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a23c8a387de98f21298702fd69b07a72c25b373669f93dea76709db4a8eae9e6d0abc40e9abc967da54a2ed2ed9098373e27ce2a4cee9fad8e6759d43cf5f4de
|
|
7
|
+
data.tar.gz: b76ca509bc411841972fdb39f80e58ac54cd32b742c341398b63c998ec25aec609dc918a1c6fa3841dc8d20faeaab74de78570bd943f9139ce5e81499b4b1ef1
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Consultations
|
|
5
|
+
# This cell renders the card for an instance of a Question
|
|
6
|
+
# the default size is the Medium Card (:m)
|
|
7
|
+
class ConsultationCell < Decidim::ViewModel
|
|
8
|
+
def show
|
|
9
|
+
cell card_size, model
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def card_size
|
|
15
|
+
"decidim/consultations/consultation_m"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<div class="card__icondata">
|
|
2
|
+
<ul class="card-data">
|
|
3
|
+
<li class="card-data__item">
|
|
4
|
+
<%= icon "datetime", class: "icon--big" %>
|
|
5
|
+
</li>
|
|
6
|
+
<li class="card-data__item">
|
|
7
|
+
<div class="card-data__item--centerblock">
|
|
8
|
+
<strong><%= t("activemodel.attributes.consultation.start_voting_date") %></strong>
|
|
9
|
+
<br />
|
|
10
|
+
<%= start_date ? l(start_date, format: :decidim_short) : t("decidim.consultations.show.unspecified") %>
|
|
11
|
+
</div>
|
|
12
|
+
</li>
|
|
13
|
+
<li class="card-data__item">
|
|
14
|
+
<div class="card-data__item--centerblock">
|
|
15
|
+
<strong><%= t("activemodel.attributes.consultation.end_voting_date") %></strong>
|
|
16
|
+
<br />
|
|
17
|
+
<%= end_date ? l(end_date, format: :decidim_short) : t("decidim.consultations.show.unspecified") %>
|
|
18
|
+
</div>
|
|
19
|
+
</li>
|
|
20
|
+
</ul>
|
|
21
|
+
</div>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Consultations
|
|
5
|
+
# This cell renders the Medium (:m) question card
|
|
6
|
+
# for an given instance of a Question
|
|
7
|
+
class ConsultationMCell < Decidim::CardMCell
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def has_state?
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def state_classes
|
|
15
|
+
state_data[:state_classes]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Even though we need to render the badge, we can't do it in the normal
|
|
19
|
+
# way, because the paragraph comes from a user input and contains HTML.
|
|
20
|
+
# This causes the badge and the paragraph to appear in different lines.
|
|
21
|
+
# In order to fix it, check the `description` method.
|
|
22
|
+
def has_badge?
|
|
23
|
+
false
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def badge_name
|
|
27
|
+
text = state_data[:badge_name]
|
|
28
|
+
return unless text
|
|
29
|
+
|
|
30
|
+
I18n.t(text, scope: "decidim.consultations.show.badge_name")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# In order to render the badge inline with the paragraph text we need to
|
|
34
|
+
# find the opening `<p>` tag and include the badge right after it. This
|
|
35
|
+
# makes the layout look good.
|
|
36
|
+
def description
|
|
37
|
+
text = super
|
|
38
|
+
text.gsub!(/^<p>/, "<p>#{render :badge}")
|
|
39
|
+
html_truncate(text, length: 100)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def resource_path
|
|
43
|
+
Decidim::Consultations::Engine.routes.url_helpers.consultation_path(model)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def resource_image_path
|
|
47
|
+
model.banner_image.url
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def has_image?
|
|
51
|
+
true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def start_date
|
|
55
|
+
model.start_voting_date
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def end_date
|
|
59
|
+
model.end_voting_date
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def statuses
|
|
63
|
+
super << :questions_count
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def questions_count_status
|
|
67
|
+
content_tag(
|
|
68
|
+
:strong,
|
|
69
|
+
t("activemodel.attributes.consultation.questions")
|
|
70
|
+
) + " " + model.questions.count.to_s
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def footer_button_text
|
|
74
|
+
state_data[:button_text]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Internal: Calculates and caches the data related to the state of the
|
|
78
|
+
# current consultation.
|
|
79
|
+
def state_data
|
|
80
|
+
@state_data ||= if model.active?
|
|
81
|
+
{ state: :active, badge_name: "open_votes", state_classes: ["success"], button_text: "vote" }
|
|
82
|
+
elsif model.upcoming?
|
|
83
|
+
{ state: :upcoming, badge_name: "open", state_classes: ["warning"], button_text: "debate" }
|
|
84
|
+
elsif model.finished?
|
|
85
|
+
{ state: :finished, badge_name: "finished", state_classes: ["muted"], button_text: "view" }
|
|
86
|
+
elsif model.published_results?
|
|
87
|
+
{ state: :published_results, badge_name: "published_results", state_classes: ["muted"], button_text: "view_results" }
|
|
88
|
+
else
|
|
89
|
+
{ state: :undefined, badge_name: nil, state_classes: ["muted"], button_text: "view" }
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -55,7 +55,8 @@ module Decidim
|
|
|
55
55
|
introductory_video_url: form.introductory_video_url,
|
|
56
56
|
start_voting_date: form.start_voting_date,
|
|
57
57
|
end_voting_date: form.end_voting_date,
|
|
58
|
-
introductory_image: form.introductory_image
|
|
58
|
+
introductory_image: form.introductory_image,
|
|
59
|
+
remove_introductory_image: form.remove_introductory_image
|
|
59
60
|
}
|
|
60
61
|
end
|
|
61
62
|
end
|
|
@@ -16,8 +16,8 @@ module Decidim
|
|
|
16
16
|
# action_name - The action to authorize against.
|
|
17
17
|
#
|
|
18
18
|
# Returns an AuthorizationStatus
|
|
19
|
-
def action_authorization(action_name)
|
|
20
|
-
return AuthorizationStatus.new(:ok) if
|
|
19
|
+
def action_authorization(action_name, question = current_question)
|
|
20
|
+
return AuthorizationStatus.new(:ok) if allowed_to?(action_name.to_sym, :question, question: question)
|
|
21
21
|
|
|
22
22
|
AuthorizationStatus.new(:denied)
|
|
23
23
|
end
|
|
@@ -17,6 +17,13 @@ module Decidim
|
|
|
17
17
|
layout "decidim/admin/consultation"
|
|
18
18
|
|
|
19
19
|
alias_method :current_participatory_space, :current_consultation
|
|
20
|
+
|
|
21
|
+
def permission_class_chain
|
|
22
|
+
[
|
|
23
|
+
Decidim::Consultations::Permissions,
|
|
24
|
+
Decidim::Admin::Permissions
|
|
25
|
+
]
|
|
26
|
+
end
|
|
20
27
|
end
|
|
21
28
|
end
|
|
22
29
|
end
|
|
@@ -21,6 +21,13 @@ module Decidim
|
|
|
21
21
|
return current_consultation if params.has_key? :consultation_slug
|
|
22
22
|
current_question
|
|
23
23
|
end
|
|
24
|
+
|
|
25
|
+
def permission_class_chain
|
|
26
|
+
[
|
|
27
|
+
Decidim::Consultations::Permissions,
|
|
28
|
+
Decidim::Admin::Permissions
|
|
29
|
+
]
|
|
30
|
+
end
|
|
24
31
|
end
|
|
25
32
|
end
|
|
26
33
|
end
|
|
@@ -36,10 +36,6 @@ module Decidim
|
|
|
36
36
|
|
|
37
37
|
private
|
|
38
38
|
|
|
39
|
-
def ability_context
|
|
40
|
-
super.merge(current_consultation: current_consultation)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
39
|
def detect_consultation
|
|
44
40
|
request.env["current_consultation"] ||
|
|
45
41
|
organization_consultations.find_by(slug: params[:consultation_slug] || params[:slug])
|
|
@@ -49,13 +49,6 @@ module Decidim
|
|
|
49
49
|
|
|
50
50
|
private
|
|
51
51
|
|
|
52
|
-
def ability_context
|
|
53
|
-
super.merge(
|
|
54
|
-
current_question: current_question,
|
|
55
|
-
current_consultation: current_consultation
|
|
56
|
-
)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
52
|
def detect_question
|
|
60
53
|
request.env["current_question"] ||
|
|
61
54
|
OrganizationQuestions.for(current_organization).find_by(slug: params[:question_slug] || params[:slug])
|
|
@@ -8,6 +8,21 @@ module Decidim
|
|
|
8
8
|
layout "decidim/admin/consultations"
|
|
9
9
|
|
|
10
10
|
helper Decidim::SanitizeHelper
|
|
11
|
+
|
|
12
|
+
include NeedsPermission
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def permission_class_chain
|
|
17
|
+
[
|
|
18
|
+
Decidim::Consultations::Permissions,
|
|
19
|
+
Decidim::Admin::Permissions
|
|
20
|
+
]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def permission_scope
|
|
24
|
+
:admin
|
|
25
|
+
end
|
|
11
26
|
end
|
|
12
27
|
end
|
|
13
28
|
end
|
|
@@ -4,11 +4,11 @@ module Decidim
|
|
|
4
4
|
module Consultations
|
|
5
5
|
module Admin
|
|
6
6
|
# Controller that allows managing consultation publications.
|
|
7
|
-
class ConsultationPublicationsController < Decidim::Admin::ApplicationController
|
|
7
|
+
class ConsultationPublicationsController < Decidim::Consultations::Admin::ApplicationController
|
|
8
8
|
include ConsultationAdmin
|
|
9
9
|
|
|
10
10
|
def create
|
|
11
|
-
|
|
11
|
+
enforce_permission_to :publish, :consultation, consultation: current_consultation
|
|
12
12
|
|
|
13
13
|
PublishConsultation.call(current_consultation) do
|
|
14
14
|
on(:ok) do
|
|
@@ -24,7 +24,7 @@ module Decidim
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def destroy
|
|
27
|
-
|
|
27
|
+
enforce_permission_to :publish, :consultation, consultation: current_consultation
|
|
28
28
|
|
|
29
29
|
UnpublishConsultation.call(current_consultation) do
|
|
30
30
|
on(:ok) do
|
data/app/controllers/decidim/consultations/admin/consultation_results_publications_controller.rb
CHANGED
|
@@ -4,11 +4,11 @@ module Decidim
|
|
|
4
4
|
module Consultations
|
|
5
5
|
module Admin
|
|
6
6
|
# Controller that allows managing consultation result publications.
|
|
7
|
-
class ConsultationResultsPublicationsController < Decidim::Admin::ApplicationController
|
|
7
|
+
class ConsultationResultsPublicationsController < Decidim::Consultations::Admin::ApplicationController
|
|
8
8
|
include ConsultationAdmin
|
|
9
9
|
|
|
10
10
|
def create
|
|
11
|
-
|
|
11
|
+
enforce_permission_to :publish_results, :consultation, consultation: current_consultation
|
|
12
12
|
|
|
13
13
|
PublishConsultationResults.call(current_consultation) do
|
|
14
14
|
on(:ok) do
|
|
@@ -24,7 +24,7 @@ module Decidim
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def destroy
|
|
27
|
-
|
|
27
|
+
enforce_permission_to :unpublish_results, :consultation, consultation: current_consultation
|
|
28
28
|
|
|
29
29
|
UnpublishConsultationResults.call(current_consultation) do
|
|
30
30
|
on(:ok) do
|
|
@@ -9,19 +9,19 @@ module Decidim
|
|
|
9
9
|
|
|
10
10
|
# GET /admin/consultations
|
|
11
11
|
def index
|
|
12
|
-
|
|
12
|
+
enforce_permission_to :read, :consultation
|
|
13
13
|
@consultations = collection
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
# GET /admin/consultations/new
|
|
17
17
|
def new
|
|
18
|
-
|
|
18
|
+
enforce_permission_to :create, :consultation
|
|
19
19
|
@form = consultation_form.instance
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# POST /admin/consultations
|
|
23
23
|
def create
|
|
24
|
-
|
|
24
|
+
enforce_permission_to :create, :consultation
|
|
25
25
|
@form = consultation_form.from_params(params)
|
|
26
26
|
|
|
27
27
|
CreateConsultation.call(@form) do
|
|
@@ -39,14 +39,14 @@ module Decidim
|
|
|
39
39
|
|
|
40
40
|
# GET /admin/consultations/:slug/edit
|
|
41
41
|
def edit
|
|
42
|
-
|
|
42
|
+
enforce_permission_to :update, :consultation, consultation: current_consultation
|
|
43
43
|
@form = consultation_form.from_model(current_consultation)
|
|
44
44
|
render layout: "decidim/admin/consultation"
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# PUT /admin/initiatives/:id
|
|
48
48
|
def update
|
|
49
|
-
|
|
49
|
+
enforce_permission_to :update, :consultation, consultation: current_consultation
|
|
50
50
|
|
|
51
51
|
@form = consultation_form
|
|
52
52
|
.from_params(params.except(:slug), consultation_id: current_consultation.id)
|
|
@@ -65,7 +65,7 @@ module Decidim
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def destroy
|
|
68
|
-
|
|
68
|
+
enforce_permission_to :destroy, :consultation, consultation: current_consultation
|
|
69
69
|
current_consultation.destroy!
|
|
70
70
|
|
|
71
71
|
flash[:notice] = I18n.t("consultations.destroy.success", scope: "decidim.admin")
|
|
@@ -87,10 +87,6 @@ module Decidim
|
|
|
87
87
|
@collection ||= OrganizationConsultations.new(current_user.organization).query
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
def ability_context
|
|
91
|
-
super.merge(current_consultation: current_consultation)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
90
|
def consultation_form
|
|
95
91
|
form(ConsultationForm)
|
|
96
92
|
end
|
|
@@ -4,7 +4,7 @@ module Decidim
|
|
|
4
4
|
module Consultations
|
|
5
5
|
module Admin
|
|
6
6
|
# Controller that allows managing all the attachments for a question
|
|
7
|
-
class QuestionAttachmentsController < Decidim::Admin::ApplicationController
|
|
7
|
+
class QuestionAttachmentsController < Decidim::Consultations::Admin::ApplicationController
|
|
8
8
|
include QuestionAdmin
|
|
9
9
|
include Decidim::Admin::Concerns::HasAttachments
|
|
10
10
|
|
|
@@ -4,11 +4,11 @@ module Decidim
|
|
|
4
4
|
module Consultations
|
|
5
5
|
module Admin
|
|
6
6
|
# Controller that allows managing question publications.
|
|
7
|
-
class QuestionPublicationsController < Decidim::Admin::ApplicationController
|
|
7
|
+
class QuestionPublicationsController < Decidim::Consultations::Admin::ApplicationController
|
|
8
8
|
include QuestionAdmin
|
|
9
9
|
|
|
10
10
|
def create
|
|
11
|
-
|
|
11
|
+
enforce_permission_to :publish, :question, question: current_question
|
|
12
12
|
|
|
13
13
|
PublishQuestion.call(current_question) do
|
|
14
14
|
on(:ok) do
|
|
@@ -24,7 +24,7 @@ module Decidim
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def destroy
|
|
27
|
-
|
|
27
|
+
enforce_permission_to :publish, :question, question: current_question
|
|
28
28
|
|
|
29
29
|
UnpublishConsultation.call(current_question) do
|
|
30
30
|
on(:ok) do
|
|
@@ -7,19 +7,19 @@ module Decidim
|
|
|
7
7
|
include QuestionAdmin
|
|
8
8
|
|
|
9
9
|
def index
|
|
10
|
-
|
|
10
|
+
enforce_permission_to :read, :question
|
|
11
11
|
@questions = collection
|
|
12
12
|
render layout: "decidim/admin/consultation"
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def new
|
|
16
|
-
|
|
16
|
+
enforce_permission_to :create, :question
|
|
17
17
|
@form = question_form.instance
|
|
18
18
|
render layout: "decidim/admin/consultation"
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def create
|
|
22
|
-
|
|
22
|
+
enforce_permission_to :create, :question
|
|
23
23
|
@form = question_form.from_params(params, current_consultation: current_consultation)
|
|
24
24
|
|
|
25
25
|
CreateQuestion.call(@form) do
|
|
@@ -36,13 +36,13 @@ module Decidim
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def edit
|
|
39
|
-
|
|
39
|
+
enforce_permission_to :update, :question, question: current_question
|
|
40
40
|
@form = question_form.from_model(current_question, current_consultation: current_consultation)
|
|
41
41
|
render layout: "decidim/admin/question"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def update
|
|
45
|
-
|
|
45
|
+
enforce_permission_to :update, :question, question: current_question
|
|
46
46
|
|
|
47
47
|
@form = question_form
|
|
48
48
|
.from_params(params, question_id: current_question.id, current_consultation: current_consultation)
|
|
@@ -61,7 +61,7 @@ module Decidim
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def destroy
|
|
64
|
-
|
|
64
|
+
enforce_permission_to :destroy, :question, question: current_question
|
|
65
65
|
current_question.destroy!
|
|
66
66
|
|
|
67
67
|
flash[:notice] = I18n.t("questions.destroy.success", scope: "decidim.admin")
|
|
@@ -75,10 +75,6 @@ module Decidim
|
|
|
75
75
|
@collection ||= current_consultation&.questions
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
-
def ability_context
|
|
79
|
-
super.merge(current_consultation: current_consultation)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
78
|
def question_form
|
|
83
79
|
form(QuestionForm)
|
|
84
80
|
end
|