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.
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