decidim-challenges 0.6.0 → 0.7.3
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/cells/decidim/solutions/solution_g/show.erb +1 -1
- data/app/cells/decidim/solutions/solution_g_cell.rb +2 -0
- data/app/commands/decidim/challenges/survey_challenge.rb +6 -3
- data/app/forms/decidim/solutions/solutions_form.rb +1 -1
- data/app/helpers/decidim/solutions/solution_cells_helper.rb +1 -0
- data/app/models/decidim/challenges/challenge.rb +1 -1
- data/app/models/decidim/challenges/survey.rb +2 -2
- data/app/models/decidim/problems/problem.rb +1 -1
- data/app/serializers/decidim/challenges/survey_serializer.rb +4 -4
- data/app/serializers/decidim/solutions/solution_serializer.rb +20 -2
- data/app/views/decidim/challenges/admin/challenges/edit.html.erb +1 -1
- data/app/views/decidim/problems/admin/problems/edit.html.erb +1 -1
- data/app/views/decidim/problems/problems/_sidebar_data.html.erb +2 -2
- data/app/views/decidim/problems/problems/show.html.erb +0 -1
- data/app/views/decidim/sdgs/sdgs/index.html.erb +2 -2
- data/app/views/decidim/sdgs/sdgs_filter/_modal.html.erb +1 -4
- data/app/views/decidim/solutions/admin/solutions/_form.html.erb +1 -1
- data/app/views/decidim/solutions/admin/solutions/edit.html.erb +1 -1
- data/app/views/decidim/solutions/admin/solutions/show.html.erb +1 -2
- data/app/views/decidim/solutions/solutions/_sidebar_data.html.erb +2 -2
- data/app/views/decidim/solutions/solutions/show.html.erb +1 -1
- data/config/locales/ca.yml +2 -1
- data/config/locales/en.yml +2 -1
- data/config/locales/es.yml +2 -1
- data/db/migrate/20250902145427_change_user_to_author_in_challenges_surveys.rb +35 -0
- data/lib/decidim/challenges/test/factories.rb +1 -1
- data/lib/decidim/challenges/version.rb +2 -2
- metadata +7 -34
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 95e745fe3d49e802946f403938a6b11603b9110cb08f81407c8fa5810c51dfbf
|
|
4
|
+
data.tar.gz: a24fcfa528d1023b365122e17ea937da6f0e5fb807b5b30fcfad2feed0acdb43
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 24385b67ade44975efb0eb9cea8d2f976e6dbc14f66a23dc6cbb309fb932bacfdd5ca8496309032482c142c9f3e6e0a71f31b5339e3adab78d3b93879dc68771
|
|
7
|
+
data.tar.gz: 0e748da2b962e8e22c88526c6f608d6f72452c10800a6d88e4a791f91332e0896c2d6b3c719c4fbf2eb549119d11e8f41313fba6648984c51f625a0bc653229e
|
|
@@ -6,7 +6,9 @@ module Decidim
|
|
|
6
6
|
# for an given instance of a Solution
|
|
7
7
|
class SolutionGCell < Decidim::CardGCell
|
|
8
8
|
include ActiveSupport::NumberHelper
|
|
9
|
+
include Decidim::Solutions::SolutionsHelper
|
|
9
10
|
include Decidim::Sdgs::SdgsHelper
|
|
11
|
+
include Decidim::Solutions::SolutionCellsHelper
|
|
10
12
|
|
|
11
13
|
private
|
|
12
14
|
|
|
@@ -41,7 +41,7 @@ module Decidim
|
|
|
41
41
|
def answer_questionnaire
|
|
42
42
|
return unless questionnaire?
|
|
43
43
|
|
|
44
|
-
Decidim::Forms::AnswerQuestionnaire.call(survey_form,
|
|
44
|
+
Decidim::Forms::AnswerQuestionnaire.call(survey_form, challenge.questionnaire) do
|
|
45
45
|
on(:invalid) do
|
|
46
46
|
raise ActiveRecord::Rollback
|
|
47
47
|
end
|
|
@@ -51,7 +51,7 @@ module Decidim
|
|
|
51
51
|
def create_survey
|
|
52
52
|
@survey = Decidim::Challenges::Survey.create!(
|
|
53
53
|
challenge:,
|
|
54
|
-
user
|
|
54
|
+
author: user
|
|
55
55
|
)
|
|
56
56
|
end
|
|
57
57
|
|
|
@@ -60,7 +60,10 @@ module Decidim
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def can_answer_survey?
|
|
63
|
-
Decidim::Challenges::Survey.where(
|
|
63
|
+
Decidim::Challenges::Survey.where(
|
|
64
|
+
decidim_author_id: user.id,
|
|
65
|
+
decidim_challenge_id: challenge.id
|
|
66
|
+
).none?
|
|
64
67
|
end
|
|
65
68
|
end
|
|
66
69
|
end
|
|
@@ -32,7 +32,7 @@ module Decidim
|
|
|
32
32
|
self.description = translated_attribute(model.description)
|
|
33
33
|
|
|
34
34
|
self.documents = model.attachments
|
|
35
|
-
|
|
35
|
+
nil unless model.categorization
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
# Finds the Challenge from the given decidim_challenges_challenge_id
|
|
@@ -25,7 +25,7 @@ module Decidim
|
|
|
25
25
|
has_many :surveys, class_name: "Decidim::Challenges::Survey", foreign_key: "decidim_challenge_id", dependent: :destroy
|
|
26
26
|
|
|
27
27
|
VALID_STATES = [:proposal, :execution, :finished].freeze
|
|
28
|
-
enum state
|
|
28
|
+
enum :state, VALID_STATES
|
|
29
29
|
|
|
30
30
|
has_many :problems,
|
|
31
31
|
class_name: "Decidim::Problems::Problem",
|
|
@@ -7,9 +7,9 @@ module Decidim
|
|
|
7
7
|
include Decidim::DownloadYourData
|
|
8
8
|
|
|
9
9
|
belongs_to :challenge, foreign_key: "decidim_challenge_id", class_name: "Decidim::Challenges::Challenge"
|
|
10
|
-
belongs_to :
|
|
10
|
+
belongs_to :author, foreign_key: "decidim_author_id", class_name: "Decidim::User"
|
|
11
11
|
|
|
12
|
-
validates :
|
|
12
|
+
validates :decidim_author_id, uniqueness: { scope: :decidim_challenge_id }
|
|
13
13
|
|
|
14
14
|
def self.export_serializer
|
|
15
15
|
Decidim::Challenges::DownloadYourDataSurveySerializer
|
|
@@ -8,9 +8,9 @@ module Decidim
|
|
|
8
8
|
def serialize
|
|
9
9
|
{
|
|
10
10
|
id: resource.id,
|
|
11
|
-
|
|
12
|
-
name: resource.
|
|
13
|
-
email: resource.
|
|
11
|
+
author: {
|
|
12
|
+
name: resource.author.name,
|
|
13
|
+
email: resource.author.email,
|
|
14
14
|
},
|
|
15
15
|
survey_form_answers: serialize_answers,
|
|
16
16
|
}
|
|
@@ -20,7 +20,7 @@ module Decidim
|
|
|
20
20
|
|
|
21
21
|
def serialize_answers
|
|
22
22
|
questions = resource.challenge.questionnaire.questions
|
|
23
|
-
answers = resource.challenge.questionnaire.answers.where(user: resource.
|
|
23
|
+
answers = resource.challenge.questionnaire.answers.where(user: resource.author)
|
|
24
24
|
questions.each_with_index.inject({}) do |serialized, (question, idx)|
|
|
25
25
|
answer = answers.find_by(question:)
|
|
26
26
|
serialized.update("#{idx + 1}. #{translated_attribute(question.body)}" => normalize_body(answer))
|
|
@@ -11,11 +11,13 @@ module Decidim
|
|
|
11
11
|
|
|
12
12
|
def serialize
|
|
13
13
|
{
|
|
14
|
-
title_label => resource.title
|
|
14
|
+
title_label => localized(resource.title),
|
|
15
15
|
description_label => sanitized_description,
|
|
16
16
|
status_label => resource&.project_status,
|
|
17
17
|
challenge_label => translated_challenge_title,
|
|
18
18
|
url_label => resource&.project_url,
|
|
19
|
+
author_name_label => resource.author.name,
|
|
20
|
+
author_email_label => resource.author.email,
|
|
19
21
|
created_at_label => resource.created_at,
|
|
20
22
|
published_at_label => resource&.published_at,
|
|
21
23
|
}
|
|
@@ -23,6 +25,14 @@ module Decidim
|
|
|
23
25
|
|
|
24
26
|
private
|
|
25
27
|
|
|
28
|
+
def localized(value)
|
|
29
|
+
if value.is_a?(Hash)
|
|
30
|
+
value[I18n.locale.to_s] || ""
|
|
31
|
+
else
|
|
32
|
+
value.to_s
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
26
36
|
def sanitize(text)
|
|
27
37
|
ActionController::Base.helpers.strip_tags(text)
|
|
28
38
|
end
|
|
@@ -55,12 +65,20 @@ module Decidim
|
|
|
55
65
|
I18n.t("export.published_at", scope: "decidim.solutions.admin.exports").to_s
|
|
56
66
|
end
|
|
57
67
|
|
|
68
|
+
def author_name_label
|
|
69
|
+
I18n.t("export.author_name", scope: "decidim.solutions.admin.exports").to_s
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def author_email_label
|
|
73
|
+
I18n.t("export.author_email", scope: "decidim.solutions.admin.exports").to_s
|
|
74
|
+
end
|
|
75
|
+
|
|
58
76
|
def translated_challenge_title
|
|
59
77
|
resource&.challenge&.title.present? ? resource&.challenge&.title&.[](I18n.locale.to_s) : ""
|
|
60
78
|
end
|
|
61
79
|
|
|
62
80
|
def sanitized_description
|
|
63
|
-
sanitize(resource.description
|
|
81
|
+
sanitize(localized(resource.description))
|
|
64
82
|
end
|
|
65
83
|
end
|
|
66
84
|
end
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<div class="item__edit-sticky">
|
|
12
12
|
<div class="item__edit-sticky-container">
|
|
13
13
|
<%= f.submit t(".update"), class: "button button__sm button__secondary" %>
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
<% if challenge.published? %>
|
|
16
16
|
<%= link_to t("actions.unpublish", scope: "decidim.challenges.admin"), challenge_publish_path(challenge), method: :delete, class: "button button__sm button__secondary" %>
|
|
17
17
|
<% else %>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<div class="item__edit-sticky">
|
|
12
12
|
<div class="item__edit-sticky-container">
|
|
13
13
|
<%= f.submit t(".update"), class: "button button__sm button__secondary" %>
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
<% if problem.published? %>
|
|
16
16
|
<%= link_to t("actions.unpublish", scope: "decidim.problems.admin"), problem_publish_path(problem), method: :delete, class: "button button__sm button__secondary" %>
|
|
17
17
|
<% else %>
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
<% if @problem.decidim_sectorial_scope_id.present? %>
|
|
37
37
|
<div class="text-sm flex flex-col items-center gap-1">
|
|
38
38
|
<p class="uppercase text-xs"><%= t("decidim_sectorial_scope_id", scope: "activemodel.attributes.problem") %></p>
|
|
39
|
-
<p class="uppercase mb-4"><%= translated_attribute current_organization.scopes.find_by(id: @problem.decidim_sectorial_scope_id).name
|
|
39
|
+
<p class="uppercase mb-4"><%= translated_attribute current_organization.scopes.find_by(id: @problem.decidim_sectorial_scope_id).name %></p>
|
|
40
40
|
</div>
|
|
41
41
|
<% end %>
|
|
42
42
|
|
|
43
43
|
<% if @problem.decidim_technological_scope_id.present? %>
|
|
44
44
|
<div class="text-sm flex flex-col items-center gap-1">
|
|
45
45
|
<p class="uppercase text-xs"><%= t("decidim_sectorial_scope_id", scope: "activemodel.attributes.problem") %></p>
|
|
46
|
-
<p class="uppercase mb-4"><%= translated_attribute current_organization.scopes.find_by(id: @problem.decidim_technological_scope_id).name
|
|
46
|
+
<p class="uppercase mb-4"><%= translated_attribute current_organization.scopes.find_by(id: @problem.decidim_technological_scope_id).name %></p>
|
|
47
47
|
</div>
|
|
48
48
|
<% end %>
|
|
49
49
|
</div>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
idx+= 1
|
|
16
16
|
idx_str= idx.to_s.rjust(2, "0") %>
|
|
17
17
|
<div class="sdg-cell" data-value="<%= sdg_code %>">
|
|
18
|
-
<%= image_pack_tag "media/images/ods-#{idx_str}.svg", alt: "Logo SDG #{idx_str}"%>
|
|
18
|
+
<%= image_pack_tag "media/images/ods-#{idx_str}.svg", alt: "Logo SDG #{idx_str}" %>
|
|
19
19
|
<div class="text">
|
|
20
20
|
<p><%= "#{idx_str}. #{t_sdg(sdg_code)}" %></p>
|
|
21
21
|
</div>
|
|
@@ -28,8 +28,5 @@
|
|
|
28
28
|
<a class="button button__sm md:button__lg button__secondary" data-close="" role="button"><%= t(".close") %></a>
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
31
|
-
|
|
32
31
|
</div>
|
|
33
32
|
</div>
|
|
34
|
-
|
|
35
|
-
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
<%= form.hidden_field :decidim_challenges_challenge_id, value: @form.try(:challenge) ? @form.try(:challenge).id : '' %>
|
|
57
57
|
<% else %>
|
|
58
58
|
<%= form.hidden_field :decidim_problems_problem_id, value: @form.try(:problem) ? @form.try(:problem).id : '' %>
|
|
59
|
-
<div class="card-section"
|
|
59
|
+
<div class="card-section">
|
|
60
60
|
<div class="row column">
|
|
61
61
|
<%= form.select :decidim_challenges_challenge_id,
|
|
62
62
|
@form.select_challenge_collection,
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<div class="item__edit-sticky">
|
|
12
12
|
<div class="item__edit-sticky-container">
|
|
13
13
|
<%= f.submit t(".update"), class: "button button__sm button__secondary" %>
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
<% if solution.published? %>
|
|
16
16
|
<%= link_to t("actions.unpublish", scope: "decidim.solutions.admin"), solution_publish_path(solution), method: :delete, class: "button button__sm button__secondary" %>
|
|
17
17
|
<% else %>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<div class="row column">
|
|
43
43
|
<span class="component__show-description"><%= t ".description" %></span>
|
|
44
44
|
<p class="component__show-text">
|
|
45
|
-
<%= decidim_sanitize_editor_admin translated_attribute solution.description
|
|
45
|
+
<%= decidim_sanitize_editor_admin translated_attribute solution.description %>
|
|
46
46
|
</p>
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
@@ -111,4 +111,3 @@
|
|
|
111
111
|
<% end %>
|
|
112
112
|
</div>
|
|
113
113
|
</div>
|
|
114
|
-
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<p class="uppercase mb-4"><%= t(@solution.challenge.state, scope: "decidim.challenges.states") %></p>
|
|
15
15
|
<% else %>
|
|
16
16
|
<p class="uppercase mb-4"><%= t(@solution.project_status, scope: "decidim.solutions.solutions.form.project_statuses") %></p>
|
|
17
|
-
<% end %>
|
|
17
|
+
<% end %>
|
|
18
18
|
</div>
|
|
19
19
|
<% end %>
|
|
20
20
|
</div>
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
</div>
|
|
78
78
|
<% end %>
|
|
79
79
|
</div>
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
<% if has_problem? %>
|
|
82
82
|
<% if @solution.problem.challenge.sdg_code %>
|
|
83
83
|
<div class="text-sm flex flex-col items-center gap-1">
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<% if has_problem? %>
|
|
15
15
|
<h3 class="h4">
|
|
16
16
|
<span class="title"><%= t("problem", scope: "activemodel.attributes.solution") %></span>:
|
|
17
|
-
<%= link_to translated_attribute(@solution.problem.title), Decidim::ResourceLocatorPresenter.new(@solution.problem).path %><br
|
|
17
|
+
<%= link_to translated_attribute(@solution.problem.title), Decidim::ResourceLocatorPresenter.new(@solution.problem).path %><br>
|
|
18
18
|
<span class="title"><%= t("challenge", scope: "activemodel.attributes.problem") %></span>:
|
|
19
19
|
<%= link_to translated_attribute(@solution.problem.challenge.title), Decidim::ResourceLocatorPresenter.new(@solution.problem.challenge).path %></strong>
|
|
20
20
|
</h3>
|
data/config/locales/ca.yml
CHANGED
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class ChangeUserToAuthorInChallengesSurveys < ActiveRecord::Migration[6.1]
|
|
4
|
+
class ChallengeSurvey < ApplicationRecord
|
|
5
|
+
self.table_name = "decidim_challenges_surveys"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def up
|
|
9
|
+
rename_column :decidim_challenges_surveys, :decidim_user_id, :decidim_author_id
|
|
10
|
+
|
|
11
|
+
remove_index :decidim_challenges_surveys, name: "decidim_challenges_surveys_user_challenge_unique", if_exists: true
|
|
12
|
+
remove_index :decidim_challenges_surveys, name: "index_decidim_challenges_surveys_on_decidim_user_id", if_exists: true
|
|
13
|
+
|
|
14
|
+
add_index :decidim_challenges_surveys,
|
|
15
|
+
[:decidim_author_id, :decidim_challenge_id],
|
|
16
|
+
unique: true,
|
|
17
|
+
name: "decidim_challenges_surveys_author_challenge_unique"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def down
|
|
21
|
+
remove_index :decidim_challenges_surveys, name: "decidim_challenges_surveys_author", if_exists: true
|
|
22
|
+
remove_index :decidim_challenges_surveys, name: "decidim_challenges_surveys_author_challenge_unique", if_exists: true
|
|
23
|
+
|
|
24
|
+
rename_column :decidim_challenges_surveys, :decidim_author_id, :decidim_user_id
|
|
25
|
+
|
|
26
|
+
add_index :decidim_challenges_surveys,
|
|
27
|
+
[:decidim_user_id, :decidim_challenge_id],
|
|
28
|
+
unique: true,
|
|
29
|
+
name: "decidim_challenges_surveys_user_challenge_unique"
|
|
30
|
+
|
|
31
|
+
add_index :decidim_challenges_surveys,
|
|
32
|
+
:decidim_user_id,
|
|
33
|
+
name: "index_decidim_challenges_surveys_on_decidim_user_id"
|
|
34
|
+
end
|
|
35
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decidim-challenges
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oliver Valls
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: decidim-core
|
|
@@ -16,42 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
19
|
+
version: '0.29'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: decidim
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.27'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.27'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: decidim-dev
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.27'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.27'
|
|
26
|
+
version: '0.29'
|
|
55
27
|
description: Articulates the collective action of diverse actors in order to address
|
|
56
28
|
shared challenges and the problems that derive from them across the territory.
|
|
57
29
|
email:
|
|
@@ -268,6 +240,7 @@ files:
|
|
|
268
240
|
- db/migrate/20210427091033_remove_require_null_in_problems_for_solutions.rb
|
|
269
241
|
- db/migrate/20220407110503_add_card_image_to_challenges.rb
|
|
270
242
|
- db/migrate/20240919094714_add_public_fields_to_solutions.rb
|
|
243
|
+
- db/migrate/20250902145427_change_user_to_author_in_challenges_surveys.rb
|
|
271
244
|
- lib/decidim/challenges.rb
|
|
272
245
|
- lib/decidim/challenges/admin.rb
|
|
273
246
|
- lib/decidim/challenges/admin_engine.rb
|
|
@@ -303,14 +276,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
303
276
|
requirements:
|
|
304
277
|
- - ">="
|
|
305
278
|
- !ruby/object:Gem::Version
|
|
306
|
-
version: 3.
|
|
279
|
+
version: 3.2.9
|
|
307
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
308
281
|
requirements:
|
|
309
282
|
- - ">="
|
|
310
283
|
- !ruby/object:Gem::Version
|
|
311
284
|
version: '0'
|
|
312
285
|
requirements: []
|
|
313
|
-
rubygems_version: 3.
|
|
286
|
+
rubygems_version: 3.4.19
|
|
314
287
|
signing_key:
|
|
315
288
|
specification_version: 4
|
|
316
289
|
summary: A decidim challenges module
|