decidim-proposals 0.0.2 → 0.0.3
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/stylesheets/decidim/proposals/social_share.css.scss +5 -0
- data/app/commands/decidim/proposals/admin/answer_proposal.rb +43 -0
- data/app/commands/decidim/proposals/create_proposal.rb +1 -0
- data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +37 -0
- data/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -0
- data/app/controllers/decidim/proposals/proposal_votes_controller.rb +18 -7
- data/app/controllers/decidim/proposals/proposals_controller.rb +8 -7
- data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +18 -0
- data/app/forms/decidim/proposals/proposal_form.rb +1 -0
- data/app/helpers/decidim/proposals/application_helper.rb +17 -0
- data/app/helpers/decidim/proposals/proposal_votes_helper.rb +19 -0
- data/app/models/decidim/proposals/abilities/current_user.rb +59 -0
- data/app/models/decidim/proposals/proposal.rb +30 -33
- data/app/models/decidim/proposals/proposal_vote.rb +2 -0
- data/app/services/decidim/proposals/proposal_search.rb +11 -0
- data/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +8 -0
- data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +20 -0
- data/app/views/decidim/proposals/proposals/_filters.html.erb +3 -1
- data/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +18 -0
- data/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +27 -0
- data/app/views/decidim/proposals/proposals/_proposal.html.erb +3 -2
- data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +3 -0
- data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +1 -0
- data/app/views/decidim/proposals/proposals/_share.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_vote_button.html.erb +16 -4
- data/app/views/decidim/proposals/proposals/_votes_limit.html.erb +23 -0
- data/app/views/decidim/proposals/proposals/index.html.erb +13 -3
- data/app/views/decidim/proposals/proposals/new.html.erb +6 -0
- data/app/views/decidim/proposals/proposals/show.html.erb +15 -2
- data/config/i18n-tasks.yml +3 -0
- data/config/locales/ca.yml +54 -1
- data/config/locales/en.yml +54 -0
- data/config/locales/es.yml +54 -1
- data/db/migrate/20170120151202_add_user_group_id_to_proposals.rb +5 -0
- data/db/migrate/20170131092413_add_answers_to_proposals.rb +7 -0
- data/lib/decidim/proposals/admin_engine.rb +3 -1
- data/lib/decidim/proposals/engine.rb +7 -1
- data/lib/decidim/proposals/feature.rb +28 -1
- data/lib/decidim/proposals/test/factories.rb +83 -0
- metadata +64 -9
- data/app/views/decidim/proposals/proposal_votes/create.js.erb +0 -5
data/config/locales/en.yml
CHANGED
@@ -1,20 +1,41 @@
|
|
1
1
|
---
|
2
2
|
en:
|
3
|
+
activemodel:
|
4
|
+
attributes:
|
5
|
+
proposal:
|
6
|
+
body: Body
|
7
|
+
category_id: Category
|
8
|
+
scope_id: Scope
|
9
|
+
title: Title
|
10
|
+
user_group_id: Create proposal as
|
3
11
|
decidim:
|
4
12
|
features:
|
5
13
|
proposals:
|
6
14
|
name: Proposals
|
7
15
|
settings:
|
8
16
|
step:
|
17
|
+
creation_enabled: Proposal creation enabled
|
18
|
+
votes_blocked: Votes blocked
|
9
19
|
votes_enabled: Votes enabled
|
10
20
|
proposals:
|
11
21
|
actions:
|
22
|
+
answer: Answer
|
12
23
|
new: New proposal
|
24
|
+
title: Actions
|
13
25
|
admin:
|
14
26
|
models:
|
15
27
|
proposal:
|
16
28
|
name: Proposal
|
29
|
+
proposal_answers:
|
30
|
+
edit:
|
31
|
+
accepted: Accepted
|
32
|
+
answer_proposal: Answer proposal
|
33
|
+
rejected: Rejected
|
34
|
+
title: Answer for proposal %{title}
|
17
35
|
proposals:
|
36
|
+
answer:
|
37
|
+
invalid: There's been a problem answering this proposal
|
38
|
+
success: Proposal successfully answered
|
18
39
|
create:
|
19
40
|
invalid: There's been a problem creating this proposal
|
20
41
|
success: Proposal successfully created
|
@@ -26,6 +47,10 @@ en:
|
|
26
47
|
new:
|
27
48
|
create: Create proposal
|
28
49
|
title: New proposal
|
50
|
+
answers:
|
51
|
+
accepted: Accepted
|
52
|
+
not_answered: Not answered
|
53
|
+
rejected: Rejected
|
29
54
|
create:
|
30
55
|
error: There's been errors when saving the proposal.
|
31
56
|
success: Proposal created successfully.
|
@@ -35,6 +60,7 @@ en:
|
|
35
60
|
category: Category
|
36
61
|
official_proposal: Official proposal
|
37
62
|
scope: Scope
|
63
|
+
state: State
|
38
64
|
title: Title
|
39
65
|
proposals:
|
40
66
|
count:
|
@@ -42,16 +68,28 @@ en:
|
|
42
68
|
one: 1 proposal
|
43
69
|
other: "%{count} proposals"
|
44
70
|
filters:
|
71
|
+
accepted: Accepted
|
45
72
|
activity: Activity
|
46
73
|
all: All
|
47
74
|
category: Category
|
48
75
|
citizenship: Citizenship
|
49
76
|
official: Official
|
50
77
|
origin: Origin
|
78
|
+
rejected: Rejected
|
51
79
|
search: Search
|
80
|
+
state: State
|
52
81
|
voted: Voted
|
82
|
+
filters_small_view:
|
83
|
+
close_modal: Close modal
|
84
|
+
filter: Filter
|
85
|
+
filter_for: Filter by
|
86
|
+
unfold: Unfold
|
53
87
|
index:
|
54
88
|
new_proposal: New proposal
|
89
|
+
linked_proposals:
|
90
|
+
proposal_votes:
|
91
|
+
one: <span class="card--list__data__number">1</span>vote
|
92
|
+
other: <span class="card--list__data__number">%{count}</span>votes
|
55
93
|
new:
|
56
94
|
back: Back
|
57
95
|
select_a_category: Please select a category
|
@@ -64,10 +102,26 @@ en:
|
|
64
102
|
close_window: Close window
|
65
103
|
share: Share
|
66
104
|
share_link: Share link
|
105
|
+
show:
|
106
|
+
proposal_rejected_reason: 'This proposal has been rejected because:'
|
67
107
|
vote_button:
|
68
108
|
already_voted: Already voted
|
109
|
+
no_votes_remaining: No votes remaining
|
69
110
|
vote: Vote
|
111
|
+
votes_blocked: Voting disabled
|
70
112
|
votes_count:
|
71
113
|
count:
|
72
114
|
one: VOTE
|
73
115
|
other: VOTES
|
116
|
+
votes_limit:
|
117
|
+
vote_limit:
|
118
|
+
description: Instead of voting as many proposals as you want you can only
|
119
|
+
vote up to %{limit} proposals.
|
120
|
+
left: Remaining
|
121
|
+
title: You have %{limit} votes to distribute
|
122
|
+
votes: Votes
|
123
|
+
resource_links:
|
124
|
+
included_proposals:
|
125
|
+
results: 'Proposal appearing in these results:'
|
126
|
+
proposals_from_meeting:
|
127
|
+
meetings: Related meetings
|
data/config/locales/es.yml
CHANGED
@@ -1,19 +1,40 @@
|
|
1
1
|
es:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
proposal:
|
5
|
+
body: Cuerpo
|
6
|
+
category_id: Categoría
|
7
|
+
scope_id: Ámbito
|
8
|
+
title: Título
|
9
|
+
user_group_id: Crear propuesta como
|
2
10
|
decidim:
|
3
11
|
features:
|
4
12
|
proposals:
|
5
13
|
name: Propuestas
|
6
14
|
settings:
|
7
15
|
step:
|
16
|
+
creation_enabled: Habilitar creación de propuestas
|
17
|
+
votes_blocked: Votación bloqueada
|
8
18
|
votes_enabled: Votos habilitados
|
9
19
|
proposals:
|
10
20
|
actions:
|
21
|
+
answer: Respuesta
|
11
22
|
new: Nueva propuesta
|
23
|
+
title: Acciones
|
12
24
|
admin:
|
13
25
|
models:
|
14
26
|
proposal:
|
15
27
|
name: Propuesta
|
28
|
+
proposal_answers:
|
29
|
+
edit:
|
30
|
+
accepted: Aceptada
|
31
|
+
answer_proposal: Respuesta a la propuesta
|
32
|
+
rejected: Rechazada
|
33
|
+
title: Responder a la propuesta %{title}
|
16
34
|
proposals:
|
35
|
+
answer:
|
36
|
+
invalid: Ha habido un problema al responder a esta propuesta
|
37
|
+
success: Propuesta respuesta con éxito
|
17
38
|
create:
|
18
39
|
invalid: Ha habido un problema al crear esta propuesta
|
19
40
|
success: Propuesta creada correctamente
|
@@ -25,6 +46,10 @@ es:
|
|
25
46
|
new:
|
26
47
|
create: Crear propuesta
|
27
48
|
title: Nueva propuesta
|
49
|
+
answers:
|
50
|
+
accepted: Aceptadas
|
51
|
+
not_answered: No contestada
|
52
|
+
rejected: Rechazada
|
28
53
|
create:
|
29
54
|
error: Ha habido errores al guardar la propuesta.
|
30
55
|
success: Propuesta creada correctamente.
|
@@ -34,6 +59,7 @@ es:
|
|
34
59
|
category: Categoría
|
35
60
|
official_proposal: Propuesta oficial
|
36
61
|
scope: Ámbito
|
62
|
+
state: Estado
|
37
63
|
title: Título
|
38
64
|
proposals:
|
39
65
|
count:
|
@@ -41,16 +67,28 @@ es:
|
|
41
67
|
one: 1 propuesta
|
42
68
|
other: "%{count} propuestas"
|
43
69
|
filters:
|
70
|
+
accepted: Aceptadas
|
44
71
|
activity: Actividad
|
45
72
|
all: Todas
|
46
73
|
category: Categoría
|
47
74
|
citizenship: Ciudadanía
|
48
75
|
official: Oficial
|
49
76
|
origin: Origen
|
77
|
+
rejected: Rechazadas
|
50
78
|
search: Buscar
|
79
|
+
state: Estado
|
51
80
|
voted: Votado
|
81
|
+
filters_small_view:
|
82
|
+
close_modal: Cerrar ventana
|
83
|
+
filter: Filtrar
|
84
|
+
filter_for: Filtrar por
|
85
|
+
unfold: Desplegar
|
52
86
|
index:
|
53
87
|
new_proposal: Nueva propuesta
|
88
|
+
linked_proposals:
|
89
|
+
proposal_votes:
|
90
|
+
one: <span class="card--list__data__number">1</span>vote
|
91
|
+
other: <span class="card--list__data__number">%{count}</span>votos
|
54
92
|
new:
|
55
93
|
back: Atrás
|
56
94
|
select_a_category: Por favor, seleccione una categoría
|
@@ -63,10 +101,25 @@ es:
|
|
63
101
|
close_window: Cerrar ventana
|
64
102
|
share: Compartir
|
65
103
|
share_link: Compartir enlace
|
104
|
+
show:
|
105
|
+
proposal_rejected_reason: 'Esta propuesta ha sido rechazada porque:'
|
66
106
|
vote_button:
|
67
107
|
already_voted: Ya votado
|
108
|
+
no_votes_remaining: No hay votos restantes
|
68
109
|
vote: Votar
|
110
|
+
votes_blocked: Votación desactivada
|
69
111
|
votes_count:
|
70
112
|
count:
|
71
113
|
one: VOTAR
|
72
|
-
other: VOTOS
|
114
|
+
other: VOTOS
|
115
|
+
votes_limit:
|
116
|
+
vote_limit:
|
117
|
+
description: En lugar de votación tantas propuestas como desee, sólo se puede votar hasta %{limit} propuestas.
|
118
|
+
left: Restante
|
119
|
+
title: Tiene %{limit} votos a distribuir
|
120
|
+
votes: Votos
|
121
|
+
resource_links:
|
122
|
+
included_proposals:
|
123
|
+
results: 'Propuesta formulada en estos resultados:'
|
124
|
+
proposals_from_meeting:
|
125
|
+
meetings: Encuentros relacionados
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class AddAnswersToProposals < ActiveRecord::Migration[5.0]
|
2
|
+
def change
|
3
|
+
add_column :decidim_proposals_proposals, :state, :string, index: true
|
4
|
+
add_column :decidim_proposals_proposals, :answered_at, :datetime, index: true
|
5
|
+
add_column :decidim_proposals_proposals, :answer, :jsonb
|
6
|
+
end
|
7
|
+
end
|
@@ -8,7 +8,9 @@ module Decidim
|
|
8
8
|
paths["db/migrate"] = nil
|
9
9
|
|
10
10
|
routes do
|
11
|
-
resources :proposals, only: [:index, :new, :create]
|
11
|
+
resources :proposals, only: [:index, :new, :create] do
|
12
|
+
resources :proposal_answers, only: [:edit, :update]
|
13
|
+
end
|
12
14
|
root to: "proposals#index"
|
13
15
|
end
|
14
16
|
|
@@ -12,7 +12,7 @@ module Decidim
|
|
12
12
|
|
13
13
|
routes do
|
14
14
|
resources :proposals, only: [:create, :new, :index, :show] do
|
15
|
-
|
15
|
+
resource :proposal_vote, only: [:create, :destroy]
|
16
16
|
end
|
17
17
|
root to: "proposals#index"
|
18
18
|
end
|
@@ -20,6 +20,12 @@ module Decidim
|
|
20
20
|
initializer "decidim_proposals.assets" do |app|
|
21
21
|
app.config.assets.precompile += %w(decidim_proposals_manifest.js decidim_proposals_manifest.css)
|
22
22
|
end
|
23
|
+
|
24
|
+
initializer "decidim_proposals.inject_abilities_to_user" do |_app|
|
25
|
+
Decidim.configure do |config|
|
26
|
+
config.abilities += ["Decidim::Proposals::Abilities::CurrentUser"]
|
27
|
+
end
|
28
|
+
end
|
23
29
|
end
|
24
30
|
end
|
25
31
|
end
|
@@ -13,8 +13,21 @@ Decidim.register_feature(:proposals) do |feature|
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
feature.settings(:global) do |settings|
|
17
|
+
settings.attribute :vote_limit, type: :integer, default: 0
|
18
|
+
settings.attribute :comments_always_enabled, type: :boolean, default: true
|
19
|
+
end
|
20
|
+
|
16
21
|
feature.settings(:step) do |settings|
|
17
22
|
settings.attribute :votes_enabled, type: :boolean
|
23
|
+
settings.attribute :votes_blocked, type: :boolean
|
24
|
+
settings.attribute :comments_enabled, type: :boolean, default: true
|
25
|
+
settings.attribute :creation_enabled, type: :boolean
|
26
|
+
end
|
27
|
+
|
28
|
+
feature.register_resource do |resource|
|
29
|
+
resource.model_class_name = "Decidim::Proposals::Proposal"
|
30
|
+
resource.template = "decidim/proposals/proposals/linked_proposals"
|
18
31
|
end
|
19
32
|
|
20
33
|
feature.seeds do
|
@@ -25,8 +38,11 @@ Decidim.register_feature(:proposals) do |feature|
|
|
25
38
|
name: Decidim::Features::Namer.new(process.organization.available_locales, :proposals).i18n_name,
|
26
39
|
manifest_name: :proposals,
|
27
40
|
participatory_process: process,
|
41
|
+
settings: {
|
42
|
+
vote_limit: 0
|
43
|
+
},
|
28
44
|
step_settings: {
|
29
|
-
process.active_step.id => { votes_enabled: true }
|
45
|
+
process.active_step.id => { votes_enabled: true, votes_blocked: false, creation_enabled: true }
|
30
46
|
}
|
31
47
|
)
|
32
48
|
|
@@ -38,6 +54,17 @@ Decidim.register_feature(:proposals) do |feature|
|
|
38
54
|
author: Decidim::User.where(organization: feature.organization).all.sample
|
39
55
|
)
|
40
56
|
|
57
|
+
if n > 15
|
58
|
+
proposal.state = "accepted"
|
59
|
+
proposal.answered_at = Time.current
|
60
|
+
proposal.save!
|
61
|
+
elsif n > 9
|
62
|
+
proposal.state = "rejected"
|
63
|
+
proposal.answered_at = Time.current
|
64
|
+
proposal.answer = Decidim::Faker::Localized.sentence(10)
|
65
|
+
proposal.save!
|
66
|
+
end
|
67
|
+
|
41
68
|
rand(3).times do |m|
|
42
69
|
email = "vote-author-#{process.id}-#{n}-#{m}@decidim.org"
|
43
70
|
name = "#{Faker::Name.name} #{process.id} #{n} #{m}"
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "decidim/core/test/factories"
|
3
|
+
require "decidim/admin/test/factories"
|
4
|
+
require "decidim/comments/test/factories"
|
5
|
+
require "decidim/meetings/test/factories"
|
6
|
+
require "decidim/results/test/factories"
|
7
|
+
require "decidim/budgets/test/factories"
|
8
|
+
|
9
|
+
FactoryGirl.define do
|
10
|
+
factory :proposal_feature, class: Decidim::Feature do
|
11
|
+
name { Decidim::Features::Namer.new(participatory_process.organization.available_locales, :proposals).i18n_name }
|
12
|
+
manifest_name :proposals
|
13
|
+
participatory_process { create(:participatory_process, :with_steps) }
|
14
|
+
|
15
|
+
trait :with_votes_enabled do
|
16
|
+
step_settings do
|
17
|
+
{
|
18
|
+
participatory_process.active_step.id => { votes_enabled: true }
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
trait :with_vote_limit do
|
24
|
+
transient do
|
25
|
+
vote_limit 10
|
26
|
+
end
|
27
|
+
|
28
|
+
settings do
|
29
|
+
{
|
30
|
+
vote_limit: vote_limit
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
trait :with_votes_blocked do
|
36
|
+
step_settings do
|
37
|
+
{
|
38
|
+
participatory_process.active_step.id => {
|
39
|
+
votes_enabled: true,
|
40
|
+
votes_blocked: true
|
41
|
+
}
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
trait :with_creation_enabled do
|
47
|
+
step_settings do
|
48
|
+
{
|
49
|
+
participatory_process.active_step.id => { creation_enabled: true }
|
50
|
+
}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
factory :proposal, class: Decidim::Proposals::Proposal do
|
56
|
+
title { Faker::Lorem.sentence }
|
57
|
+
body { Faker::Lorem.sentences(3).join("\n") }
|
58
|
+
feature { create(:proposal_feature) }
|
59
|
+
author do
|
60
|
+
create(:user, organization: feature.organization) if feature
|
61
|
+
end
|
62
|
+
|
63
|
+
trait :official do
|
64
|
+
author nil
|
65
|
+
end
|
66
|
+
|
67
|
+
trait :accepted do
|
68
|
+
state "accepted"
|
69
|
+
answered_at { Time.current }
|
70
|
+
end
|
71
|
+
|
72
|
+
trait :rejected do
|
73
|
+
state "rejected"
|
74
|
+
answer { Decidim::Faker::Localized.sentence }
|
75
|
+
answered_at { Time.current }
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
factory :proposal_vote, class: Decidim::Proposals::ProposalVote do
|
80
|
+
proposal { build(:proposal) }
|
81
|
+
author { build(:user, organization: proposal.organization) }
|
82
|
+
end
|
83
|
+
end
|
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.0.
|
4
|
+
version: 0.0.3
|
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: 2017-01
|
13
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: decidim-core
|
@@ -18,28 +18,28 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.
|
21
|
+
version: 0.0.3
|
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.0.
|
28
|
+
version: 0.0.3
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: decidim-comments
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.0.
|
35
|
+
version: 0.0.3
|
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.0.
|
42
|
+
version: 0.0.3
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rectify
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +88,56 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.0.
|
91
|
+
version: 0.0.3
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - '='
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.0.
|
98
|
+
version: 0.0.3
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: decidim-meetings
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 0.0.3
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 0.0.3
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: decidim-results
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - '='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.0.3
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: 0.0.3
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: decidim-budgets
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - '='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.0.3
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - '='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 0.0.3
|
99
141
|
description: A proposals component for decidim's participatory processes.
|
100
142
|
email:
|
101
143
|
- josepjaume@gmail.com
|
@@ -112,32 +154,42 @@ files:
|
|
112
154
|
- app/assets/images/decidim/proposals/icon.svg
|
113
155
|
- app/assets/javascripts/decidim/proposals/social_share.js
|
114
156
|
- app/assets/stylesheets/decidim/proposals/social_share.css.scss
|
157
|
+
- app/commands/decidim/proposals/admin/answer_proposal.rb
|
115
158
|
- app/commands/decidim/proposals/admin/create_proposal.rb
|
116
159
|
- app/commands/decidim/proposals/create_proposal.rb
|
117
160
|
- app/controllers/decidim/proposals/admin/application_controller.rb
|
161
|
+
- app/controllers/decidim/proposals/admin/proposal_answers_controller.rb
|
118
162
|
- app/controllers/decidim/proposals/admin/proposals_controller.rb
|
119
163
|
- app/controllers/decidim/proposals/application_controller.rb
|
120
164
|
- app/controllers/decidim/proposals/proposal_votes_controller.rb
|
121
165
|
- app/controllers/decidim/proposals/proposals_controller.rb
|
166
|
+
- app/forms/decidim/proposals/admin/proposal_answer_form.rb
|
122
167
|
- app/forms/decidim/proposals/admin/proposal_form.rb
|
123
168
|
- app/forms/decidim/proposals/proposal_form.rb
|
124
169
|
- app/helpers/decidim/proposals/application_helper.rb
|
125
170
|
- app/helpers/decidim/proposals/proposal_votes_helper.rb
|
171
|
+
- app/models/decidim/proposals/abilities/current_user.rb
|
126
172
|
- app/models/decidim/proposals/application_record.rb
|
127
173
|
- app/models/decidim/proposals/proposal.rb
|
128
174
|
- app/models/decidim/proposals/proposal_vote.rb
|
129
175
|
- app/services/decidim/proposals/proposal_search.rb
|
176
|
+
- app/views/decidim/proposals/admin/proposal_answers/edit.html.erb
|
130
177
|
- app/views/decidim/proposals/admin/proposals/_form.html.erb
|
131
178
|
- app/views/decidim/proposals/admin/proposals/index.html.erb
|
132
179
|
- app/views/decidim/proposals/admin/proposals/new.html.erb
|
133
|
-
- app/views/decidim/proposals/proposal_votes/
|
180
|
+
- app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb
|
134
181
|
- app/views/decidim/proposals/proposals/_count.html.erb
|
135
182
|
- app/views/decidim/proposals/proposals/_filters.html.erb
|
183
|
+
- app/views/decidim/proposals/proposals/_filters_small_view.html.erb
|
184
|
+
- app/views/decidim/proposals/proposals/_linked_proposals.html.erb
|
136
185
|
- app/views/decidim/proposals/proposals/_proposal.html.erb
|
186
|
+
- app/views/decidim/proposals/proposals/_proposal_badge.html.erb
|
137
187
|
- app/views/decidim/proposals/proposals/_proposals.html.erb
|
188
|
+
- app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb
|
138
189
|
- app/views/decidim/proposals/proposals/_share.html.erb
|
139
190
|
- app/views/decidim/proposals/proposals/_vote_button.html.erb
|
140
191
|
- app/views/decidim/proposals/proposals/_votes_count.html.erb
|
192
|
+
- app/views/decidim/proposals/proposals/_votes_limit.html.erb
|
141
193
|
- app/views/decidim/proposals/proposals/index.html.erb
|
142
194
|
- app/views/decidim/proposals/proposals/index.js.erb
|
143
195
|
- app/views/decidim/proposals/proposals/new.html.erb
|
@@ -151,11 +203,14 @@ files:
|
|
151
203
|
- db/migrate/20170112115253_create_proposal_votes.rb
|
152
204
|
- db/migrate/20170113114245_add_text_search_indexes.rb
|
153
205
|
- db/migrate/20170118120151_add_counter_cache_votes_to_proposals.rb
|
206
|
+
- db/migrate/20170120151202_add_user_group_id_to_proposals.rb
|
207
|
+
- db/migrate/20170131092413_add_answers_to_proposals.rb
|
154
208
|
- lib/decidim/proposals.rb
|
155
209
|
- lib/decidim/proposals/admin.rb
|
156
210
|
- lib/decidim/proposals/admin_engine.rb
|
157
211
|
- lib/decidim/proposals/engine.rb
|
158
212
|
- lib/decidim/proposals/feature.rb
|
213
|
+
- lib/decidim/proposals/test/factories.rb
|
159
214
|
homepage: https://github.com/AjuntamentdeBarcelona/decidim
|
160
215
|
licenses:
|
161
216
|
- AGPLv3
|