decidim-budgets 0.31.3 → 0.31.4

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: 1c0400f608da93dc472762ec9a75290837b46bf44fbcd2f4856787d4b27e4c79
4
- data.tar.gz: 89f34786eab62efcea5db714667a7f47811029bf5aacff568d43f2625b9a5b88
3
+ metadata.gz: 59a86b3d6e348fdb4112893ef2751ffca0b8feed0ad02ad1990fdd21634f855f
4
+ data.tar.gz: 5918d35aa1abdfd998c18ef8102eea7949cb63515521851a3923c889da98b8c2
5
5
  SHA512:
6
- metadata.gz: 045dc53a192b1f198c3a10f2b35ab25ae4afff0646c2585bfd6e86cda813dd99508ad5bfe2e0fd9f898487f5bb8cd8042db0cf090e6bb499b5290b92166f013c
7
- data.tar.gz: f10dcc3744f0a984f01d4aae0bbca0e83679b801ffa0fbfa4c09f3157cd7ee0ec8f8418808898f6515acb5e3bfbe84d7cafe197ebf6f1548324047d587cce87c
6
+ metadata.gz: 689f8302e2524750845f1e20b4db5c228f3f518ee05cd60db89669fc61c3f372d92810a3aab63155515ee331ec912c0741b08e9580841a19599e62f148e5dc66
7
+ data.tar.gz: a03c55f1a71db5107e6c72773cd74045c21d9355cecbec5d907dc49fe711ac2cbe6425d827225048a41033fd5feadc5fb7d5845e728238dc6abff0b26ec98541
@@ -70,11 +70,11 @@ module Decidim
70
70
  def proposals
71
71
  proposals = Decidim::Proposals::Proposal.where(component: origin_component).published.not_hidden.not_withdrawn
72
72
 
73
- if form.internal_states.present?
74
- if form.internal_states.include?("not_answered")
75
- proposals.not_answered.or(proposals.where(id: proposals.only_status(form.internal_states).pluck(:id)))
73
+ if form.states.present?
74
+ if form.states.include?("not_answered")
75
+ proposals.not_answered.or(proposals.where(id: proposals.only_status(form.states).pluck(:id)))
76
76
  else
77
- proposals.only_status(form.internal_states)
77
+ proposals.only_status(form.states)
78
78
  end
79
79
  else
80
80
  proposals
@@ -29,6 +29,21 @@ module Decidim
29
29
  end
30
30
  end
31
31
 
32
+ def component_states
33
+ enforce_permission_to :import_proposals, :projects
34
+ component = current_participatory_space.components.find_by(id: params[:origin_id])
35
+
36
+ if component
37
+ states = Decidim::Proposals::ProposalState
38
+ .where(component:)
39
+ .map { |s| { token: s.token, title: translated_attribute(s.title) } }
40
+ states << { token: "not_answered", title: I18n.t("decidim.proposals.answers.not_answered") }
41
+ render json: states
42
+ else
43
+ render json: []
44
+ end
45
+ end
46
+
32
47
  private
33
48
 
34
49
  def budget
@@ -10,11 +10,15 @@ module Decidim
10
10
 
11
11
  attribute :origin_component_id, Integer
12
12
  attribute :default_budget, Integer
13
- attribute :internal_states, Array[String]
13
+ attribute :states, Array[String]
14
14
 
15
15
  validates :origin_component_id, :origin_component, :current_component, presence: true
16
16
  validates :default_budget, presence: true, numericality: { greater_than: 0 }
17
17
 
18
+ def states
19
+ super.compact_blank
20
+ end
21
+
18
22
  def origin_component
19
23
  @origin_component ||= origin_components.find_by(id: origin_component_id)
20
24
  end
@@ -32,17 +36,6 @@ module Decidim
32
36
  def budget
33
37
  @budget ||= context[:budget]
34
38
  end
35
-
36
- def available_states(component_id = nil)
37
- scope = Decidim::Proposals::ProposalState
38
- scope = scope.where(component: Decidim::Component.find(component_id)) if component_id.present?
39
-
40
- states = scope.pluck(:token).uniq.map do |token|
41
- OpenStruct.new(token: token, title: token.humanize)
42
- end
43
-
44
- states + [OpenStruct.new(token: "not_answered", title: I18n.t("decidim.proposals.answers.not_answered"))]
45
- end
46
39
  end
47
40
  end
48
41
  end
@@ -1,4 +1,5 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
+ <%= append_javascript_pack_tag "decidim_proposals_admin" %>
2
3
 
3
4
  <div class="item_show__header">
4
5
  <h1 class="item_show__header-title">
@@ -13,24 +14,19 @@
13
14
  <div class="form__wrapper">
14
15
  <div class="card">
15
16
  <div class="card-divider"></div>
16
- <div class="card-section">
17
+ <div class="card-section" data-controller="import-proposals" data-import-proposals-states-url-value="<%= component_states_proposals_import_path %>">
17
18
  <div class="row column">
18
- <%= f.select :origin_component_id, @form.origin_components_collection, prompt: t(".select_component"), label: t(".origin_component_id") %>
19
+ <%= f.select :origin_component_id, @form.origin_components_collection, { prompt: t(".select_component") }, { label: t(".origin_component_id"), data: { import_proposals_target: "select", action: "change->import-proposals#onSelectChange" } } %>
19
20
  </div>
20
21
  <div class="row column">
21
22
  <%= f.number_field :default_budget, label: t(".default_budget") %>
22
23
  </div>
23
- <% if @form.available_states.any? %>
24
24
  <label class="ml-4"><%= t(".proposal_states") %></label>
25
+ <div id="states-container"
26
+ data-import-proposals-target="container"
27
+ data-import-proposals-selected-states-value="<%= @form.states.to_json %>"></div>
25
28
  <span class="help-text ml-4"><%= t(".proposal_states_help") %></span>
26
- <div class="row column">
27
- <%= f.collection_check_boxes :internal_states, @form.available_states, :token, ->(a) { translated_attribute(a.title) } do |builder| %>
28
- <div>
29
- <%= builder.label { builder.check_box + builder.text } %>
30
- </div>
31
- <% end %>
32
- </div>
33
- <% end %>
29
+
34
30
  </div>
35
31
  </div>
36
32
  </div>
@@ -45,6 +45,10 @@ module Decidim
45
45
  resources :attachments, except: [:show]
46
46
  end
47
47
 
48
+ resource :proposals_import, only: [:new, :create] do
49
+ get :component_states
50
+ end
51
+
48
52
  root to: "budgets#index"
49
53
  end
50
54
 
@@ -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.31.3"
7
+ "0.31.4"
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.31.3
4
+ version: 0.31.4
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: 2026-03-26 00:00:00.000000000 Z
13
+ date: 2026-04-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-comments
@@ -18,70 +18,70 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.31.3
21
+ version: 0.31.4
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.31.3
28
+ version: 0.31.4
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.31.3
35
+ version: 0.31.4
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.31.3
42
+ version: 0.31.4
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: decidim-admin
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '='
48
48
  - !ruby/object:Gem::Version
49
- version: 0.31.3
49
+ version: 0.31.4
50
50
  type: :development
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: 0.31.3
56
+ version: 0.31.4
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: decidim-dev
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - '='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.31.3
63
+ version: 0.31.4
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 0.31.3
70
+ version: 0.31.4
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: decidim-proposals
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.31.3
77
+ version: 0.31.4
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.31.3
84
+ version: 0.31.4
85
85
  description: A budgets component for decidim's participatory spaces.
86
86
  email:
87
87
  - josepjaume@gmail.com