decidim-budgets 0.0.5 → 0.0.6
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/commands/decidim/budgets/add_line_item.rb +9 -1
- data/app/controllers/decidim/budgets/admin/projects_controller.rb +13 -1
- data/app/forms/decidim/budgets/admin/project_form.rb +5 -1
- data/app/models/decidim/budgets/order.rb +3 -0
- data/app/models/decidim/budgets/project.rb +9 -1
- data/app/services/decidim/budgets/project_search.rb +0 -5
- data/app/views/decidim/budgets/admin/projects/_form.html.erb +5 -3
- data/app/views/decidim/budgets/admin/projects/index.html.erb +9 -0
- data/app/views/decidim/budgets/line_items/update_budget.js.erb +1 -0
- data/app/views/decidim/budgets/projects/_filters.html.erb +2 -2
- data/app/views/decidim/budgets/projects/_filters_small_view.html.erb +18 -0
- data/app/views/decidim/budgets/projects/_project.html.erb +17 -2
- data/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
- data/app/views/decidim/budgets/projects/_tags.html.erb +1 -1
- data/app/views/decidim/budgets/projects/index.html.erb +2 -1
- data/app/views/decidim/budgets/projects/show.html.erb +7 -1
- data/config/i18n-tasks.yml +1 -0
- data/config/locales/ca.yml +18 -3
- data/config/locales/en.yml +15 -0
- data/config/locales/es.yml +17 -2
- data/config/locales/eu.yml +97 -1
- data/config/locales/fi.yml +123 -0
- data/db/migrate/20170215132708_add_reference_to_projects.rb +7 -0
- data/lib/decidim/budgets/feature.rb +4 -2
- data/lib/decidim/budgets/seeds/Exampledocument.pdf +0 -0
- data/lib/decidim/budgets/seeds/city.jpeg +0 -0
- data/lib/decidim/budgets/test/factories.rb +21 -1
- metadata +17 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3e2656e58b1d375c6ed9cc32d4af823549aa19a
|
4
|
+
data.tar.gz: 1e3664e67a65acce779cf361bbd58dd305929b6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d096815f3bf0747eea89df09a2a99b196451a826110015fcad984fd8af367b6eb3d80a7d3cbf64f65cb0c2e0768cce5034de72b3c57344293f45ea4007eb7bc2
|
7
|
+
data.tar.gz: 25da824f93001da298b80ecfaa5103a17d1aeee9a8f2478e383eff5ce0cff34a01d1afef9b5960f6e3023622222414929af0ed9543c1f112b3e62c5c87280bd5
|
@@ -22,7 +22,7 @@ module Decidim
|
|
22
22
|
# Returns nothing.
|
23
23
|
def call
|
24
24
|
transaction do
|
25
|
-
return broadcast(:invalid) if order.checked_out?
|
25
|
+
return broadcast(:invalid) if votes_disabled? || order.checked_out?
|
26
26
|
add_line_item
|
27
27
|
broadcast(:ok, order)
|
28
28
|
end
|
@@ -40,6 +40,14 @@ module Decidim
|
|
40
40
|
order.save!
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
def feature
|
45
|
+
@project.feature
|
46
|
+
end
|
47
|
+
|
48
|
+
def votes_disabled?
|
49
|
+
!feature.active_step_settings.votes_enabled?
|
50
|
+
end
|
43
51
|
end
|
44
52
|
end
|
45
53
|
end
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module Admin
|
5
5
|
# This controller allows an admin to manage projects from a Participatory Process
|
6
6
|
class ProjectsController < Admin::ApplicationController
|
7
|
-
helper_method :projects
|
7
|
+
helper_method :projects, :finished_orders, :pending_orders
|
8
8
|
|
9
9
|
def new
|
10
10
|
@form = form(ProjectForm).instance
|
@@ -60,6 +60,18 @@ module Decidim
|
|
60
60
|
@projects ||= Project.where(feature: current_feature)
|
61
61
|
end
|
62
62
|
|
63
|
+
def orders
|
64
|
+
@orders ||= Order.where(feature: current_feature)
|
65
|
+
end
|
66
|
+
|
67
|
+
def pending_orders
|
68
|
+
orders.pending
|
69
|
+
end
|
70
|
+
|
71
|
+
def finished_orders
|
72
|
+
orders.finished
|
73
|
+
end
|
74
|
+
|
63
75
|
def project
|
64
76
|
@project ||= projects.find(params[:id])
|
65
77
|
end
|
@@ -26,12 +26,16 @@ module Decidim
|
|
26
26
|
self.proposal_ids = model.linked_resources(:proposals, "included_proposals").pluck(:id)
|
27
27
|
end
|
28
28
|
|
29
|
+
def process_scope
|
30
|
+
current_feature.participatory_process.scope
|
31
|
+
end
|
32
|
+
|
29
33
|
def proposals
|
30
34
|
@proposals ||= Decidim.find_resource_manifest(:proposals).try(:resource_scope, context.current_feature)&.order(title: :asc)&.pluck(:title, :id)
|
31
35
|
end
|
32
36
|
|
33
37
|
def scope
|
34
|
-
@scope ||=
|
38
|
+
@scope ||= process_scope || current_organization.scopes.where(id: decidim_scope_id).first
|
35
39
|
end
|
36
40
|
|
37
41
|
def category
|
@@ -24,6 +24,9 @@ module Decidim
|
|
24
24
|
less_than_or_equal_to: :maximum_budget
|
25
25
|
}
|
26
26
|
|
27
|
+
scope :finished, -> { where.not(checked_out_at: nil) }
|
28
|
+
scope :pending, -> { where(checked_out_at: nil) }
|
29
|
+
|
27
30
|
# Public: Returns the sum of project budgets
|
28
31
|
def total_budget
|
29
32
|
projects.to_a.sum(&:budget)
|
@@ -9,9 +9,12 @@ module Decidim
|
|
9
9
|
include Decidim::HasScope
|
10
10
|
include Decidim::HasCategory
|
11
11
|
include Decidim::HasAttachments
|
12
|
+
include Decidim::HasReference
|
12
13
|
include Decidim::Comments::Commentable
|
13
14
|
|
14
15
|
feature_manifest_name "budgets"
|
16
|
+
has_many :line_items, class_name: Decidim::Budgets::LineItem, foreign_key: "decidim_project_id", dependent: :destroy
|
17
|
+
has_many :orders, through: :line_items, foreign_key: "decidim_project_id", class_name: "Decidim::Budgets::Order"
|
15
18
|
|
16
19
|
# Public: Overrides the `commentable?` Commentable concern method.
|
17
20
|
def commentable?
|
@@ -20,13 +23,18 @@ module Decidim
|
|
20
23
|
|
21
24
|
# Public: Overrides the `accepts_new_comments?` Commentable concern method.
|
22
25
|
def accepts_new_comments?
|
23
|
-
|
26
|
+
commentable? && !feature.active_step_settings.comments_blocked
|
24
27
|
end
|
25
28
|
|
26
29
|
# Public: Overrides the `comments_have_votes?` Commentable concern method.
|
27
30
|
def comments_have_votes?
|
28
31
|
true
|
29
32
|
end
|
33
|
+
|
34
|
+
# Public: Returns the number of times an specific project have been checked out.
|
35
|
+
def confirmed_orders_count
|
36
|
+
orders.finished.count
|
37
|
+
end
|
30
38
|
end
|
31
39
|
end
|
32
40
|
end
|
@@ -19,11 +19,6 @@ module Decidim
|
|
19
19
|
.or(query.where(localized_search_text_in(:description), text: "%#{search_text}%"))
|
20
20
|
end
|
21
21
|
|
22
|
-
# Handle the scope_id filter
|
23
|
-
def search_scope_id
|
24
|
-
query.where(decidim_scope_id: scope_id)
|
25
|
-
end
|
26
|
-
|
27
22
|
# Returns the random projects for the current page.
|
28
23
|
def results
|
29
24
|
@projects ||= Project.transaction do
|
@@ -10,9 +10,11 @@
|
|
10
10
|
<%= form.number_field :budget %>
|
11
11
|
</div>
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
<% if !current_participatory_process.scope %>
|
14
|
+
<div class="field" >
|
15
|
+
<%= form.collection_select :decidim_scope_id, organization_scopes, :id, :name %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
16
18
|
|
17
19
|
<div class="field" >
|
18
20
|
<%= form.categories_select :decidim_category_id, current_participatory_process.categories, include_blank: true, disable_parents: false %>
|
@@ -1,5 +1,10 @@
|
|
1
1
|
<h2><%= t(".title") %></h2>
|
2
2
|
|
3
|
+
<dl>
|
4
|
+
<dt><%= t ".finished_orders" %>: </dt><dd><%= finished_orders.count %></dd>
|
5
|
+
<dt><%= t ".pending_orders" %>: </dt><dd><%= pending_orders.count %></dd>
|
6
|
+
</dl>
|
7
|
+
|
3
8
|
<div class="actions title">
|
4
9
|
<%= link_to t("actions.new", scope: "decidim.budgets", name: t("models.project.name", scope: "decidim.budgets.admin")), new_project_path, class: 'new' if can? :manage, current_feature %>
|
5
10
|
</div>
|
@@ -8,6 +13,7 @@
|
|
8
13
|
<thead>
|
9
14
|
<tr>
|
10
15
|
<th><%= t("models.project.fields.title", scope: "decidim.budgets") %></th>
|
16
|
+
<th class="center"><%= t("index.confirmed_orders_count") %></th>
|
11
17
|
<th class="actions"><%= t("actions.title", scope: "decidim.budgets") %></th>
|
12
18
|
</tr>
|
13
19
|
</thead>
|
@@ -17,6 +23,9 @@
|
|
17
23
|
<td>
|
18
24
|
<%= link_to translated_attribute(project.title), decidim_budgets.project_path(id: project, feature_id: current_feature, participatory_process_id: current_participatory_process), target: :blank %><br />
|
19
25
|
</td>
|
26
|
+
<td class='center'>
|
27
|
+
<%= project.confirmed_orders_count %>
|
28
|
+
</td>
|
20
29
|
<td class="actions">
|
21
30
|
<%= link_to t("actions.edit", scope: "decidim.budgets"), edit_project_path(project) if can? :update, current_feature %>
|
22
31
|
<%= link_to t("actions.attachments", scope: "decidim.budgets"), project_attachments_path(project) if can? :update, current_feature %>
|
@@ -11,6 +11,7 @@ morphdom($orderProgress[0], '<%= j(render partial: 'decidim/budgets/projects/ord
|
|
11
11
|
morphdom($budgetConfirm[0], '<%= j(render partial: 'decidim/budgets/projects/budget_confirm') %>')
|
12
12
|
|
13
13
|
$("#order-progress").foundation();
|
14
|
+
$(".budget-summary__selected").foundation();
|
14
15
|
|
15
16
|
if ($projectItem.length > 0) {
|
16
17
|
morphdom($projectItem[0], '<%= j(render partial: 'decidim/budgets/projects/project', locals: { project: project }) %>');
|
@@ -12,8 +12,8 @@
|
|
12
12
|
</div>
|
13
13
|
</div>
|
14
14
|
|
15
|
-
<% if current_organization.scopes.any? %>
|
16
|
-
<%= form.collection_check_boxes :scope_id,
|
15
|
+
<% if current_organization.scopes.any? && !current_participatory_process.scope %>
|
16
|
+
<%= form.collection_check_boxes :scope_id, search_organization_scopes, lambda {|scope| scope.id.to_s}, :name, legend_title: t('.scopes') %>
|
17
17
|
<% end %>
|
18
18
|
|
19
19
|
<% if current_feature.categories.any? %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="filters-controls hide-for-mediumlarge">
|
2
|
+
<button data-open="filter-box" class="filters-controls__trigger">
|
3
|
+
<%= t ".filter" %>
|
4
|
+
<%= icon "caret-bottom", class: "icon--small float-right", aria_label: t('.unfold'), role: "img" %>
|
5
|
+
</button>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="reveal" id="filter-box" data-reveal>
|
9
|
+
<div class="reveal__header">
|
10
|
+
<h3 class="reveal__title"><%= t ".filter_by" %>:</h3>
|
11
|
+
<button class="close-button" data-close aria-label="<%= t(".close_modal") %>" type="button">
|
12
|
+
<span aria-hidden="true">×</span>
|
13
|
+
</button>
|
14
|
+
</div>
|
15
|
+
<div class="filters">
|
16
|
+
<%= render partial: "filters" %>
|
17
|
+
</div>
|
18
|
+
</div>
|
@@ -15,18 +15,28 @@
|
|
15
15
|
<span class="card--list__data__number budget-list__number">
|
16
16
|
<%= budget_to_currency(project.budget) %>
|
17
17
|
</span>
|
18
|
-
<%= action_authorized_button_to "vote", order_line_item_path(project_id: project), method: :delete, remote: true, data: { disable: true, budget: project.budget }, disabled: current_order_checked_out?, class: "button tiny budget--list__action success" do %>
|
18
|
+
<%= action_authorized_button_to "vote", order_line_item_path(project_id: project), method: :delete, remote: true, data: { disable: true, budget: project.budget }, disabled: !current_settings.votes_enabled? || current_order_checked_out?, class: "button tiny budget--list__action success" do %>
|
19
19
|
<%= icon("check", class: "icon--small", aria_label: t('.remove'), role: "img") %>
|
20
20
|
<% end %>
|
21
|
+
<% if current_settings.show_votes? %>
|
22
|
+
<div class="card__support" style="width: 7em">
|
23
|
+
<span><%= t('.count', count: project.confirmed_orders_count) %></span>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
21
26
|
</div>
|
22
27
|
<% else %>
|
23
28
|
<div class="card--list__data budget-list__data">
|
24
29
|
<span class="card--list__data__number budget-list__number">
|
25
30
|
<%= budget_to_currency(project.budget) %>
|
26
31
|
</span>
|
27
|
-
<%= action_authorized_button_to "vote", order_line_item_path(project_id: project), method: :post, remote: true, data: { disable: true, budget: project.budget, add: true }, disabled: current_order_checked_out?, class: "button tiny hollow budget--list__action" do %>
|
32
|
+
<%= action_authorized_button_to "vote", order_line_item_path(project_id: project), method: :post, remote: true, data: { disable: true, budget: project.budget, add: true }, disabled: !current_settings.votes_enabled? || current_order_checked_out?, class: "button tiny hollow budget--list__action" do %>
|
28
33
|
<%= icon("check", class: "icon--small", aria_label: t('.add'), role: "img") %>
|
29
34
|
<% end %>
|
35
|
+
<% if current_settings.show_votes? %>
|
36
|
+
<div class="card__support" style="width: 7em">
|
37
|
+
<span><%= t('.count', count: project.confirmed_orders_count) %></span>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
30
40
|
</div>
|
31
41
|
<% end %>
|
32
42
|
<% else %>
|
@@ -37,6 +47,11 @@
|
|
37
47
|
<a href="#" class="button tiny hollow budget--list__action disabled" data-toggle="loginModal">
|
38
48
|
<%= icon("check", class: "icon--small", aria_label: t('.add'), role: "img") %>
|
39
49
|
</a>
|
50
|
+
<% if current_settings.show_votes? %>
|
51
|
+
<div class="card__support" style="width: 7em">
|
52
|
+
<span><%= t('.count', count: project.confirmed_orders_count) %></span>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
40
55
|
</div>
|
41
56
|
<% end %>
|
42
57
|
</div>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<% if current_user.present? %>
|
2
2
|
<% if current_order && current_order.projects.include?(project) %>
|
3
|
-
<%= action_authorized_button_to "vote", t('.added'), order_line_item_path(project_id: project), method: :delete, remote: true, data: { disable: true, budget: project.budget }, disabled: current_order_checked_out?, class: "button expanded button--sc success budget--list__action" %>
|
3
|
+
<%= action_authorized_button_to "vote", t('.added'), order_line_item_path(project_id: project), method: :delete, remote: true, data: { disable: true, budget: project.budget }, disabled: !current_settings.votes_enabled? || current_order_checked_out?, class: "button expanded button--sc success budget--list__action" %>
|
4
4
|
<% else %>
|
5
|
-
<%= action_authorized_button_to "vote", t('.add'), order_line_item_path(project_id: project), method: :post, remote: true, data: { disable: true, budget: project.budget, add: true }, disabled: current_order_checked_out?, class: "button expanded button--sc budget--list__action" %>
|
5
|
+
<%= action_authorized_button_to "vote", t('.add'), order_line_item_path(project_id: project), method: :post, remote: true, data: { disable: true, budget: project.budget, add: true }, disabled: !current_settings.votes_enabled? || current_order_checked_out?, class: "button expanded button--sc budget--list__action" %>
|
6
6
|
<% end %>
|
7
7
|
<% else %>
|
8
8
|
<button class="button expanded button--sc disabled" data-toggle="loginModal"><%= t('.add') %></button>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<% if project.category.present? %>
|
4
4
|
<li><%= link_to translated_attribute(project.category.name), decidim_budgets.projects_path(filter: { category_id: project.category.id }) %></li>
|
5
5
|
<% end %>
|
6
|
-
<% if project.scope.present? %>
|
6
|
+
<% if project.scope.present? && !current_participatory_process.scope %>
|
7
7
|
<li><%= link_to project.scope.name, decidim_budgets.projects_path(filter: { scope_id: [project.scope.id] }) %></li>
|
8
8
|
<% end %>
|
9
9
|
</ul>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% if current_user.present? %>
|
1
|
+
<% if current_user.present? && current_settings.votes_enabled? %>
|
2
2
|
<div class="row column">
|
3
3
|
<%= render partial: "budget_summary", locals: { include_heading: true } %>
|
4
4
|
</div>
|
@@ -10,6 +10,7 @@
|
|
10
10
|
</div>
|
11
11
|
<div class="row">
|
12
12
|
<div class="columns mediumlarge-4 large-3">
|
13
|
+
<%= render partial: "filters_small_view"%>
|
13
14
|
<div class="card card--secondary show-for-mediumlarge" >
|
14
15
|
<%= render partial: "filters" %>
|
15
16
|
</div>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
) %>
|
5
5
|
|
6
6
|
<div class="row column view-header">
|
7
|
-
<% if current_user.present? %>
|
7
|
+
<% if current_user.present? && current_settings.votes_enabled? %>
|
8
8
|
<%= render partial: "budget_summary", locals: { include_heading: false } %>
|
9
9
|
<% end %>
|
10
10
|
<%= link_to projects_path, class: "muted-link" do %>
|
@@ -22,11 +22,17 @@
|
|
22
22
|
<span class="definition-data__title"><%= t('.budget') %></span>
|
23
23
|
<span class="definition-data__number"><%= budget_to_currency project.budget %></span>
|
24
24
|
</div>
|
25
|
+
<% if current_settings.show_votes? %>
|
26
|
+
<div class="card__support__data">
|
27
|
+
<span><%= t('decidim.budgets.projects.project.count', count: project.confirmed_orders_count) %></span>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
25
30
|
<div id="project-<%= project.id %>-budget-button">
|
26
31
|
<%= render partial: 'project_budget_button', locals: { project: project } %>
|
27
32
|
</div>
|
28
33
|
</div>
|
29
34
|
</div>
|
35
|
+
<%= feature_reference(project) %>
|
30
36
|
</div>
|
31
37
|
<div class="columns mediumlarge-8 mediumlarge-pull-4">
|
32
38
|
<div class="section">
|
data/config/i18n-tasks.yml
CHANGED
data/config/locales/ca.yml
CHANGED
@@ -31,6 +31,8 @@ ca:
|
|
31
31
|
title: Editar projecte
|
32
32
|
update: Actualitzar projecte
|
33
33
|
index:
|
34
|
+
finished_orders: Vots finalitzats
|
35
|
+
pending_orders: Vots en procés
|
34
36
|
title: Projectes
|
35
37
|
new:
|
36
38
|
create: Crear projecte
|
@@ -51,7 +53,7 @@ ca:
|
|
51
53
|
title: Confirmar vot
|
52
54
|
budget_excess:
|
53
55
|
close: Tancar
|
54
|
-
description: Aquest projecte sobrepassa el pressupost màxim i no es pot afegir. Si ho desitges, pots eliminar un projecte ja seleccionat per afegir aquest o
|
56
|
+
description: Aquest projecte sobrepassa el pressupost màxim i no es pot afegir. Si ho desitges, pots eliminar un projecte ja seleccionat per afegir aquest o donar suport amb les seves preferències.
|
55
57
|
ok: D'acord
|
56
58
|
title: Pressupost superat
|
57
59
|
budget_summary:
|
@@ -61,7 +63,7 @@ ca:
|
|
61
63
|
checked_out:
|
62
64
|
description: Ja has votat pel pressupost. Si has canviat d'idea, pots %{cancel_link}.
|
63
65
|
title: Vot pels pressupostos completat
|
64
|
-
description: En quins projectes creus que hem de destinar el pressupost? Has d'assignar com a mínim %{minimum_budget} als projectes que desitges i
|
66
|
+
description: En quins projectes creus que hem de destinar el pressupost? Has d'assignar com a mínim %{minimum_budget} als projectes que desitges i donar suport amb les teves preferències per definir el pressupost.
|
65
67
|
title: Tu decideixes el pressupost
|
66
68
|
count:
|
67
69
|
projects_count:
|
@@ -71,8 +73,13 @@ ca:
|
|
71
73
|
category: Categoria
|
72
74
|
scopes: Àmbits
|
73
75
|
search: Cerca
|
76
|
+
filters_small_view:
|
77
|
+
close_modal: Tancar finestra
|
78
|
+
filter: Filtra
|
79
|
+
filter_by: Filtra per
|
80
|
+
unfold: Desplegar
|
74
81
|
order_progress:
|
75
|
-
vote:
|
82
|
+
vote: Donar suport
|
76
83
|
order_selected_projects:
|
77
84
|
remove: Esborrar
|
78
85
|
selected_projects:
|
@@ -81,6 +88,9 @@ ca:
|
|
81
88
|
view: Veure
|
82
89
|
project:
|
83
90
|
add: Afegir
|
91
|
+
count:
|
92
|
+
one: 1 suport
|
93
|
+
other: "%{count} suports"
|
84
94
|
remove: Esborrar
|
85
95
|
project_budget_button:
|
86
96
|
add: Afegir
|
@@ -90,6 +100,8 @@ ca:
|
|
90
100
|
view_all_projects: Veure tots els projectes
|
91
101
|
features:
|
92
102
|
budgets:
|
103
|
+
actions:
|
104
|
+
vote: Donar suport
|
93
105
|
name: Pressupostos
|
94
106
|
settings:
|
95
107
|
global:
|
@@ -98,6 +110,7 @@ ca:
|
|
98
110
|
vote_threshold_percent: Percentatge del pressupost mínim per fer el vot
|
99
111
|
step:
|
100
112
|
comments_blocked: Comentaris bloquejats
|
113
|
+
votes_enabled: Suports habilitats
|
101
114
|
orders:
|
102
115
|
checkout:
|
103
116
|
error: S'ha produït un error en processar el teu vot
|
@@ -105,4 +118,6 @@ ca:
|
|
105
118
|
destroy:
|
106
119
|
error: S'ha produït un error en cancel·lar el seu vot
|
107
120
|
success: El seu vot ha estat cancel·lat correctament
|
121
|
+
index:
|
122
|
+
confirmed_orders_count: Nombre de vots
|
108
123
|
total_budget: Pressupost total
|
data/config/locales/en.yml
CHANGED
@@ -32,6 +32,8 @@ en:
|
|
32
32
|
title: Edit project
|
33
33
|
update: Update project
|
34
34
|
index:
|
35
|
+
finished_orders: Finished orders
|
36
|
+
pending_orders: Pending orders
|
35
37
|
title: Projects
|
36
38
|
new:
|
37
39
|
create: Create project
|
@@ -78,6 +80,11 @@ en:
|
|
78
80
|
category: Category
|
79
81
|
scopes: Scopes
|
80
82
|
search: Search
|
83
|
+
filters_small_view:
|
84
|
+
close_modal: Close modal
|
85
|
+
filter: Filter
|
86
|
+
filter_by: Filter by
|
87
|
+
unfold: Unfold
|
81
88
|
order_progress:
|
82
89
|
vote: Vote
|
83
90
|
order_selected_projects:
|
@@ -88,6 +95,9 @@ en:
|
|
88
95
|
view: View
|
89
96
|
project:
|
90
97
|
add: Add
|
98
|
+
count:
|
99
|
+
one: 1 support
|
100
|
+
other: "%{count} supports"
|
91
101
|
remove: Remove
|
92
102
|
project_budget_button:
|
93
103
|
add: Add
|
@@ -97,6 +107,8 @@ en:
|
|
97
107
|
view_all_projects: View all projects
|
98
108
|
features:
|
99
109
|
budgets:
|
110
|
+
actions:
|
111
|
+
vote: Vote
|
100
112
|
name: Budgets
|
101
113
|
settings:
|
102
114
|
global:
|
@@ -105,6 +117,7 @@ en:
|
|
105
117
|
vote_threshold_percent: Vote threshold percent
|
106
118
|
step:
|
107
119
|
comments_blocked: Comments blocked
|
120
|
+
votes_enabled: Votes enabled
|
108
121
|
orders:
|
109
122
|
checkout:
|
110
123
|
error: An error ocurred while processing your vote
|
@@ -112,4 +125,6 @@ en:
|
|
112
125
|
destroy:
|
113
126
|
error: An error ocurred while canceling your vote
|
114
127
|
success: Your vote has been canceled successfully
|
128
|
+
index:
|
129
|
+
confirmed_orders_count: Orders count
|
115
130
|
total_budget: Total budget
|
data/config/locales/es.yml
CHANGED
@@ -31,6 +31,8 @@ es:
|
|
31
31
|
title: Editar proyecto
|
32
32
|
update: Actualizar proyecto
|
33
33
|
index:
|
34
|
+
finished_orders: Votos finalizados
|
35
|
+
pending_orders: Votos pendientes
|
34
36
|
title: Proyectos
|
35
37
|
new:
|
36
38
|
create: Crear proyecto
|
@@ -51,7 +53,7 @@ es:
|
|
51
53
|
title: Confirmar voto
|
52
54
|
budget_excess:
|
53
55
|
close: Cerrar
|
54
|
-
description: Este proyecto sobrepasa el presupuesto máximo y no se puede añadir. Si lo deseas, puede eliminar un proyecto que ya hayas seleccionado o
|
56
|
+
description: Este proyecto sobrepasa el presupuesto máximo y no se puede añadir. Si lo deseas, puede eliminar un proyecto que ya hayas seleccionado o dar apoyo con tus preferencias.
|
55
57
|
ok: De acuerdo
|
56
58
|
title: Presupuesto excedido
|
57
59
|
budget_summary:
|
@@ -71,8 +73,13 @@ es:
|
|
71
73
|
category: Categoría
|
72
74
|
scopes: Ámbitos
|
73
75
|
search: Buscar
|
76
|
+
filters_small_view:
|
77
|
+
close_modal: Cerrar ventana
|
78
|
+
filter: Filtrar
|
79
|
+
filter_by: Filtrar por
|
80
|
+
unfold: Desplegar
|
74
81
|
order_progress:
|
75
|
-
vote:
|
82
|
+
vote: Dar apoyo
|
76
83
|
order_selected_projects:
|
77
84
|
remove: Eliminar
|
78
85
|
selected_projects:
|
@@ -81,6 +88,9 @@ es:
|
|
81
88
|
view: Ver
|
82
89
|
project:
|
83
90
|
add: Añadir
|
91
|
+
count:
|
92
|
+
one: 1 apoyo
|
93
|
+
other: "%{count} apoyos"
|
84
94
|
remove: Eliminar
|
85
95
|
project_budget_button:
|
86
96
|
add: Añadir
|
@@ -90,6 +100,8 @@ es:
|
|
90
100
|
view_all_projects: Ver todos los proyectos
|
91
101
|
features:
|
92
102
|
budgets:
|
103
|
+
actions:
|
104
|
+
vote: Dar apoyo
|
93
105
|
name: Presupuestos
|
94
106
|
settings:
|
95
107
|
global:
|
@@ -98,6 +110,7 @@ es:
|
|
98
110
|
vote_threshold_percent: Porcentaje mínimo del presupuesto
|
99
111
|
step:
|
100
112
|
comments_blocked: Comentarios bloqueados
|
113
|
+
votes_enabled: Votos habilitados
|
101
114
|
orders:
|
102
115
|
checkout:
|
103
116
|
error: Se ha producido un error al procesar tu voto
|
@@ -105,4 +118,6 @@ es:
|
|
105
118
|
destroy:
|
106
119
|
error: Ha habido un error al cancelar tu voto
|
107
120
|
success: Tu voto ha sido cancelado correctamente
|
121
|
+
index:
|
122
|
+
confirmed_orders_count: Número de votos
|
108
123
|
total_budget: Presupuesto total
|
data/config/locales/eu.yml
CHANGED
@@ -2,4 +2,100 @@ eu:
|
|
2
2
|
activemodel:
|
3
3
|
attributes:
|
4
4
|
project:
|
5
|
-
budget: Aurrekontua
|
5
|
+
budget: Aurrekontua
|
6
|
+
decidim_category_id: Kategoria
|
7
|
+
decidim_scope_id: Esparrua
|
8
|
+
description: Deskribapena
|
9
|
+
proposal_ids: Honekin lotutako proposamenak
|
10
|
+
title: Izenburua
|
11
|
+
decidim:
|
12
|
+
budgets:
|
13
|
+
actions:
|
14
|
+
attachments: Fitxategi erantsiak
|
15
|
+
confirm_destroy: Ziur zaude proiektu hau ezabatu nahi duzula?
|
16
|
+
destroy: Garbitu
|
17
|
+
edit: Editatu
|
18
|
+
new: '%{name} berria'
|
19
|
+
title: Ekintzak
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
project:
|
23
|
+
name: Proiektua
|
24
|
+
projects:
|
25
|
+
create:
|
26
|
+
invalid: Arazo bat izan da proiektu hau sortzean
|
27
|
+
success: Proiektua ongi sortu da
|
28
|
+
destroy:
|
29
|
+
success: Proiektu ongi ezabatu da
|
30
|
+
edit:
|
31
|
+
title: Editatu proiektua
|
32
|
+
update: Eguneratu proiektua
|
33
|
+
index:
|
34
|
+
title: Proiektuak
|
35
|
+
new:
|
36
|
+
create: Sortu proiektua
|
37
|
+
title: Emaitza berria
|
38
|
+
update:
|
39
|
+
invalid: Arazo bat izan da proiektu hau eguneratzean
|
40
|
+
success: Proiektua zuzen eguneratu da
|
41
|
+
models:
|
42
|
+
project:
|
43
|
+
fields:
|
44
|
+
title: Izenburua
|
45
|
+
projects:
|
46
|
+
budget_confirm:
|
47
|
+
are_you_sure: Ados zaude? Behin zure botoa baieztatuta, ezin izanen duzu aldatu.'
|
48
|
+
cancel: Utzi
|
49
|
+
confirm: Baieztatu
|
50
|
+
description: Proiektu hauek hautatu dituzu aurrekontuan sartzeko
|
51
|
+
title: Baieztatu botoa
|
52
|
+
budget_excess:
|
53
|
+
close: Itxi
|
54
|
+
description: Proiektu honek gehieneko aurrekontua gainditzen du, eta ezin da gehitu. Nahi baduzu, jada hautatua duzun proiektu bat ezaba dezakezu edo botoa eman zure lehenespenekin bat.
|
55
|
+
ok: Ados
|
56
|
+
title: Aurrekontua gainditu da.
|
57
|
+
budget_summary:
|
58
|
+
are_you_sure: Ziur zaude zure botoa ezeztatu nahi duzula?
|
59
|
+
assigned: 'Esleituta:'
|
60
|
+
checked_out:
|
61
|
+
title: Botoa zuzen bidali da
|
62
|
+
description: Zure aburuz, proiektuetako zeinei esleitu behar diegu aurrekontua? Gutxienez, %{minimum_budget} esleitu nahi dituzun proiektuei, eta bozkatu aurrekontua zehazteko.
|
63
|
+
title: Zure esku dago aurrekontua erabakitzea
|
64
|
+
count:
|
65
|
+
projects_count:
|
66
|
+
one: Proiektu bat
|
67
|
+
other: "%{count} proiektu"
|
68
|
+
filters:
|
69
|
+
category: Kategoria
|
70
|
+
scopes: Esparruak
|
71
|
+
search: Bilatu
|
72
|
+
filters_small_view:
|
73
|
+
filter_by: 'Iragazi honen arabera:'
|
74
|
+
order_progress:
|
75
|
+
vote: Bozkatu
|
76
|
+
order_selected_projects:
|
77
|
+
remove: Kendu
|
78
|
+
selected_projects:
|
79
|
+
one: hautatutako proiektua
|
80
|
+
other: hautatutako proiektuak
|
81
|
+
view: Ikusi
|
82
|
+
project:
|
83
|
+
add: Gehitu
|
84
|
+
remove: Kendu
|
85
|
+
project_budget_button:
|
86
|
+
add: Gehitu
|
87
|
+
added: Erantsita
|
88
|
+
show:
|
89
|
+
budget: Aurrekontua
|
90
|
+
view_all_projects: Ikusi proiektu guztiak
|
91
|
+
features:
|
92
|
+
budgets:
|
93
|
+
name: Aurrekontuak
|
94
|
+
orders:
|
95
|
+
checkout:
|
96
|
+
error: Errorea gertatu da zure botoa prozesatzean
|
97
|
+
success: Zure botoa ongi bideratu da
|
98
|
+
destroy:
|
99
|
+
error: Errorea gertatu da zure botoa ezeztatzean
|
100
|
+
success: Zure botua zuzen ezeztatu da
|
101
|
+
total_budget: Guztizko aurrekontua
|
@@ -0,0 +1,123 @@
|
|
1
|
+
fi:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
project:
|
5
|
+
budget: Budjetti
|
6
|
+
decidim_category_id: Kategoria
|
7
|
+
decidim_scope_id: Konteksti
|
8
|
+
description: Kuvaus
|
9
|
+
proposal_ids: Liittyvät esitykset
|
10
|
+
title: Otsikko
|
11
|
+
decidim:
|
12
|
+
budgets:
|
13
|
+
actions:
|
14
|
+
attachments: Liitteet
|
15
|
+
confirm_destroy: Haluatko varmasti poistaa tämän projektin?
|
16
|
+
destroy: Poista
|
17
|
+
edit: Muokkaa
|
18
|
+
new: Uusi %{name}
|
19
|
+
title: Toiminnot
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
project:
|
23
|
+
name: Projekti
|
24
|
+
projects:
|
25
|
+
create:
|
26
|
+
invalid: Tämän projektin lisäyksessä tapahtui virhe
|
27
|
+
success: Projekti lisätty onnistuneesti
|
28
|
+
destroy:
|
29
|
+
success: Projekti tuhottu onnistuneesti
|
30
|
+
edit:
|
31
|
+
title: Muokkaa projektia
|
32
|
+
update: Päivitä projektia
|
33
|
+
index:
|
34
|
+
finished_orders: Valmiit tilaukset
|
35
|
+
pending_orders: Odottavat tilaukset
|
36
|
+
title: Projektit
|
37
|
+
new:
|
38
|
+
create: Luo projekti
|
39
|
+
title: Uusi tulos
|
40
|
+
update:
|
41
|
+
invalid: Tämän projektin päivityksessä tapahtui virhe
|
42
|
+
success: Projekti päivitetty onnistuneesti
|
43
|
+
models:
|
44
|
+
project:
|
45
|
+
fields:
|
46
|
+
title: Otsikko
|
47
|
+
projects:
|
48
|
+
budget_confirm:
|
49
|
+
are_you_sure: Oletko samaa mieltä? Kun olet vahvistanut äänesi, et voi enää muuttaa sitä.
|
50
|
+
cancel: Peruuta
|
51
|
+
confirm: Vahvista
|
52
|
+
description: Olet valinnut nämä projektit osaksi budjettia.
|
53
|
+
title: Vahvista ääni
|
54
|
+
budget_excess:
|
55
|
+
close: Sulje
|
56
|
+
description: Tämä projekti ylittää maksimibudjetin, minkä takia sitä ei voida lisätä. Jos haluat, voit poistaa projektin, jonka olet jo valinnut lisättäväksi tai äänestää omien mieltymyksesi mukaisesti.
|
57
|
+
ok: OK
|
58
|
+
title: Maksimibudjetti ylitetty
|
59
|
+
budget_summary:
|
60
|
+
are_you_sure: Haluatko varmasti peruuttaa äänesi?
|
61
|
+
assigned: 'Varattu:'
|
62
|
+
cancel_order: poistaa äänesi ja aloittaa alusta
|
63
|
+
checked_out:
|
64
|
+
description: Olet jo äänestänyt tätä budjettia. Jos muutit mieltäsi, voit %{cancel_link}.
|
65
|
+
title: Budjetin äänestys suoritettu
|
66
|
+
description: Mitä projekteja varten sinun mielestäsi budjettia tulisi varata? Varaa vähintään %{minimum_budget} projekteille, jotka haluat toteutettavan ja äänestä mieltymystesi mukaisesti määrittääksesi budjetin.
|
67
|
+
title: Voit päättää budjetin
|
68
|
+
count:
|
69
|
+
projects_count:
|
70
|
+
one: 1 projekti
|
71
|
+
other: "%{count} projektia"
|
72
|
+
filters:
|
73
|
+
category: Kategoria
|
74
|
+
scopes: Konteksti
|
75
|
+
search: Haku
|
76
|
+
filters_small_view:
|
77
|
+
close_modal: Sulje ikkuna
|
78
|
+
filter: Suodata
|
79
|
+
filter_by: Suodata
|
80
|
+
unfold: Avaa
|
81
|
+
order_progress:
|
82
|
+
vote: Äänestä
|
83
|
+
order_selected_projects:
|
84
|
+
remove: Poista
|
85
|
+
selected_projects:
|
86
|
+
one: projekti valittu
|
87
|
+
other: projektia valittu
|
88
|
+
view: Näytä
|
89
|
+
project:
|
90
|
+
add: Lisää
|
91
|
+
count:
|
92
|
+
one: 1 kannatus
|
93
|
+
other: "%{count} kannatusta"
|
94
|
+
remove: Poista
|
95
|
+
project_budget_button:
|
96
|
+
add: Lisää
|
97
|
+
added: Lisätty
|
98
|
+
show:
|
99
|
+
budget: Budjetti
|
100
|
+
view_all_projects: Näytä kaikki projektit
|
101
|
+
features:
|
102
|
+
budgets:
|
103
|
+
actions:
|
104
|
+
vote: Äänestä
|
105
|
+
name: Budjetit
|
106
|
+
settings:
|
107
|
+
global:
|
108
|
+
comments_enabled: Kommentointi sallittu
|
109
|
+
total_budget: Koko budjetti
|
110
|
+
vote_threshold_percent: Äänestyskynnyksen prosentti
|
111
|
+
step:
|
112
|
+
comments_blocked: Kommentointi kielletty
|
113
|
+
votes_enabled: Äänestys sallittu
|
114
|
+
orders:
|
115
|
+
checkout:
|
116
|
+
error: Äänesi käsittelyssä tapahtui virhe
|
117
|
+
success: Äänesi on hyväksytty onnistuneesti
|
118
|
+
destroy:
|
119
|
+
error: Äänesi peruutuksen yhteydessä tapahtui virhe
|
120
|
+
success: Äänesi on peruttu onnistuneesti
|
121
|
+
index:
|
122
|
+
confirmed_orders_count: Tilauksien määrä
|
123
|
+
total_budget: Koko budjetti
|
@@ -27,6 +27,8 @@ Decidim.register_feature(:budgets) do |feature|
|
|
27
27
|
|
28
28
|
feature.settings(:step) do |settings|
|
29
29
|
settings.attribute :comments_blocked, type: :boolean, default: false
|
30
|
+
settings.attribute :votes_enabled, type: :boolean, default: true
|
31
|
+
settings.attribute :show_votes, type: :boolean, default: false
|
30
32
|
end
|
31
33
|
|
32
34
|
feature.seeds do
|
@@ -54,13 +56,13 @@ Decidim.register_feature(:budgets) do |feature|
|
|
54
56
|
Decidim::Attachment.create!(
|
55
57
|
title: Decidim::Faker::Localized.sentence(2),
|
56
58
|
description: Decidim::Faker::Localized.sentence(5),
|
57
|
-
file: File.new(
|
59
|
+
file: File.new(File.join(File.dirname(__FILE__), "seeds", "city.jpeg")),
|
58
60
|
attached_to: project
|
59
61
|
)
|
60
62
|
Decidim::Attachment.create!(
|
61
63
|
title: Decidim::Faker::Localized.sentence(2),
|
62
64
|
description: Decidim::Faker::Localized.sentence(5),
|
63
|
-
file: File.new(
|
65
|
+
file: File.new(File.join(File.dirname(__FILE__), "seeds", "Exampledocument.pdf")),
|
64
66
|
attached_to: project
|
65
67
|
)
|
66
68
|
Decidim::Comments::Seed.comments_for(project)
|
Binary file
|
Binary file
|
@@ -6,7 +6,7 @@ FactoryGirl.define do
|
|
6
6
|
factory :budget_feature, parent: :feature do
|
7
7
|
name { Decidim::Features::Namer.new(participatory_process.organization.available_locales, :budgets).i18n_name }
|
8
8
|
manifest_name :budgets
|
9
|
-
participatory_process
|
9
|
+
participatory_process { create(:participatory_process, :with_steps) }
|
10
10
|
|
11
11
|
trait :with_total_budget_and_vote_threshold_percent do
|
12
12
|
transient do
|
@@ -21,6 +21,26 @@ FactoryGirl.define do
|
|
21
21
|
}
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
trait :with_votes_disabled do
|
26
|
+
step_settings do
|
27
|
+
{
|
28
|
+
participatory_process.active_step.id => {
|
29
|
+
votes_enabled: false
|
30
|
+
}
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
trait :with_show_votes_enabled do
|
36
|
+
step_settings do
|
37
|
+
{
|
38
|
+
participatory_process.active_step.id => {
|
39
|
+
show_votes: true
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
24
44
|
end
|
25
45
|
|
26
46
|
factory :project, class: Decidim::Budgets::Project do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-budgets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
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-
|
13
|
+
date: 2017-03-24 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.6
|
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.6
|
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.6
|
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.6
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rectify
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,42 +88,42 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.0.
|
91
|
+
version: 0.0.6
|
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.6
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: decidim-proposals
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - '='
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.0.
|
105
|
+
version: 0.0.6
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - '='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.0.
|
112
|
+
version: 0.0.6
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: decidim-admin
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - '='
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.0.
|
119
|
+
version: 0.0.6
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
124
|
- - '='
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.0.
|
126
|
+
version: 0.0.6
|
127
127
|
description: ''
|
128
128
|
email:
|
129
129
|
- josepjaume@gmail.com
|
@@ -175,6 +175,7 @@ files:
|
|
175
175
|
- app/views/decidim/budgets/projects/_budget_summary.html.erb
|
176
176
|
- app/views/decidim/budgets/projects/_count.html.erb
|
177
177
|
- app/views/decidim/budgets/projects/_filters.html.erb
|
178
|
+
- app/views/decidim/budgets/projects/_filters_small_view.html.erb
|
178
179
|
- app/views/decidim/budgets/projects/_linked_projects.html.erb
|
179
180
|
- app/views/decidim/budgets/projects/_order_progress.html.erb
|
180
181
|
- app/views/decidim/budgets/projects/_order_selected_projects.html.erb
|
@@ -191,15 +192,19 @@ files:
|
|
191
192
|
- config/locales/en.yml
|
192
193
|
- config/locales/es.yml
|
193
194
|
- config/locales/eu.yml
|
195
|
+
- config/locales/fi.yml
|
194
196
|
- db/migrate/20170127114122_create_projects.rb
|
195
197
|
- db/migrate/20170130095615_create_orders.rb
|
196
198
|
- db/migrate/20170130101825_create_line_items.rb
|
197
199
|
- db/migrate/20170207101750_remove_short_description_from_decidim_projects.rb
|
200
|
+
- db/migrate/20170215132708_add_reference_to_projects.rb
|
198
201
|
- lib/decidim/budgets.rb
|
199
202
|
- lib/decidim/budgets/admin.rb
|
200
203
|
- lib/decidim/budgets/admin_engine.rb
|
201
204
|
- lib/decidim/budgets/feature.rb
|
202
205
|
- lib/decidim/budgets/list_engine.rb
|
206
|
+
- lib/decidim/budgets/seeds/Exampledocument.pdf
|
207
|
+
- lib/decidim/budgets/seeds/city.jpeg
|
203
208
|
- lib/decidim/budgets/test/factories.rb
|
204
209
|
homepage: https://github.com/AjuntamentdeBarcelona/decidim
|
205
210
|
licenses:
|