decidim-budgets 0.18.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05956f5a4f497c595855001a0e9db2bad912c16b6f90b1833ddda013b968e369'
4
- data.tar.gz: bcd6faf05f2b6829d3d2c64a52e1bafa49c94019fdba30e547ff7de314856c7c
3
+ metadata.gz: f6d8d13e020844efb51e9fbf69025c2f50e8e4ce55e6126ec10a38dc4ea25cc6
4
+ data.tar.gz: fb963e40341a1881b465fba889de2d33fc292854433e0712ee4753ba5f11e969
5
5
  SHA512:
6
- metadata.gz: 8f59f6d0f77f55d80fd5fd335e254a68adeb14bc775ecfc2e48fa3c7c3b4d4d023bb065f93e173c453129a07b1db239d9405a7a34815fe57bb54997652107a92
7
- data.tar.gz: 0af13ef35e89494ed91889c16382f3cb479df3bf33d321993a8acf672635b9a38607d75671d51ad226811f98ee600c75934152e96b55b8db09f2c06dc6857f89
6
+ metadata.gz: ba9214e3e9470af3e1844b8f5df22a1de1a3c23641d2c3eef49ccafaf3f8f3f3ce91197892634afce3555e02cfbd1fb0695ec2f853adc5c9adb2f26f084f1c34
7
+ data.tar.gz: dd8b4e38291f91988dd706640717851b89a1ccd2c43bb57eab93abbae327fd5af6c0ceb277de0227f5e3e56e9f84c179cd7226c11743fbd2177035e036f97950
@@ -24,6 +24,7 @@ module Decidim
24
24
  def call
25
25
  transaction do
26
26
  return broadcast(:invalid) if votes_disabled? || order.checked_out?
27
+
27
28
  add_line_item
28
29
  broadcast(:ok, order)
29
30
  end
@@ -19,6 +19,7 @@ module Decidim
19
19
  # Returns nothing.
20
20
  def call
21
21
  return broadcast(:invalid) if invalid_order?
22
+
22
23
  cancel_order!
23
24
  broadcast(:ok, @order)
24
25
  end
@@ -21,6 +21,7 @@ module Decidim
21
21
  # Returns nothing.
22
22
  def call
23
23
  return broadcast(:invalid, @order) unless checkout!
24
+
24
25
  broadcast(:ok, @order)
25
26
  end
26
27
 
@@ -21,6 +21,7 @@ module Decidim
21
21
  # Returns nothing.
22
22
  def call
23
23
  return broadcast(:invalid) if @order.checked_out?
24
+
24
25
  remove_line_item
25
26
  broadcast(:ok, @order)
26
27
  end
@@ -20,7 +20,7 @@ module Decidim
20
20
  end
21
21
 
22
22
  on(:invalid) do
23
- render nothing: true, status: 422
23
+ render nothing: true, status: :unprocessable_entity
24
24
  end
25
25
  end
26
26
  end
@@ -35,7 +35,7 @@ module Decidim
35
35
  end
36
36
 
37
37
  on(:invalid) do
38
- render nothing: true, status: 422
38
+ render nothing: true, status: :unprocessable_entity
39
39
  end
40
40
  end
41
41
  end
@@ -6,21 +6,18 @@ module Decidim
6
6
  class ProjectsController < Decidim::Budgets::ApplicationController
7
7
  include FilterResource
8
8
  include NeedsCurrentOrder
9
+ include Orderable
9
10
 
10
- helper_method :projects, :random_seed, :project
11
+ helper_method :projects, :project
11
12
 
12
13
  private
13
14
 
14
15
  def projects
15
- @projects ||= search.results.page(params[:page]).per(current_component.settings.projects_per_page)
16
- end
17
-
18
- def random_seed
19
- @random_seed ||= search.random_seed
16
+ @projects ||= search.results.order_randomly(random_seed).page(params[:page]).per(current_component.settings.projects_per_page)
20
17
  end
21
18
 
22
19
  def project
23
- @project ||= projects.find(params[:id])
20
+ @project ||= search.results.find(params[:id])
24
21
  end
25
22
 
26
23
  def search_klass
@@ -31,8 +28,7 @@ module Decidim
31
28
  {
32
29
  search_text: "",
33
30
  scope_id: "",
34
- category_id: "",
35
- random_seed: params[:random_seed]
31
+ category_id: ""
36
32
  }
37
33
  end
38
34
 
@@ -13,6 +13,7 @@ module Decidim
13
13
 
14
14
  def same_component
15
15
  return unless order && project
