decidim-sortitions 0.27.5 → 0.27.6
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/controllers/decidim/sortitions/widgets_controller.rb +11 -1
- data/app/permissions/decidim/sortitions/permissions.rb +14 -0
- data/config/locales/bg.yml +36 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/de.yml +1 -1
- data/config/locales/he-IL.yml +1 -0
- data/config/locales/pt-BR.yml +3 -1
- data/decidim-sortitions.gemspec +32 -0
- data/lib/decidim/sortitions/test/factories.rb +16 -10
- data/lib/decidim/sortitions/version.rb +1 -1
- data/lib/tasks/decidim/.keep +0 -0
- metadata +21 -19
- data/config/environment.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3f3f195e687563902d388e9cedbc8430378a6a072b5f998650d3068b76aec3e
|
4
|
+
data.tar.gz: 037313434d4200f71a148758e354b5253a4fb9b36b8d8992481c76926efa10b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86b6179b79eb8dc0d11c93d6b1ae2b9a1e35e522204acaf4963771a4dcb93fe6760e15c54d5c33cef5dbb16d85bb3d644c75341d68b4d37ea30630bdc9e2f673
|
7
|
+
data.tar.gz: '0902b6c5048f567ab5753be849b45f909df50ecc28fd7101683c6b81ab8b272911270d1b1f8626e929b7d37fb0f64b203f7c726f6fc7208d55f0762fa032b28f'
|
@@ -6,15 +6,25 @@ module Decidim
|
|
6
6
|
helper Decidim::SanitizeHelper
|
7
7
|
helper Sortitions::SortitionsHelper
|
8
8
|
|
9
|
+
def show
|
10
|
+
enforce_permission_to :embed, :sortition, sortition: model if model
|
11
|
+
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
9
15
|
private
|
10
16
|
|
11
17
|
def model
|
12
|
-
@model ||= Sortition.where(component:
|
18
|
+
@model ||= Sortition.where(component: current_component).find(params[:sortition_id])
|
13
19
|
end
|
14
20
|
|
15
21
|
def iframe_url
|
16
22
|
@iframe_url ||= sortition_widget_url(model)
|
17
23
|
end
|
24
|
+
|
25
|
+
def permission_class_chain
|
26
|
+
[Decidim::Sortitions::Permissions]
|
27
|
+
end
|
18
28
|
end
|
19
29
|
end
|
20
30
|
end
|
@@ -4,12 +4,26 @@ module Decidim
|
|
4
4
|
module Sortitions
|
5
5
|
class Permissions < Decidim::DefaultPermissions
|
6
6
|
def permissions
|
7
|
+
allow_embed_sortition?
|
7
8
|
return permission_action unless user
|
8
9
|
|
9
10
|
return Decidim::Sortitions::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
10
11
|
|
11
12
|
permission_action
|
12
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def sortition
|
18
|
+
@sortition ||= context.fetch(:sortition, nil) || context.fetch(:resource, nil)
|
19
|
+
end
|
20
|
+
|
21
|
+
# As this is a public action, we need to run this before other checks
|
22
|
+
def allow_embed_sortition?
|
23
|
+
return unless permission_action.action == :embed && permission_action.subject == :sortition && sortition
|
24
|
+
|
25
|
+
allow!
|
26
|
+
end
|
13
27
|
end
|
14
28
|
end
|
15
29
|
end
|
data/config/locales/bg.yml
CHANGED
@@ -6,3 +6,39 @@ bg:
|
|
6
6
|
additional_info: Сортиране на информация
|
7
7
|
decidim_category_id: Категории от набора от предложения, в които искате да приложите жребий
|
8
8
|
decidim_proposals_component_id: Предложенията са зададени
|
9
|
+
decidim:
|
10
|
+
sortitions:
|
11
|
+
admin:
|
12
|
+
sortitions:
|
13
|
+
create:
|
14
|
+
success: Жребият беше създаден успешно
|
15
|
+
destroy:
|
16
|
+
error: Жребият не може да се отмени.
|
17
|
+
success: Жребият беше отменен успешно
|
18
|
+
form:
|
19
|
+
title: Нов жребий за предложения
|
20
|
+
new:
|
21
|
+
confirm: Когато натиснете бутона „Напред“, системата ще запише датата и часа (с точност до секунди) и заедно с хвърлянето на зара тази информация ще се използва за генериране на избор на случаен принцип. Действието няма да може да бъде отменено — когато щракнете върху бутона, резултатът от жребия ще бъде публикуван заедно с въведените в този формуляр данни и няма да подлежи на промяна. Моля, прегледайте съдържанието внимателно
|
22
|
+
update:
|
23
|
+
success: Жребият беше актуализиран успешно
|
24
|
+
sortitions:
|
25
|
+
filters:
|
26
|
+
category_prompt: Изберете категория
|
27
|
+
search: Търсене
|
28
|
+
filters_small_view:
|
29
|
+
close_modal: Затвори прозореца
|
30
|
+
filter: Филтър
|
31
|
+
filter_by: Филтрирай по
|
32
|
+
unfold: Разгъване
|
33
|
+
results_count:
|
34
|
+
count:
|
35
|
+
one: избрано предложение
|
36
|
+
other: избрани предложения
|
37
|
+
show:
|
38
|
+
back: Назад към списъка
|
39
|
+
dice_result: "(1) Резултат от жребия"
|
40
|
+
mathematical_result: Резултат (1) x (2)
|
41
|
+
sortition_reproducibility_details: Подробности за възпроизвеждане на жребия
|
42
|
+
time_seed: "(2) Време за зареждане"
|
43
|
+
sortition:
|
44
|
+
view: Изглед
|
data/config/locales/ca.yml
CHANGED
@@ -31,7 +31,7 @@ ca:
|
|
31
31
|
sortitions:
|
32
32
|
sortition_created:
|
33
33
|
email_intro: El sorteig "%{resource_title}" s'ha afegit a "%{participatory_space_title}" que segueixes.
|
34
|
-
email_outro: Has rebut aquesta notificació perquè estàs seguint "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
|
34
|
+
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
|
35
35
|
email_subject: Nou sorteig afegit a %{participatory_space_title}
|
36
36
|
notification_title: El sorteig <a href="%{resource_path}">%{resource_title}</a> s'ha afegit a %{participatory_space_title}
|
37
37
|
sortitions:
|
data/config/locales/de.yml
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
he:
|
data/config/locales/pt-BR.yml
CHANGED
@@ -11,7 +11,7 @@ pt-BR:
|
|
11
11
|
title: Título
|
12
12
|
witnesses: Testemunhas
|
13
13
|
models:
|
14
|
-
decidim/sortitions/create_sortition_event:
|
14
|
+
decidim/sortitions/create_sortition_event: Classificação
|
15
15
|
activerecord:
|
16
16
|
models:
|
17
17
|
decidim/sortitions/sortition:
|
@@ -20,6 +20,8 @@ pt-BR:
|
|
20
20
|
decidim:
|
21
21
|
components:
|
22
22
|
sortitions:
|
23
|
+
actions:
|
24
|
+
comment: Comentário
|
23
25
|
name: Sorteios
|
24
26
|
settings:
|
25
27
|
global:
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
4
|
+
|
5
|
+
require "decidim/sortitions/version"
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.version = Decidim::Sortitions.version
|
9
|
+
s.authors = ["Juan Salvador Perez Garcia"]
|
10
|
+
s.email = ["jsperezg@gmail.com"]
|
11
|
+
s.license = "AGPL-3.0"
|
12
|
+
s.homepage = "https://github.com/decidim/decidim"
|
13
|
+
s.required_ruby_version = "~> 3.0.0"
|
14
|
+
|
15
|
+
s.name = "decidim-sortitions"
|
16
|
+
s.summary = "Decidim sortitions module"
|
17
|
+
s.description = "This module makes possible to select amont a set of proposal by sortition"
|
18
|
+
|
19
|
+
s.files = Dir.chdir(__dir__) do
|
20
|
+
`git ls-files -z`.split("\x0").select do |f|
|
21
|
+
(File.expand_path(f) == __FILE__) ||
|
22
|
+
f.start_with?(*%w(app/ config/ db/ lib/ Rakefile README.md))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
s.add_dependency "decidim-admin", Decidim::Sortitions.version
|
27
|
+
s.add_dependency "decidim-comments", Decidim::Sortitions.version
|
28
|
+
s.add_dependency "decidim-core", Decidim::Sortitions.version
|
29
|
+
s.add_dependency "decidim-proposals", Decidim::Sortitions.version
|
30
|
+
|
31
|
+
s.add_development_dependency "decidim-dev", Decidim::Sortitions.version
|
32
|
+
end
|
@@ -6,16 +6,22 @@ require "decidim/participatory_processes/test/factories"
|
|
6
6
|
|
7
7
|
FactoryBot.define do
|
8
8
|
factory :sortition_component, parent: :component do
|
9
|
-
|
9
|
+
transient do
|
10
|
+
skip_injection { false }
|
11
|
+
end
|
12
|
+
name { generate_component_name(participatory_space.organization.available_locales, :sortitions, skip_injection: skip_injection) }
|
10
13
|
manifest_name { :sortitions }
|
11
|
-
participatory_space { create(:participatory_process, :with_steps, organization: organization) }
|
14
|
+
participatory_space { create(:participatory_process, :with_steps, organization: organization, skip_injection: skip_injection) }
|
12
15
|
end
|
13
16
|
|
14
17
|
factory :sortition, class: "Decidim::Sortitions::Sortition" do
|
15
|
-
|
16
|
-
|
18
|
+
transient do
|
19
|
+
skip_injection { false }
|
20
|
+
end
|
21
|
+
component { create(:sortition_component, skip_injection: skip_injection) }
|
22
|
+
decidim_proposals_component { create(:proposal_component, organization: component.organization, skip_injection: skip_injection) }
|
17
23
|
|
18
|
-
title { generate_localized_title }
|
24
|
+
title { generate_localized_title(:sortition_title, skip_injection: skip_injection) }
|
19
25
|
author do
|
20
26
|
create(:user, :admin, organization: component.organization) if component
|
21
27
|
end
|
@@ -23,15 +29,15 @@ FactoryBot.define do
|
|
23
29
|
dice { Faker::Number.between(from: 1, to: 6).to_i }
|
24
30
|
target_items { Faker::Number.between(from: 1, to: 5).to_i }
|
25
31
|
request_timestamp { Time.now.utc }
|
26
|
-
witnesses {
|
27
|
-
additional_info {
|
28
|
-
selected_proposals { create_list(:proposal, target_items, component: decidim_proposals_component).pluck(:id) }
|
32
|
+
witnesses { generate_localized_description(:sortition_witnesses, skip_injection: skip_injection) }
|
33
|
+
additional_info { generate_localized_description(:sortition_additional_info, skip_injection: skip_injection) }
|
34
|
+
selected_proposals { create_list(:proposal, target_items, component: decidim_proposals_component, skip_injection: skip_injection).pluck(:id) }
|
29
35
|
candidate_proposals { selected_proposals }
|
30
36
|
|
31
37
|
trait :cancelled do
|
32
38
|
cancelled_on { Time.now.utc }
|
33
|
-
cancel_reason {
|
34
|
-
cancelled_by_user { create(:user, :admin, organization: component.organization) if component }
|
39
|
+
cancel_reason { generate_localized_description(:sortition_cancel_reason, skip_injection: skip_injection) }
|
40
|
+
cancelled_by_user { create(:user, :admin, organization: component.organization, skip_injection: skip_injection) if component }
|
35
41
|
end
|
36
42
|
end
|
37
43
|
end
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-sortitions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.27.
|
4
|
+
version: 0.27.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Salvador Perez Garcia
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-admin
|
@@ -16,70 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.27.
|
19
|
+
version: 0.27.6
|
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.
|
26
|
+
version: 0.27.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decidim-comments
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.27.
|
33
|
+
version: 0.27.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.27.
|
40
|
+
version: 0.27.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: decidim-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.27.
|
47
|
+
version: 0.27.6
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.27.
|
54
|
+
version: 0.27.6
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: decidim-proposals
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.27.
|
61
|
+
version: 0.27.6
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.27.
|
68
|
+
version: 0.27.6
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: decidim-dev
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.27.
|
75
|
+
version: 0.27.6
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.27.
|
82
|
+
version: 0.27.6
|
83
83
|
description: This module makes possible to select amont a set of proposal by sortition
|
84
84
|
email:
|
85
85
|
- jsperezg@gmail.com
|
@@ -144,7 +144,6 @@ files:
|
|
144
144
|
- app/views/decidim/sortitions/sortitions/index.js.erb
|
145
145
|
- app/views/decidim/sortitions/sortitions/show.html.erb
|
146
146
|
- config/assets.rb
|
147
|
-
- config/environment.rb
|
148
147
|
- config/locales/am-ET.yml
|
149
148
|
- config/locales/ar-SA.yml
|
150
149
|
- config/locales/ar.yml
|
@@ -177,6 +176,7 @@ files:
|
|
177
176
|
- config/locales/ga-IE.yml
|
178
177
|
- config/locales/gl.yml
|
179
178
|
- config/locales/gn-PY.yml
|
179
|
+
- config/locales/he-IL.yml
|
180
180
|
- config/locales/hr-HR.yml
|
181
181
|
- config/locales/hr.yml
|
182
182
|
- config/locales/hu.yml
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- db/migrate/20181017110803_make_sortitions_authors_polymorphic.rb
|
241
241
|
- db/migrate/20200320105926_index_foreign_keys_in_decidim_sortitions_sortitions.rb
|
242
242
|
- db/migrate/20200827154036_add_commentable_counter_cache_to_sortitions.rb
|
243
|
+
- decidim-sortitions.gemspec
|
243
244
|
- lib/decidim/api/sortition_type.rb
|
244
245
|
- lib/decidim/api/sortitions_type.rb
|
245
246
|
- lib/decidim/sortitions.rb
|
@@ -250,27 +251,28 @@ files:
|
|
250
251
|
- lib/decidim/sortitions/engine.rb
|
251
252
|
- lib/decidim/sortitions/test/factories.rb
|
252
253
|
- lib/decidim/sortitions/version.rb
|
254
|
+
- lib/tasks/decidim/.keep
|
253
255
|
homepage: https://github.com/decidim/decidim
|
254
256
|
licenses:
|
255
257
|
- AGPL-3.0
|
256
258
|
metadata: {}
|
257
|
-
post_install_message:
|
259
|
+
post_install_message:
|
258
260
|
rdoc_options: []
|
259
261
|
require_paths:
|
260
262
|
- lib
|
261
263
|
required_ruby_version: !ruby/object:Gem::Requirement
|
262
264
|
requirements:
|
263
|
-
- - "
|
265
|
+
- - "~>"
|
264
266
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
267
|
+
version: 3.0.0
|
266
268
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
267
269
|
requirements:
|
268
270
|
- - ">="
|
269
271
|
- !ruby/object:Gem::Version
|
270
272
|
version: '0'
|
271
273
|
requirements: []
|
272
|
-
rubygems_version: 3.
|
273
|
-
signing_key:
|
274
|
+
rubygems_version: 3.2.22
|
275
|
+
signing_key:
|
274
276
|
specification_version: 4
|
275
277
|
summary: Decidim sortitions module
|
276
278
|
test_files: []
|
data/config/environment.rb
DELETED