decidim-proposals 0.28.4 → 0.29.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -18
- data/app/cells/decidim/proposals/cost_report_cell.rb +0 -3
- data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +1 -1
- data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +1 -1
- data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +2 -3
- data/app/cells/decidim/proposals/proposal_cell.rb +2 -0
- data/app/cells/decidim/proposals/proposal_g/show.erb +23 -0
- data/app/cells/decidim/proposals/proposal_g_cell.rb +48 -0
- data/app/cells/decidim/proposals/proposal_l_cell.rb +1 -3
- data/app/cells/decidim/proposals/proposal_metadata_cell.rb +23 -15
- data/app/commands/decidim/proposals/admin/answer_proposal.rb +2 -1
- data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +7 -5
- data/app/commands/decidim/proposals/admin/create_proposal.rb +4 -6
- data/app/commands/decidim/proposals/admin/create_proposal_state.rb +15 -0
- data/app/commands/decidim/proposals/admin/destroy_proposal_state.rb +10 -0
- data/app/commands/decidim/proposals/admin/import_proposals.rb +10 -2
- data/app/commands/decidim/proposals/admin/notify_proposal_answer.rb +4 -21
- data/app/commands/decidim/proposals/admin/unassign_proposals_from_valuator.rb +6 -4
- data/app/commands/decidim/proposals/admin/update_proposal_state.rb +13 -0
- data/app/commands/decidim/proposals/create_proposal.rb +21 -2
- data/app/commands/decidim/proposals/update_proposal.rb +2 -2
- data/app/commands/decidim/proposals/vote_proposal.rb +1 -1
- data/app/commands/decidim/proposals/withdraw_proposal.rb +3 -7
- data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +10 -22
- data/app/controllers/decidim/proposals/admin/proposal_states_controller.rb +86 -0
- data/app/controllers/decidim/proposals/admin/proposals_controller.rb +4 -0
- data/app/controllers/decidim/proposals/admin/valuation_assignments_controller.rb +8 -11
- data/app/controllers/decidim/proposals/proposals_controller.rb +30 -35
- data/app/events/decidim/proposals/proposal_state_changed_event.rb +37 -0
- data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +5 -1
- data/app/forms/decidim/proposals/admin/proposal_state_form.rb +22 -0
- data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +1 -1
- data/app/forms/decidim/proposals/admin/proposals_import_form.rb +1 -1
- data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +12 -14
- data/app/forms/decidim/proposals/proposal_form.rb +25 -4
- data/app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb +1 -1
- data/app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb +1 -1
- data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +7 -17
- data/app/helpers/decidim/proposals/admin/proposals_helper.rb +13 -89
- data/app/helpers/decidim/proposals/application_helper.rb +16 -10
- data/app/helpers/decidim/proposals/proposal_cells_helper.rb +6 -2
- data/app/helpers/decidim/proposals/proposal_votes_helper.rb +3 -3
- data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +5 -8
- data/app/helpers/decidim/proposals/proposals_helper.rb +18 -24
- data/app/models/decidim/proposals/proposal.rb +78 -28
- data/app/models/decidim/proposals/proposal_state.rb +58 -0
- data/app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md +1 -3
- data/app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg +15 -0
- data/app/packs/src/decidim/proposals/add_proposal.js +2 -0
- data/app/packs/src/decidim/proposals/admin/proposals.js +43 -8
- data/app/packs/stylesheets/decidim/proposals/proposals.scss +39 -1
- data/app/permissions/decidim/proposals/admin/permissions.rb +16 -4
- data/app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb +21 -0
- data/app/presenters/decidim/proposals/proposal_presenter.rb +12 -3
- data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +1 -1
- data/app/queries/decidim/proposals/metrics/proposal_followers_metric_measure.rb +1 -1
- data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +4 -4
- data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +1 -1
- data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +1 -1
- data/app/services/decidim/proposals/diff_renderer.rb +1 -1
- data/app/views/decidim/proposals/admin/imports/_proposals_fields.html.erb +1 -1
- data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +3 -2
- data/app/views/decidim/proposals/admin/proposal_answers/_form.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +3 -3
- data/app/views/decidim/proposals/admin/proposal_states/_form.html.erb +67 -0
- data/app/views/decidim/proposals/admin/proposal_states/edit.html.erb +18 -0
- data/app/views/decidim/proposals/admin/proposal_states/index.html.erb +50 -0
- data/app/views/decidim/proposals/admin/proposal_states/new.html.erb +18 -0
- data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +6 -12
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +6 -6
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_assign_to_valuator.html.erb +11 -7
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +7 -5
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_publish_answers.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb +11 -7
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb +12 -0
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +9 -5
- data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/show.html.erb +3 -2
- data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +3 -3
- data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +12 -5
- data/app/views/decidim/proposals/proposals/_proposal.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposals.html.erb +9 -3
- data/app/views/decidim/proposals/proposals/_vote_button.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +3 -3
- data/app/views/decidim/proposals/proposals/_wizard_header.html.erb +0 -1
- data/app/views/decidim/proposals/proposals/new.html.erb +2 -7
- data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +4 -4
- data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb +8 -8
- data/app/views/decidim/proposals/proposals/preview.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/show.html.erb +2 -2
- data/config/locales/ar.yml +6 -114
- data/config/locales/bg.yml +110 -106
- data/config/locales/ca.yml +81 -78
- data/config/locales/cs.yml +60 -122
- data/config/locales/de.yml +122 -119
- data/config/locales/el.yml +3 -118
- data/config/locales/en.yml +110 -107
- data/config/locales/es-MX.yml +82 -79
- data/config/locales/es-PY.yml +85 -82
- data/config/locales/es.yml +81 -78
- data/config/locales/eu.yml +103 -107
- data/config/locales/fi-plain.yml +87 -84
- data/config/locales/fi.yml +118 -115
- data/config/locales/fr-CA.yml +86 -83
- data/config/locales/fr.yml +78 -75
- data/config/locales/ga-IE.yml +1 -27
- data/config/locales/gl.yml +5 -104
- data/config/locales/he-IL.yml +0 -13
- data/config/locales/hu.yml +15 -88
- data/config/locales/id-ID.yml +2 -97
- data/config/locales/is-IS.yml +1 -33
- data/config/locales/it.yml +6 -96
- data/config/locales/ja.yml +112 -109
- data/config/locales/lb.yml +1 -0
- data/config/locales/lt.yml +3 -122
- data/config/locales/lv.yml +2 -96
- data/config/locales/nl.yml +6 -95
- data/config/locales/no.yml +3 -107
- data/config/locales/pl.yml +106 -113
- data/config/locales/pt-BR.yml +5 -81
- data/config/locales/pt.yml +5 -107
- data/config/locales/ro-RO.yml +6 -110
- data/config/locales/ru.yml +2 -53
- data/config/locales/sk.yml +2 -103
- data/config/locales/sv.yml +139 -334
- data/config/locales/tr-TR.yml +57 -103
- data/config/locales/uk.yml +3 -54
- data/config/locales/zh-CN.yml +2 -99
- data/config/locales/zh-TW.yml +3 -116
- data/db/migrate/20240110203500_add_withdrawn_at_field_to_proposals.rb +27 -0
- data/db/migrate/20240110203501_create_decidim_proposals_proposal_state.rb +14 -0
- data/db/migrate/20240110203502_add_state_id_to_decidim_proposals_proposals.rb +13 -0
- data/db/migrate/20240110203503_remove_state_from_decidim_proposals_proposals.rb +11 -0
- data/db/migrate/20240110203504_create_default_proposal_states.rb +31 -0
- data/db/migrate/20240209092404_change_color_fields_on_proposals_states.rb +54 -0
- data/decidim-proposals.gemspec +2 -2
- data/lib/decidim/api/proposal_type.rb +4 -0
- data/lib/decidim/proposals/admin_engine.rb +8 -0
- data/lib/decidim/proposals/admin_filter.rb +37 -0
- data/lib/decidim/proposals/component.rb +8 -5
- data/lib/decidim/proposals/engine.rb +1 -15
- data/lib/decidim/proposals/import/proposal_answer_creator.rb +6 -6
- data/lib/decidim/proposals/import/proposal_creator.rb +1 -1
- data/lib/decidim/proposals/markdown_to_proposals.rb +2 -8
- data/lib/decidim/proposals/proposal_serializer.rb +5 -3
- data/lib/decidim/proposals/seeds.rb +60 -51
- data/lib/decidim/proposals/test/factories.rb +64 -8
- data/lib/decidim/proposals/version.rb +1 -1
- data/lib/decidim/proposals.rb +84 -12
- data/lib/tasks/proposals/upgrade/{decdim_proposals_upgrade_tasks.rake → decidim_proposals_upgrade_tasks.rake} +0 -13
- metadata +50 -36
- data/app/events/decidim/proposals/accepted_proposal_event.rb +0 -17
- data/app/events/decidim/proposals/evaluating_proposal_event.rb +0 -11
- data/app/events/decidim/proposals/rejected_proposal_event.rb +0 -17
- data/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb +0 -44
- data/app/queries/decidim/proposals/similar_proposals.rb +0 -67
- data/app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb +0 -0
- data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +0 -3
- data/app/views/decidim/proposals/proposals/compare.html.erb +0 -24
- data/app/views/decidim/proposals/proposals/complete.html.erb +0 -31
data/lib/decidim/proposals.rb
CHANGED
@@ -22,18 +22,6 @@ module Decidim
|
|
22
22
|
|
23
23
|
include ActiveSupport::Configurable
|
24
24
|
|
25
|
-
# Public Setting that defines the similarity minimum value to consider two
|
26
|
-
# proposals similar. Defaults to 0.25.
|
27
|
-
config_accessor :similarity_threshold do
|
28
|
-
0.25
|
29
|
-
end
|
30
|
-
|
31
|
-
# Public Setting that defines how many similar proposals will be shown.
|
32
|
-
# Defaults to 10.
|
33
|
-
config_accessor :similarity_limit do
|
34
|
-
10
|
35
|
-
end
|
36
|
-
|
37
25
|
# Public Setting that defines how many proposals will be shown in the
|
38
26
|
# participatory_space_highlighted_elements view hook
|
39
27
|
config_accessor :participatory_space_highlighted_proposals_limit do
|
@@ -45,6 +33,90 @@ module Decidim
|
|
45
33
|
config_accessor :process_group_highlighted_proposals_limit do
|
46
34
|
3
|
47
35
|
end
|
36
|
+
|
37
|
+
def self.proposal_states_colors
|
38
|
+
{
|
39
|
+
gray: {
|
40
|
+
background: "#F6F8FA",
|
41
|
+
foreground: "#4B5058",
|
42
|
+
name: I18n.t("gray", scope: "activemodel.attributes.proposal_state.colors")
|
43
|
+
},
|
44
|
+
blue: {
|
45
|
+
background: "#EBF9FF",
|
46
|
+
foreground: "#0851A6",
|
47
|
+
name: I18n.t("blue", scope: "activemodel.attributes.proposal_state.colors")
|
48
|
+
},
|
49
|
+
green: {
|
50
|
+
background: "#E3FCE9",
|
51
|
+
foreground: "#15602C",
|
52
|
+
name: I18n.t("green", scope: "activemodel.attributes.proposal_state.colors")
|
53
|
+
},
|
54
|
+
yellow: {
|
55
|
+
background: "#FFFCE5",
|
56
|
+
foreground: "#9A6700",
|
57
|
+
name: I18n.t("yellow", scope: "activemodel.attributes.proposal_state.colors")
|
58
|
+
},
|
59
|
+
orange: {
|
60
|
+
background: "#FFF1E5",
|
61
|
+
foreground: "#BC4C00",
|
62
|
+
name: I18n.t("orange", scope: "activemodel.attributes.proposal_state.colors")
|
63
|
+
},
|
64
|
+
red: {
|
65
|
+
background: "#FFEBE9",
|
66
|
+
foreground: "#D1242F",
|
67
|
+
name: I18n.t("red", scope: "activemodel.attributes.proposal_state.colors")
|
68
|
+
},
|
69
|
+
pink: {
|
70
|
+
background: "#FFEFF7",
|
71
|
+
foreground: "#BF3989",
|
72
|
+
name: I18n.t("pink", scope: "activemodel.attributes.proposal_state.colors")
|
73
|
+
},
|
74
|
+
purple: {
|
75
|
+
background: "#FBEFFF",
|
76
|
+
foreground: "#8250DF",
|
77
|
+
name: I18n.t("purple", scope: "activemodel.attributes.proposal_state.colors")
|
78
|
+
}
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.create_default_states!(component, admin_user, with_traceability: true)
|
83
|
+
colors = Decidim::Proposals.proposal_states_colors
|
84
|
+
|
85
|
+
locale = Decidim.default_locale
|
86
|
+
default_states = {
|
87
|
+
evaluating: {
|
88
|
+
token: :evaluating,
|
89
|
+
bg_color: colors[:orange][:background],
|
90
|
+
text_color: colors[:orange][:foreground],
|
91
|
+
announcement_title: { locale => I18n.with_locale(locale) { I18n.t("proposal_in_evaluation_reason", scope: "decidim.proposals.proposals.show") } },
|
92
|
+
title: { locale => I18n.with_locale(locale) { I18n.t(:evaluating, scope: "decidim.proposals.answers") } }
|
93
|
+
},
|
94
|
+
accepted: {
|
95
|
+
token: :accepted,
|
96
|
+
bg_color: colors[:green][:background],
|
97
|
+
text_color: colors[:green][:foreground],
|
98
|
+
announcement_title: { locale => I18n.with_locale(locale) { I18n.t("proposal_accepted_reason", scope: "decidim.proposals.proposals.show") } },
|
99
|
+
title: { locale => I18n.with_locale(locale) { I18n.t(:accepted, scope: "decidim.proposals.answers") } }
|
100
|
+
},
|
101
|
+
rejected: {
|
102
|
+
token: :rejected,
|
103
|
+
bg_color: colors[:red][:background],
|
104
|
+
text_color: colors[:red][:foreground],
|
105
|
+
announcement_title: { locale => I18n.with_locale(locale) { I18n.t("proposal_rejected_reason", scope: "decidim.proposals.proposals.show") } },
|
106
|
+
title: { locale => I18n.with_locale(locale) { I18n.t(:rejected, scope: "decidim.proposals.answers") } }
|
107
|
+
}
|
108
|
+
}
|
109
|
+
default_states.each_key do |key|
|
110
|
+
default_states[key][:object] = if with_traceability
|
111
|
+
Decidim.traceability.create(
|
112
|
+
Decidim::Proposals::ProposalState, admin_user, component:, **default_states[key]
|
113
|
+
)
|
114
|
+
else
|
115
|
+
Decidim::Proposals::ProposalState.create(component:, **default_states[key])
|
116
|
+
end
|
117
|
+
end
|
118
|
+
default_states
|
119
|
+
end
|
48
120
|
end
|
49
121
|
|
50
122
|
module ContentParsers
|
@@ -2,19 +2,6 @@
|
|
2
2
|
|
3
3
|
namespace :decidim_proposals do
|
4
4
|
namespace :upgrade do
|
5
|
-
desc "Assigns category to emendations based on amendable category"
|
6
|
-
task set_categories: :environment do
|
7
|
-
Decidim::Proposals::Proposal.includes(:category).find_each do |proposal|
|
8
|
-
next if proposal.category.blank?
|
9
|
-
next unless proposal.amendable?
|
10
|
-
|
11
|
-
proposal.emendations.each do |emendation|
|
12
|
-
emendation.category = proposal.category
|
13
|
-
emendation.save(validate: false)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
5
|
desc "Removes all proposal valuator records of which the role assignment does not exists"
|
19
6
|
task remove_valuator_orphan_records: :environment do
|
20
7
|
if Decidim.module_installed?("participatory_processes")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-proposals
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.29.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-07-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: decidim-comments
|
@@ -18,42 +18,42 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.29.0.rc1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.29.0.rc1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: decidim-core
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 0.29.0.rc1
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.29.0.rc1
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: doc2text
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.4.
|
49
|
+
version: 0.4.7
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.4.
|
56
|
+
version: 0.4.7
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: redcarpet
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,98 +80,98 @@ dependencies:
|
|
80
80
|
requirements:
|
81
81
|
- - '='
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.
|
83
|
+
version: 0.29.0.rc1
|
84
84
|
type: :development
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - '='
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.
|
90
|
+
version: 0.29.0.rc1
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: decidim-assemblies
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - '='
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.
|
97
|
+
version: 0.29.0.rc1
|
98
98
|
type: :development
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - '='
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
104
|
+
version: 0.29.0.rc1
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: decidim-budgets
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - '='
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.
|
111
|
+
version: 0.29.0.rc1
|
112
112
|
type: :development
|
113
113
|
prerelease: false
|
114
114
|
version_requirements: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
118
|
+
version: 0.29.0.rc1
|
119
119
|
- !ruby/object:Gem::Dependency
|
120
120
|
name: decidim-conference
|
121
121
|
requirement: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - '='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
125
|
+
version: 0.29.0.rc1
|
126
126
|
type: :development
|
127
127
|
prerelease: false
|
128
128
|
version_requirements: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - '='
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
132
|
+
version: 0.29.0.rc1
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: decidim-dev
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - '='
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.
|
139
|
+
version: 0.29.0.rc1
|
140
140
|
type: :development
|
141
141
|
prerelease: false
|
142
142
|
version_requirements: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - '='
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0.
|
146
|
+
version: 0.29.0.rc1
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: decidim-meetings
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
151
|
- - '='
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0.
|
153
|
+
version: 0.29.0.rc1
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
156
|
version_requirements: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - '='
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.
|
160
|
+
version: 0.29.0.rc1
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: decidim-participatory_processes
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - '='
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.
|
167
|
+
version: 0.29.0.rc1
|
168
168
|
type: :development
|
169
169
|
prerelease: false
|
170
170
|
version_requirements: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - '='
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version: 0.
|
174
|
+
version: 0.29.0.rc1
|
175
175
|
description: A proposals component for decidim's participatory spaces.
|
176
176
|
email:
|
177
177
|
- josepjaume@gmail.com
|
@@ -204,6 +204,8 @@ files:
|
|
204
204
|
- app/cells/decidim/proposals/participatory_text_proposal_cell.rb
|
205
205
|
- app/cells/decidim/proposals/proposal_activity_cell.rb
|
206
206
|
- app/cells/decidim/proposals/proposal_cell.rb
|
207
|
+
- app/cells/decidim/proposals/proposal_g/show.erb
|
208
|
+
- app/cells/decidim/proposals/proposal_g_cell.rb
|
207
209
|
- app/cells/decidim/proposals/proposal_l_cell.rb
|
208
210
|
- app/cells/decidim/proposals/proposal_link_to_collaborative_draft_cell.rb
|
209
211
|
- app/cells/decidim/proposals/proposal_link_to_rejected_emendation_cell.rb
|
@@ -220,6 +222,8 @@ files:
|
|
220
222
|
- app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb
|
221
223
|
- app/commands/decidim/proposals/admin/create_proposal.rb
|
222
224
|
- app/commands/decidim/proposals/admin/create_proposal_note.rb
|
225
|
+
- app/commands/decidim/proposals/admin/create_proposal_state.rb
|
226
|
+
- app/commands/decidim/proposals/admin/destroy_proposal_state.rb
|
223
227
|
- app/commands/decidim/proposals/admin/discard_participatory_text.rb
|
224
228
|
- app/commands/decidim/proposals/admin/import_participatory_text.rb
|
225
229
|
- app/commands/decidim/proposals/admin/import_proposals.rb
|
@@ -233,6 +237,7 @@ files:
|
|
233
237
|
- app/commands/decidim/proposals/admin/update_proposal.rb
|
234
238
|
- app/commands/decidim/proposals/admin/update_proposal_category.rb
|
235
239
|
- app/commands/decidim/proposals/admin/update_proposal_scope.rb
|
240
|
+
- app/commands/decidim/proposals/admin/update_proposal_state.rb
|
236
241
|
- app/commands/decidim/proposals/create_collaborative_draft.rb
|
237
242
|
- app/commands/decidim/proposals/create_proposal.rb
|
238
243
|
- app/commands/decidim/proposals/destroy_proposal.rb
|
@@ -255,6 +260,7 @@ files:
|
|
255
260
|
- app/controllers/decidim/proposals/admin/participatory_texts_controller.rb
|
256
261
|
- app/controllers/decidim/proposals/admin/proposal_answers_controller.rb
|
257
262
|
- app/controllers/decidim/proposals/admin/proposal_notes_controller.rb
|
263
|
+
- app/controllers/decidim/proposals/admin/proposal_states_controller.rb
|
258
264
|
- app/controllers/decidim/proposals/admin/proposals_controller.rb
|
259
265
|
- app/controllers/decidim/proposals/admin/proposals_imports_controller.rb
|
260
266
|
- app/controllers/decidim/proposals/admin/proposals_merges_controller.rb
|
@@ -266,7 +272,6 @@ files:
|
|
266
272
|
- app/controllers/decidim/proposals/proposal_votes_controller.rb
|
267
273
|
- app/controllers/decidim/proposals/proposals_controller.rb
|
268
274
|
- app/controllers/decidim/proposals/versions_controller.rb
|
269
|
-
- app/events/decidim/proposals/accepted_proposal_event.rb
|
270
275
|
- app/events/decidim/proposals/admin/proposal_note_created_event.rb
|
271
276
|
- app/events/decidim/proposals/admin/update_proposal_category_event.rb
|
272
277
|
- app/events/decidim/proposals/admin/update_proposal_scope_event.rb
|
@@ -279,11 +284,10 @@ files:
|
|
279
284
|
- app/events/decidim/proposals/collaborative_draft_withdrawn_event.rb
|
280
285
|
- app/events/decidim/proposals/creation_enabled_event.rb
|
281
286
|
- app/events/decidim/proposals/endorsing_enabled_event.rb
|
282
|
-
- app/events/decidim/proposals/evaluating_proposal_event.rb
|
283
287
|
- app/events/decidim/proposals/proposal_endorsed_event.rb
|
284
288
|
- app/events/decidim/proposals/proposal_mentioned_event.rb
|
289
|
+
- app/events/decidim/proposals/proposal_state_changed_event.rb
|
285
290
|
- app/events/decidim/proposals/publish_proposal_event.rb
|
286
|
-
- app/events/decidim/proposals/rejected_proposal_event.rb
|
287
291
|
- app/events/decidim/proposals/voting_enabled_event.rb
|
288
292
|
- app/forms/decidim/proposals/accept_access_to_collaborative_draft_form.rb
|
289
293
|
- app/forms/decidim/proposals/access_to_collaborative_draft_form.rb
|
@@ -294,6 +298,7 @@ files:
|
|
294
298
|
- app/forms/decidim/proposals/admin/proposal_base_form.rb
|
295
299
|
- app/forms/decidim/proposals/admin/proposal_form.rb
|
296
300
|
- app/forms/decidim/proposals/admin/proposal_note_form.rb
|
301
|
+
- app/forms/decidim/proposals/admin/proposal_state_form.rb
|
297
302
|
- app/forms/decidim/proposals/admin/proposals_file_import_form.rb
|
298
303
|
- app/forms/decidim/proposals/admin/proposals_fork_form.rb
|
299
304
|
- app/forms/decidim/proposals/admin/proposals_import_form.rb
|
@@ -302,7 +307,6 @@ files:
|
|
302
307
|
- app/forms/decidim/proposals/admin/valuation_assignment_form.rb
|
303
308
|
- app/forms/decidim/proposals/collaborative_draft_form.rb
|
304
309
|
- app/forms/decidim/proposals/proposal_form.rb
|
305
|
-
- app/forms/decidim/proposals/proposal_wizard_create_step_form.rb
|
306
310
|
- app/forms/decidim/proposals/reject_access_to_collaborative_draft_form.rb
|
307
311
|
- app/forms/decidim/proposals/request_access_to_collaborative_draft_form.rb
|
308
312
|
- app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb
|
@@ -327,6 +331,7 @@ files:
|
|
327
331
|
- app/models/decidim/proposals/participatory_text.rb
|
328
332
|
- app/models/decidim/proposals/proposal.rb
|
329
333
|
- app/models/decidim/proposals/proposal_note.rb
|
334
|
+
- app/models/decidim/proposals/proposal_state.rb
|
330
335
|
- app/models/decidim/proposals/proposal_vote.rb
|
331
336
|
- app/models/decidim/proposals/valuation_assignment.rb
|
332
337
|
- app/packs/documents/decidim/proposals/participatory_texts/participatory_text.md
|
@@ -338,6 +343,7 @@ files:
|
|
338
343
|
- app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposal_votes.svg
|
339
344
|
- app/packs/images/decidim/gamification/badges/decidim_gamification_badges_proposals.svg
|
340
345
|
- app/packs/images/decidim/proposals/decidim_proposals.svg
|
346
|
+
- app/packs/images/decidim/proposals/proposal-placeholder-card-g.svg
|
341
347
|
- app/packs/src/decidim/proposals/add_proposal.js
|
342
348
|
- app/packs/src/decidim/proposals/admin/proposals.js
|
343
349
|
- app/packs/src/decidim/proposals/admin/proposals_form.js
|
@@ -349,6 +355,7 @@ files:
|
|
349
355
|
- app/permissions/decidim/proposals/permissions.rb
|
350
356
|
- app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb
|
351
357
|
- app/presenters/decidim/proposals/admin_log/proposal_presenter.rb
|
358
|
+
- app/presenters/decidim/proposals/admin_log/proposal_state_presenter.rb
|
352
359
|
- app/presenters/decidim/proposals/admin_log/valuation_assignment_presenter.rb
|
353
360
|
- app/presenters/decidim/proposals/admin_log/value_types/proposal_state_presenter.rb
|
354
361
|
- app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb
|
@@ -364,7 +371,6 @@ files:
|
|
364
371
|
- app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
|
365
372
|
- app/queries/decidim/proposals/metrics/proposals_metric_manage.rb
|
366
373
|
- app/queries/decidim/proposals/metrics/votes_metric_manage.rb
|
367
|
-
- app/queries/decidim/proposals/similar_proposals.rb
|
368
374
|
- app/services/decidim/proposals/diff_renderer.rb
|
369
375
|
- app/services/decidim/proposals/proposal_builder.rb
|
370
376
|
- app/services/decidim/proposals/proposal_search.rb
|
@@ -377,6 +383,10 @@ files:
|
|
377
383
|
- app/views/decidim/proposals/admin/proposal_answers/_form.html.erb
|
378
384
|
- app/views/decidim/proposals/admin/proposal_notes/_form.html.erb
|
379
385
|
- app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb
|
386
|
+
- app/views/decidim/proposals/admin/proposal_states/_form.html.erb
|
387
|
+
- app/views/decidim/proposals/admin/proposal_states/edit.html.erb
|
388
|
+
- app/views/decidim/proposals/admin/proposal_states/index.html.erb
|
389
|
+
- app/views/decidim/proposals/admin/proposal_states/new.html.erb
|
380
390
|
- app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb
|
381
391
|
- app/views/decidim/proposals/admin/proposals/_documents.html.erb
|
382
392
|
- app/views/decidim/proposals/admin/proposals/_endorsers.html.erb
|
@@ -392,6 +402,7 @@ files:
|
|
392
402
|
- app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb
|
393
403
|
- app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb
|
394
404
|
- app/views/decidim/proposals/admin/proposals/bulk_actions/_unassign_from_valuator.html.erb
|
405
|
+
- app/views/decidim/proposals/admin/proposals/bulk_actions/_valuators_picker.html.erb
|
395
406
|
- app/views/decidim/proposals/admin/proposals/edit.html.erb
|
396
407
|
- app/views/decidim/proposals/admin/proposals/index.html.erb
|
397
408
|
- app/views/decidim/proposals/admin/proposals/new.html.erb
|
@@ -415,11 +426,9 @@ files:
|
|
415
426
|
- app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
|
416
427
|
- app/views/decidim/proposals/proposals/_actions.html.erb
|
417
428
|
- app/views/decidim/proposals/proposals/_edit_form_fields.html.erb
|
418
|
-
- app/views/decidim/proposals/proposals/_endorsements_card_row.html.erb
|
419
429
|
- app/views/decidim/proposals/proposals/_linked_proposals.html.erb
|
420
430
|
- app/views/decidim/proposals/proposals/_proposal.html.erb
|
421
431
|
- app/views/decidim/proposals/proposals/_proposal_aside.html.erb
|
422
|
-
- app/views/decidim/proposals/proposals/_proposal_badge.html.erb
|
423
432
|
- app/views/decidim/proposals/proposals/_proposals.html.erb
|
424
433
|
- app/views/decidim/proposals/proposals/_proposals_picker.html.erb
|
425
434
|
- app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb
|
@@ -427,8 +436,6 @@ files:
|
|
427
436
|
- app/views/decidim/proposals/proposals/_votes_count.html.erb
|
428
437
|
- app/views/decidim/proposals/proposals/_voting_rules.html.erb
|
429
438
|
- app/views/decidim/proposals/proposals/_wizard_header.html.erb
|
430
|
-
- app/views/decidim/proposals/proposals/compare.html.erb
|
431
|
-
- app/views/decidim/proposals/proposals/complete.html.erb
|
432
439
|
- app/views/decidim/proposals/proposals/edit.html.erb
|
433
440
|
- app/views/decidim/proposals/proposals/edit_draft.html.erb
|
434
441
|
- app/views/decidim/proposals/proposals/index.html.erb
|
@@ -579,6 +586,12 @@ files:
|
|
579
586
|
- db/migrate/20210318082934_fix_counters_for_copied_proposals.rb
|
580
587
|
- db/migrate/20230427105700_change_states_on_collaborative_drafts.rb
|
581
588
|
- db/migrate/20230427105700_change_states_on_proposals.rb
|
589
|
+
- db/migrate/20240110203500_add_withdrawn_at_field_to_proposals.rb
|
590
|
+
- db/migrate/20240110203501_create_decidim_proposals_proposal_state.rb
|
591
|
+
- db/migrate/20240110203502_add_state_id_to_decidim_proposals_proposals.rb
|
592
|
+
- db/migrate/20240110203503_remove_state_from_decidim_proposals_proposals.rb
|
593
|
+
- db/migrate/20240110203504_create_default_proposal_states.rb
|
594
|
+
- db/migrate/20240209092404_change_color_fields_on_proposals_states.rb
|
582
595
|
- db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb
|
583
596
|
- decidim-proposals.gemspec
|
584
597
|
- lib/decidim/api/proposal_input_filter.rb
|
@@ -590,6 +603,7 @@ files:
|
|
590
603
|
- lib/decidim/proposals.rb
|
591
604
|
- lib/decidim/proposals/admin.rb
|
592
605
|
- lib/decidim/proposals/admin_engine.rb
|
606
|
+
- lib/decidim/proposals/admin_filter.rb
|
593
607
|
- lib/decidim/proposals/api.rb
|
594
608
|
- lib/decidim/proposals/commentable_collaborative_draft.rb
|
595
609
|
- lib/decidim/proposals/commentable_proposal.rb
|
@@ -609,7 +623,7 @@ files:
|
|
609
623
|
- lib/decidim/proposals/test/factories.rb
|
610
624
|
- lib/decidim/proposals/valuatable.rb
|
611
625
|
- lib/decidim/proposals/version.rb
|
612
|
-
- lib/tasks/proposals/upgrade/
|
626
|
+
- lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake
|
613
627
|
homepage: https://decidim.org
|
614
628
|
licenses:
|
615
629
|
- AGPL-3.0
|
@@ -627,14 +641,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
627
641
|
requirements:
|
628
642
|
- - "~>"
|
629
643
|
- !ruby/object:Gem::Version
|
630
|
-
version: 3.
|
644
|
+
version: 3.2.0
|
631
645
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
632
646
|
requirements:
|
633
|
-
- - "
|
647
|
+
- - ">"
|
634
648
|
- !ruby/object:Gem::Version
|
635
|
-
version:
|
649
|
+
version: 1.3.1
|
636
650
|
requirements: []
|
637
|
-
rubygems_version: 3.
|
651
|
+
rubygems_version: 3.4.10
|
638
652
|
signing_key:
|
639
653
|
specification_version: 4
|
640
654
|
summary: Decidim proposals module
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Proposals
|
5
|
-
class AcceptedProposalEvent < Decidim::Events::SimpleEvent
|
6
|
-
include Decidim::Events::AuthorEvent
|
7
|
-
|
8
|
-
def resource_text
|
9
|
-
translated_attribute(resource.answer)
|
10
|
-
end
|
11
|
-
|
12
|
-
def event_has_roles?
|
13
|
-
true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Proposals
|
5
|
-
class RejectedProposalEvent < Decidim::Events::SimpleEvent
|
6
|
-
include Decidim::Events::AuthorEvent
|
7
|
-
|
8
|
-
def resource_text
|
9
|
-
translated_attribute(resource.answer)
|
10
|
-
end
|
11
|
-
|
12
|
-
def event_has_roles?
|
13
|
-
true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Proposals
|
5
|
-
# A form object to be used when public users want to create a proposal.
|
6
|
-
class ProposalWizardCreateStepForm < Decidim::Form
|
7
|
-
mimic :proposal
|
8
|
-
|
9
|
-
attribute :title, String
|
10
|
-
attribute :body, Decidim::Attributes::CleanString
|
11
|
-
attribute :body_template, String
|
12
|
-
attribute :user_group_id, Integer
|
13
|
-
|
14
|
-
validates :title, :body, presence: true, etiquette: true
|
15
|
-
validates :title, length: { in: 15..150 }
|
16
|
-
validates :body, proposal_length: {
|
17
|
-
minimum: 15,
|
18
|
-
maximum: ->(record) { record.component.settings.proposal_length }
|
19
|
-
}
|
20
|
-
|
21
|
-
validate :body_is_not_bare_template
|
22
|
-
|
23
|
-
alias component current_component
|
24
|
-
|
25
|
-
def map_model(model)
|
26
|
-
self.title = translated_attribute(model.title)
|
27
|
-
self.body = translated_attribute(model.body)
|
28
|
-
|
29
|
-
self.user_group_id = model.user_groups.first&.id
|
30
|
-
return unless model.categorization
|
31
|
-
|
32
|
-
self.category_id = model.categorization.decidim_category_id
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def body_is_not_bare_template
|
38
|
-
return if body_template.blank?
|
39
|
-
|
40
|
-
errors.add(:body, :cant_be_equal_to_template) if body.presence == body_template.presence
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Proposals
|
5
|
-
# Class used to retrieve similar proposals.
|
6
|
-
class SimilarProposals < Decidim::Query
|
7
|
-
include Decidim::TranslationsHelper
|
8
|
-
|
9
|
-
# Syntactic sugar to initialize the class and return the queried objects.
|
10
|
-
#
|
11
|
-
# components - Decidim::CurrentComponent
|
12
|
-
# proposal - Decidim::Proposals::Proposal
|
13
|
-
def self.for(components, proposal)
|
14
|
-
new(components, proposal).query
|
15
|
-
end
|
16
|
-
|
17
|
-
# Initializes the class.
|
18
|
-
#
|
19
|
-
# components - Decidim::CurrentComponent
|
20
|
-
# proposal - Decidim::Proposals::Proposal
|
21
|
-
def initialize(components, proposal)
|
22
|
-
@components = components
|
23
|
-
@proposal = proposal
|
24
|
-
@translations_enabled = proposal.component.organization.enable_machine_translations
|
25
|
-
end
|
26
|
-
|
27
|
-
# Retrieves similar proposals
|
28
|
-
def query
|
29
|
-
Decidim::Proposals::Proposal
|
30
|
-
.where(component: @components)
|
31
|
-
.published
|
32
|
-
.not_hidden
|
33
|
-
.where(
|
34
|
-
Arel.sql("GREATEST(#{title_similarity}, #{body_similarity}) >= ?").to_s,
|
35
|
-
*similarity_params,
|
36
|
-
Decidim::Proposals.similarity_threshold
|
37
|
-
)
|
38
|
-
.limit(Decidim::Proposals.similarity_limit)
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
attr_reader :translations_enabled, :proposal
|
44
|
-
|
45
|
-
def title_similarity
|
46
|
-
return "similarity(title::text, ?)" unless translations_enabled
|
47
|
-
|
48
|
-
language = proposal.content_original_language
|
49
|
-
"similarity(title->>'#{language}'::text, ?), similarity(title->'machine_translations'->>'#{language}'::text, ?)"
|
50
|
-
end
|
51
|
-
|
52
|
-
def body_similarity
|
53
|
-
return "similarity(body::text, ?)" unless translations_enabled
|
54
|
-
|
55
|
-
language = proposal.content_original_language
|
56
|
-
"similarity(body->>'#{language}'::text, ?), similarity(body->'machine_translations'->>'#{language}'::text, ?)"
|
57
|
-
end
|
58
|
-
|
59
|
-
def similarity_params
|
60
|
-
title_attr = translated_attribute(proposal.title)
|
61
|
-
body_attr = translated_attribute(proposal.body)
|
62
|
-
|
63
|
-
translations_enabled ? [title_attr, title_attr, body_attr, body_attr] : [title_attr, body_attr]
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
File without changes
|