decidim-budgets 0.15.2 → 0.16.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: 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