16
+
16
17
  errors.add(:order, :invalid) unless order.component == project.component
17
18
  end
18
19
  end
@@ -53,12 +53,14 @@ module Decidim
53
53
  # Public: Returns the required minimum budget to checkout
54
54
  def minimum_budget
55
55
  return 0 unless component
56
+
56
57
  component.settings.total_budget.to_f * (component.settings.vote_threshold_percent.to_f / 100)
57
58
  end
58
59
 
59
60
  # Public: Returns the required maximum budget to checkout
60
61
  def maximum_budget
61
62
  return 0 unless component
63
+
62
64
  component.settings.total_budget.to_f
63
65
  end
64
66
 
@@ -82,6 +84,7 @@ module Decidim
82
84
  organization = component&.organization
83
85
 
84
86
  return if !user || !organization
87
+
85
88
  errors.add(:user, :invalid) unless user.organization == organization
86
89
  end
87
90
  end
@@ -16,6 +16,7 @@ module Decidim
16
16
  include Decidim::Comments::Commentable
17
17
  include Decidim::Traceable
18
18
  include Decidim::Loggable
19
+ include Decidim::Randomable
19
20
 
20
21
  component_manifest_name "budgets"
21
22
  has_many :line_items, class_name: "Decidim::Budgets::LineItem", foreign_key: "decidim_project_id", dependent: :destroy
@@ -10,7 +10,6 @@ module Decidim
10
10
  # component - A Decidim::Component to get the projects from.
11
11
  def initialize(options = {})
12
12
  super(Project.all, options)
13
- @random_seed = options[:random_seed].to_f
14
13
  end
15
14
 
16
15
  # Handle the search_text filter
@@ -22,16 +21,7 @@ module Decidim
22
21
 
23
22
  # Returns the random projects for the current page.
24
23
  def results
25
- @results ||= Project.transaction do
26
- Project.connection.execute("SELECT setseed(#{Project.connection.quote(random_seed)})")
27
- super.reorder(Arel.sql("RANDOM()")).load
28
- end
29
- end
30
-
31
- # Returns the random seed used to randomize the proposals.
32
- def random_seed
33
- @random_seed = (rand * 2 - 1) if @random_seed == 0.0 || @random_seed > 1 || @random_seed < -1
34
- @random_seed
24
+ Project.where(id: super.pluck(:id))
35
25
  end
36
26
 
37
27
  private
@@ -21,7 +21,7 @@
21
21
  <% projects.each do |project| %>
22
22
  <tr data-id="<%= project.id %>">
23
23
  <td>
24
- <%= translated_attribute(project.title) %><br />
24
+ <%= translated_attribute(project.title) %><br>
25
25
  </td>
26
26
  <td class='center'>
27
27
  <%= project.confirmed_orders_count %>
@@ -19,6 +19,4 @@
19
19
  <% if current_component.categories.any? %>
20
20
  <%= form.categories_select :category_id, current_component.categories, legend_title: t(".category"), disable_parents: false, label: false, prompt: t(".category_prompt") %>
21
21
  <% end %>
22
-
23
- <%= form.hidden_field :random_seed %>
24
22
  <% end %>
@@ -3,4 +3,4 @@
3
3
  <%= render partial: "project", locals: { project: project } %>
4
4
  <% end %>
5
5
  </div>
6
- <%= decidim_paginate projects, random_seed: random_seed %>
6
+ <%= decidim_paginate projects %>
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-budgets version.
5
5
  module Budgets
6
6
  def self.version
7
- "0.18.1"
7
+ "0.19.0"
8
8
  end
9
9
  end
10
10
  end
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.18.1
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -18,42 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.18.1
21
+ version: 0.19.0
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.18.1
28
+ version: 0.19.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: decidim-core
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.18.1
35
+ version: 0.19.0
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.18.1
42
+ version: 0.19.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: kaminari
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.0'
49
+ version: '1.1'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '1.0'
56
+ version: '1.1'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: searchlight
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -74,42 +74,42 @@ dependencies:
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.18.1
77
+ version: 0.19.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.18.1
84
+ version: 0.19.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: decidim-dev
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - '='
90
90
  - !ruby/object:Gem::Version
91
- version: 0.18.1
91
+ version: 0.19.0
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.18.1
98
+ version: 0.19.0
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.18.1
105
+ version: 0.19.0
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.18.1
112
+ version: 0.19.0
113
113
  description: A budgets component for decidim's participatory spaces.
114
114
  email:
115
115
  - josepjaume@gmail.com