decidim-budgets 0.15.2 → 0.16.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0e8b92dcd82e7086bd370d09954fb7de19b44ffdbbca24e6958688bcff13ad0
4
- data.tar.gz: c44ff83b6a3f6b20669e5a0730c8243f9a3e9cd24fbe8e6eea31aa53ecf8ac9a
3
+ metadata.gz: 00de9aa46460c920a2476d4761d17d778ba872784cb2eb6744304b3e1b10b23a
4
+ data.tar.gz: 4f259a19d9d66cc25fedd9f2aed221d8319f52f00acb754e62b9a9bb51effcb8
5
5
  SHA512:
6
- metadata.gz: 4f7a8dc78b3b8610a46ddca92f86978c1763c774c6592d24df0173060daad307a5b5ec34aa1c5c60fefb3bb04c9deeecd132d4b43858b27eae7a894179d13a25
7
- data.tar.gz: 447a5a5cf13f8724ba90ff0690c9eee59c6fb50822ed62f133cc6e23af280a06235963f8465bcea7f217f194897fe77c4fade6964301e44a724106698df6bd82
6
+ metadata.gz: fe5b0befabb56026973938d3f4166139d653faafeaf1a810f2f4116ac8acd5fb3e1fad7c41831c491f448b5b1cf1562b6e130b2f37d4a879f0e49348307849ad
7
+ data.tar.gz: 0fb999a66d45c60f456abc622ffb71f3ac271df4b3074b07d07a4f35e446b9349f94b23e9988e16c76af02de15018457553e17004a7b87651b28b6adccfa38ea
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Budgets
5
+ module Metrics
6
+ # Searches for unique Users following the next objects
7
+ # - Budgets
8
+ class BudgetFollowersMetricMeasure < Decidim::MetricMeasure
9
+ def valid?
10
+ super && @resource.is_a?(Decidim::Component)
11
+ end
12
+
13
+ def calculate
14
+ budgets = Decidim::Budgets::Project.where(component: @resource)
15
+
16
+ budgets_followers = Decidim::Follow.where(followable: budgets).joins(:user)
17
+ .where("decidim_follows.created_at <= ?", end_time)
18
+ cumulative_users = budgets_followers.pluck(:decidim_user_id)
19
+
20
+ budgets_followers = budgets_followers.where("decidim_follows.created_at >= ?", start_time)
21
+ quantity_users = budgets_followers.pluck(:decidim_user_id)
22
+
23
+ {
24
+ cumulative_users: cumulative_users.uniq,
25
+ quantity_users: quantity_users.uniq
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Budgets
5
+ module Metrics
6
+ # Searches for Participants in the following actions
7
+ # - Vote a participatory budgeting project (Budgets)
8
+ class BudgetParticipantsMetricMeasure < Decidim::MetricMeasure
9
+ def valid?
10
+ super && @resource.is_a?(Decidim::Component)
11
+ end
12
+
13
+ def calculate
14
+ budgets = Decidim::Budgets::Order.where(component: @resource).joins(:component)
15
+ .finished
16
+ .where("decidim_budgets_orders.checked_out_at <= ?", end_time)
17
+
18
+ {
19
+ cumulative_users: budgets.pluck(:decidim_user_id),
20
+ quantity_users: budgets.where("decidim_budgets_orders.checked_out_at >= ?", start_time).pluck(:decidim_user_id)
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -39,7 +39,7 @@ edit_link(
39
39
  <div id="project-<%= project.id %>-budget-button">
40
40
  <%= render partial: "project_budget_button", locals: { project: project } %>
41
41
  </div>
42
- <%= render partial: "decidim/shared/follow_button", locals: { followable: project } %>
42
+ <%= render partial: "decidim/shared/follow_button", locals: { followable: project, large: false } %>
43
43
  </div>
44
44
  </div>
45
45
  <%= resource_reference(project) %>
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UseBigIntsForBudgets < ActiveRecord::Migration[5.2]
4
+ def change
5
+ change_column :decidim_budgets_projects, :budget, :bigint
6
+ end
7
+ end
@@ -31,6 +31,16 @@ module Decidim
31
31
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Budgets::Engine.root}/app/cells")
32
32
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Budgets::Engine.root}/app/views") # for partials
33
33
  end
34
+
35
+ initializer "decidim_budgets.register_metrics" do
36
+ Decidim.metrics_operation.register(:participants, :budgets) do |metric_operation|
37
+ metric_operation.manager_class = "Decidim::Budgets::Metrics::BudgetParticipantsMetricMeasure"
38
+ end
39
+
40
+ Decidim.metrics_operation.register(:followers, :budgets) do |metric_operation|
41
+ metric_operation.manager_class = "Decidim::Budgets::Metrics::BudgetFollowersMetricMeasure"
42
+ end
43
+ end
34
44
  end
35
45
  end
36
46
  end
@@ -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.15.2"
7
+ "0.16.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.15.2
4
+ version: 0.16.0
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: 2019-01-08 00:00:00.000000000 Z
13
+ date: 2019-01-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-comments
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.15.2
21
+ version: 0.16.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.15.2
28
+ version: 0.16.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.15.2
35
+ version: 0.16.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.15.2
42
+ version: 0.16.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: kaminari
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -74,42 +74,42 @@ dependencies:
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.15.2
77
+ version: 0.16.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.15.2
84
+ version: 0.16.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.15.2
91
+ version: 0.16.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.15.2
98
+ version: 0.16.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.15.2
105
+ version: 0.16.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.15.2
112
+ version: 0.16.0
113
113
  description: A budgets component for decidim's participatory spaces.
114
114
  email:
115
115
  - josepjaume@gmail.com
@@ -163,6 +163,8 @@ files:
163
163
  - app/permissions/decidim/budgets/permissions.rb
164
164
  - app/presenters/decidim/budgets/admin_log/project_presenter.rb
165
165
  - app/queries/decidim/budgets/filtered_projects.rb
166
+ - app/queries/decidim/budgets/metrics/budget_followers_metric_measure.rb
167
+ - app/queries/decidim/budgets/metrics/budget_participants_metric_measure.rb
166
168
  - app/serializers/decidim/budgets/data_portability_budgets_order_serializer.rb
167
169
  - app/services/decidim/budgets/project_search.rb
168
170
  - app/views/decidim/budgets/admin/projects/_form.html.erb
@@ -216,6 +218,7 @@ files:
216
218
  - db/migrate/20170410074214_remove_not_null_reference_budgets.rb
217
219
  - db/migrate/20170612101846_migrate_projects_category.rb
218
220
  - db/migrate/20180305133340_rename_features_to_components_at_budgets.rb
221
+ - db/migrate/20181205141115_use_big_ints_for_budgets.rb
219
222
  - lib/decidim/budgets.rb
220
223
  - lib/decidim/budgets/admin.rb
221
224
  - lib/decidim/budgets/admin_engine.rb
@@ -245,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
245
248
  version: '0'
246
249
  requirements: []
247
250
  rubyforge_project:
248
- rubygems_version: 2.7.7
251
+ rubygems_version: 2.7.6
249
252
  signing_key:
250
253
  specification_version: 4
251
254
  summary: Decidim budgets module