decidim-proposals 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/decidim/proposals/social_share.css.scss +5 -0
  3. data/app/commands/decidim/proposals/admin/answer_proposal.rb +43 -0
  4. data/app/commands/decidim/proposals/create_proposal.rb +1 -0
  5. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +37 -0
  6. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -0
  7. data/app/controllers/decidim/proposals/proposal_votes_controller.rb +18 -7
  8. data/app/controllers/decidim/proposals/proposals_controller.rb +8 -7
  9. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +18 -0
  10. data/app/forms/decidim/proposals/proposal_form.rb +1 -0
  11. data/app/helpers/decidim/proposals/application_helper.rb +17 -0
  12. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +19 -0
  13. data/app/models/decidim/proposals/abilities/current_user.rb +59 -0
  14. data/app/models/decidim/proposals/proposal.rb +30 -33
  15. data/app/models/decidim/proposals/proposal_vote.rb +2 -0
  16. data/app/services/decidim/proposals/proposal_search.rb +11 -0
  17. data/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +15 -0
  18. data/app/views/decidim/proposals/admin/proposals/index.html.erb +8 -0
  19. data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +20 -0
  20. data/app/views/decidim/proposals/proposals/_filters.html.erb +3 -1
  21. data/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +18 -0
  22. data/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +27 -0
  23. data/app/views/decidim/proposals/proposals/_proposal.html.erb +3 -2
  24. data/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +3 -0
  25. data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +1 -0
  26. data/app/views/decidim/proposals/proposals/_share.html.erb +1 -1
  27. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +16 -4
  28. data/app/views/decidim/proposals/proposals/_votes_limit.html.erb +23 -0
  29. data/app/views/decidim/proposals/proposals/index.html.erb +13 -3
  30. data/app/views/decidim/proposals/proposals/new.html.erb +6 -0
  31. data/app/views/decidim/proposals/proposals/show.html.erb +15 -2
  32. data/config/i18n-tasks.yml +3 -0
  33. data/config/locales/ca.yml +54 -1
  34. data/config/locales/en.yml +54 -0
  35. data/config/locales/es.yml +54 -1
  36. data/db/migrate/20170120151202_add_user_group_id_to_proposals.rb +5 -0
  37. data/db/migrate/20170131092413_add_answers_to_proposals.rb +7 -0
  38. data/lib/decidim/proposals/admin_engine.rb +3 -1
  39. data/lib/decidim/proposals/engine.rb +7 -1
  40. data/lib/decidim/proposals/feature.rb +28 -1
  41. data/lib/decidim/proposals/test/factories.rb +83 -0
  42. metadata +64 -9
  43. data/app/views/decidim/proposals/proposal_votes/create.js.erb +0 -5
@@ -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
@@ -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,5 @@
1
+ class AddUserGroupIdToProposals < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :decidim_proposals_proposals, :decidim_user_group_id, :integer, index: true
4
+ end
5
+ end
@@ -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
- resources :proposal_votes, only: [:create]
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.2
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-23 00:00:00.000000000 Z
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.2
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.2
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.2
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.2
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.2
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.2
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/create.js.erb
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