decidim-sortitions 0.9.0 → 0.11.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -8
- data/app/assets/config/decidim_sortitions_manifest.css +1 -1
- data/app/assets/stylesheets/decidim/sortitions/_sortitions.scss +13 -9
- data/app/assets/stylesheets/decidim/sortitions/social_share.css.scss +8 -4
- data/app/commands/decidim/sortitions/admin/create_sortition.rb +5 -3
- data/app/commands/decidim/sortitions/admin/destroy_sortition.rb +11 -5
- data/app/commands/decidim/sortitions/admin/update_sortition.rb +3 -1
- data/app/controllers/decidim/sortitions/admin/application_controller.rb +3 -3
- data/app/controllers/decidim/sortitions/admin/sortitions_controller.rb +3 -3
- data/app/controllers/decidim/sortitions/application_controller.rb +2 -2
- data/app/controllers/decidim/sortitions/sortition_widgets_controller.rb +1 -1
- data/app/forms/decidim/sortitions/admin/destroy_sortition_form.rb +1 -1
- data/app/forms/decidim/sortitions/admin/edit_sortition_form.rb +1 -1
- data/app/forms/decidim/sortitions/admin/sortition_form.rb +3 -3
- data/app/helpers/decidim/sortitions/admin/sortitions_helper.rb +3 -3
- data/app/helpers/decidim/sortitions/sortitions_helper.rb +1 -1
- data/app/models/decidim/sortitions/sortition.rb +14 -8
- data/app/presenters/decidim/sortitions/admin_log/sortition_presenter.rb +50 -0
- data/app/queries/decidim/sortitions/admin/{participatory_space_proposal_features.rb → participatory_space_proposal_components.rb} +4 -4
- data/app/queries/decidim/sortitions/admin/participatory_space_proposals.rb +2 -2
- data/app/queries/decidim/sortitions/filtered_sortitions.rb +9 -9
- data/app/services/decidim/sortitions/sortition_search.rb +1 -1
- data/app/views/decidim/sortitions/admin/sortitions/_form.html.erb +3 -3
- data/app/views/decidim/sortitions/admin/sortitions/index.html.erb +2 -2
- data/app/views/decidim/sortitions/admin/sortitions/new.html.erb +1 -1
- data/app/views/decidim/sortitions/admin/sortitions/show.html.erb +4 -4
- data/app/views/decidim/sortitions/sortition_widgets/show.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_filters.html.erb +6 -6
- data/app/views/decidim/sortitions/sortitions/_filters_small_view.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_proposal.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_results_count.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_sortition.html.erb +4 -4
- data/app/views/decidim/sortitions/sortitions/_sortition_author.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_sortition_cancel_author.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/_tags.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/index.html.erb +1 -1
- data/app/views/decidim/sortitions/sortitions/show.html.erb +12 -12
- data/config/locales/ca.yml +99 -109
- data/config/locales/en.yml +90 -94
- data/config/locales/es.yml +97 -107
- data/config/locales/eu.yml +145 -0
- data/config/locales/fi.yml +145 -0
- data/config/locales/fr.yml +145 -0
- data/config/locales/gl.yml +145 -0
- data/config/locales/it.yml +145 -0
- data/config/locales/nl.yml +145 -0
- data/config/locales/pl.yml +155 -0
- data/config/locales/pt-BR.yml +145 -0
- data/config/locales/pt.yml +145 -0
- data/config/locales/ru.yml +13 -0
- data/config/locales/sv.yml +145 -0
- data/config/locales/uk.yml +13 -0
- data/db/migrate/20180322082150_fix_sortitions_feature.rb +11 -0
- data/db/migrate/20180322085145_fix_sortitions_proposal_feature.rb +11 -0
- data/lib/decidim/sortitions.rb +1 -1
- data/lib/decidim/sortitions/component.rb +38 -0
- data/lib/decidim/sortitions/test/factories.rb +7 -7
- data/lib/decidim/sortitions/version.rb +3 -1
- metadata +46 -33
- data/LICENSE-AGPLv3.txt +0 -661
- data/app/views/decidim/sortitions/sortitions/_filters_small_view0.html.erb +0 -18
- data/lib/decidim/sortitions/feature.rb +0 -43
@@ -0,0 +1,145 @@
|
|
1
|
+
pt:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
sortition:
|
5
|
+
additional_info: Informação de classificação
|
6
|
+
decidim_category_id: Categorias do conjunto de propostas em que você deseja aplicar o sorteio
|
7
|
+
decidim_proposals_component_id: Conjunto de propostas
|
8
|
+
dice: Resultado do teste de dados (role um dado de 6 faces (ou procure outro caminho aleatório para gerar um número de 1 a 6) e entre aqui, ao contrário de testemunhar o número resultante, isso contribui para a qualidade e garantias da aleatoriedade de o resultado
|
9
|
+
target_items: Número de propostas a serem selecionadas (indica o número de propostas que você deseja selecionar sorteando o grupo de propostas que você escolheu anteriormente)
|
10
|
+
title: Título
|
11
|
+
witnesses: Testemunhas
|
12
|
+
decidim:
|
13
|
+
components:
|
14
|
+
sortitions:
|
15
|
+
name: Sortitions
|
16
|
+
settings:
|
17
|
+
global:
|
18
|
+
comments_enabled: Comentários ativados
|
19
|
+
events:
|
20
|
+
sortitions:
|
21
|
+
sortition_created:
|
22
|
+
email_intro: A classificação "%{resource_title}" foi adicionada a "%{participatory_space_title}" que você está seguindo.
|
23
|
+
email_outro: Você recebeu esta notificação porque está seguindo "%{participatory_space_title}". Você pode deixar de segui-lo no link anterior.
|
24
|
+
email_subject: Nova classificação adicionada a %{participatory_space_title}
|
25
|
+
notification_title: A classificação <a href="%{resource_path}">%{resource_title}</a> foi adicionada a %{participatory_space_title}
|
26
|
+
participatory_processes:
|
27
|
+
statistics:
|
28
|
+
sortitions_count: Sortitions
|
29
|
+
sortitions:
|
30
|
+
admin:
|
31
|
+
actions:
|
32
|
+
destroy: Cancelar a classificação
|
33
|
+
edit: Editar
|
34
|
+
new: Novo
|
35
|
+
show: Detalhes da classificação
|
36
|
+
models:
|
37
|
+
sortition:
|
38
|
+
fields:
|
39
|
+
category: Categoria
|
40
|
+
created_at: Data de criação
|
41
|
+
decidim_proposals_component: Componente de propostas
|
42
|
+
dice: Dados
|
43
|
+
reference: Referência
|
44
|
+
request_timestamp: Tempo de sorteio
|
45
|
+
seed: Semente
|
46
|
+
target_items: Itens para selecionar
|
47
|
+
title: Título
|
48
|
+
name:
|
49
|
+
one: Sorteio
|
50
|
+
other: Sortitions
|
51
|
+
sortitions:
|
52
|
+
confirm_destroy:
|
53
|
+
confirm_destroy: Tem certeza de que deseja cancelar essa classificação?
|
54
|
+
destroy: Cancelar ordenação
|
55
|
+
title: Cancelamento da classificação
|
56
|
+
create:
|
57
|
+
error: Ocorreu um erro ao criar uma nova classificação.
|
58
|
+
success: Ordenação criada com sucesso
|
59
|
+
destroy:
|
60
|
+
error: Não é possível cancelar a classificação.
|
61
|
+
success: Classificação cancelada com sucesso
|
62
|
+
edit:
|
63
|
+
title: Atualizar as informações sobre a classificação
|
64
|
+
update: Atualizar
|
65
|
+
form:
|
66
|
+
all_categories: Todas as categorias
|
67
|
+
select_proposal_component: Selecione o conjunto de propostas
|
68
|
+
title: Nova classificação para propostas
|
69
|
+
index:
|
70
|
+
title: Sortitions
|
71
|
+
new:
|
72
|
+
confirm: Ao pressionar o botão seguinte, o Decidim registrará a data e a hora (com precisão de segundos) e, junto com o lançamento de dados, essa informação será usada para gerar uma seleção aleatória. A ação será irreversível, uma vez que o botão é clicado o resultado deste sorteio será publicado, juntamente com os dados inseridos neste formulário e não podem ser modificados, por favor, verifique o conteúdo cuidadosamente
|
73
|
+
create: Crio
|
74
|
+
title: Nova classificação
|
75
|
+
show:
|
76
|
+
selected_proposals: Propostas selecionadas para sorteio
|
77
|
+
update:
|
78
|
+
error: Houve um erro ao atualizar a classificação.
|
79
|
+
success: Atualização de classificação com sucesso
|
80
|
+
admin_log:
|
81
|
+
sortition:
|
82
|
+
create: "%{user_name} criou a classificação %{resource_name} em %{space_name}"
|
83
|
+
delete: "%{user_name} cancelou a classificação %{resource_name} em %{space_name}"
|
84
|
+
update: "%{user_name} atualizou a classificação %{resource_name} em %{space_name}"
|
85
|
+
sortitions:
|
86
|
+
count:
|
87
|
+
proposals_count:
|
88
|
+
one: 1 proposta
|
89
|
+
other: "%{count} propostas"
|
90
|
+
filters:
|
91
|
+
active: Ativo
|
92
|
+
all: Todos
|
93
|
+
cancelled: Cancelado
|
94
|
+
category: Categoria
|
95
|
+
category_prompt: Selecione uma categoria
|
96
|
+
search: Pesquisa
|
97
|
+
state: Estado
|
98
|
+
filters_small_view:
|
99
|
+
close_modal: Fechar modal
|
100
|
+
filter: Filtro
|
101
|
+
filter_by: Filtrar por
|
102
|
+
unfold: Desdobrar
|
103
|
+
linked_sortitions:
|
104
|
+
selected_proposals: Propostas selecionadas
|
105
|
+
orders:
|
106
|
+
label: 'Ordenar ordenações por:'
|
107
|
+
random: Aleatória
|
108
|
+
recent: Recente
|
109
|
+
proposal:
|
110
|
+
view_proposal: Ver proposta
|
111
|
+
results_count:
|
112
|
+
count:
|
113
|
+
one: proposta selecionada
|
114
|
+
other: propostas selecionadas
|
115
|
+
show:
|
116
|
+
algorithm: Código de Algoritmo da Classificação
|
117
|
+
any_category: de todas as categorias
|
118
|
+
cancelled: Sortição cancelada
|
119
|
+
candidate_proposal_ids: Ordem de propostas de classificação e IDs
|
120
|
+
candidate_proposals_info: 'A ordenação foi realizada entre as seguintes propostas (%{category_label}), com os seguintes IDs (em negrito as propostas selecionadas) '
|
121
|
+
category: da categoria %{category}
|
122
|
+
dice_result: "(1) resultado dado"
|
123
|
+
introduction: 'Esta página contém os resultados da ordenação %{reference}. Por meio dessa classificação, %{target_items} número de resultados foram selecionados aleatoriamente e com uma distribuição de probabilidade igual ao conjunto de propostas exibidas abaixo. Juntamente com os resultados, as informações exibidas nesta página fornecem todas as informações necessárias para maximizar as garantias e reproduzir os resultados. A chave para a qualidade dessa classificação é a dupla aleatoriedade fornecida pela rolagem de dados (verificada por testemunhas) e o tempo preciso da classificação que fornece dados para um algoritmo que gera uma seleção aleatória. A semente do tempo para a classificação é tão precisa (segundos) que é impossível controlar pelos humanos, fornecendo assim uma entrada dupla "incontrolável" para garantir um resultado justo. '
|
124
|
+
mathematical_result: Resultado (1) x (2)
|
125
|
+
proposals_selected_by_sortition: Propostas selecionadas por classificação
|
126
|
+
sortition_reproducibility_details: Detalhes de reprodutibilidade de ordenação
|
127
|
+
time_seed: "(2) semente do tempo"
|
128
|
+
witnesses: Testemunhas
|
129
|
+
sortition:
|
130
|
+
selected_proposals:
|
131
|
+
one: 1 proposta selecionada
|
132
|
+
other: "%{count} propostas selecionadas"
|
133
|
+
view_sortition: Ver ordenação
|
134
|
+
sortition_author:
|
135
|
+
deleted: Usuário deletado
|
136
|
+
sortition_cancel_author:
|
137
|
+
deleted: Usuário deletado
|
138
|
+
sortitions_count:
|
139
|
+
count:
|
140
|
+
one: 1 ordenação
|
141
|
+
other: "%{count} ordenações"
|
142
|
+
pages:
|
143
|
+
home:
|
144
|
+
statistics:
|
145
|
+
sortitions_count: Sortitions
|
@@ -0,0 +1,145 @@
|
|
1
|
+
sv:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
sortition:
|
5
|
+
additional_info: Sorteringsinformation
|
6
|
+
decidim_category_id: Kategorier av den uppsättning förslag som du vill tillämpa tecknet på
|
7
|
+
decidim_proposals_component_id: Föreslagna förslag
|
8
|
+
dice: Resultat av dödsrullning (rulla en 6-sidig dö (eller leta efter ett annat slumpmässigt sätt att generera ett tal från 1 till 6) och skriv in här, i motsats till det resulterande numret, bidrar detta till kvaliteten och garantierna för slumpmässigheten av resultatet
|
9
|
+
target_items: Antal förslag som ska väljas (anger antalet förslag som du vill välja genom att dra mycket av gruppen av förslag du tidigare valt)
|
10
|
+
title: Titel
|
11
|
+
witnesses: Vittnen
|
12
|
+
decidim:
|
13
|
+
components:
|
14
|
+
sortitions:
|
15
|
+
name: Sortitions
|
16
|
+
settings:
|
17
|
+
global:
|
18
|
+
comments_enabled: Kommentarer aktiverade
|
19
|
+
events:
|
20
|
+
sortitions:
|
21
|
+
sortition_created:
|
22
|
+
email_intro: Sortering "%{resource_title}" har lagts till i "%{participatory_space_title}" som du följer.
|
23
|
+
email_outro: Du har fått den här meddelandet eftersom du följer "%{participatory_space_title}". Du kan följa det från föregående länk.
|
24
|
+
email_subject: Ny sortering läggs till %{participatory_space_title}
|
25
|
+
notification_title: Sortering <a href="%{resource_path}">%{resource_title}</a> har lagts till %{participatory_space_title}
|
26
|
+
participatory_processes:
|
27
|
+
statistics:
|
28
|
+
sortitions_count: Sortitions
|
29
|
+
sortitions:
|
30
|
+
admin:
|
31
|
+
actions:
|
32
|
+
destroy: Avbryt sorteringen
|
33
|
+
edit: Redigera
|
34
|
+
new: Ny
|
35
|
+
show: Sorteringsuppgifter
|
36
|
+
models:
|
37
|
+
sortition:
|
38
|
+
fields:
|
39
|
+
category: Kategori
|
40
|
+
created_at: Skapelsedagen
|
41
|
+
decidim_proposals_component: Förslagskomponent
|
42
|
+
dice: Tärningar
|
43
|
+
reference: Referens
|
44
|
+
request_timestamp: Rita tid
|
45
|
+
seed: Utsäde
|
46
|
+
target_items: Objekt att välja
|
47
|
+
title: Titel
|
48
|
+
name:
|
49
|
+
one: Sortition
|
50
|
+
other: Sortitions
|
51
|
+
sortitions:
|
52
|
+
confirm_destroy:
|
53
|
+
confirm_destroy: Är du säker på att du vill avbryta denna sortition?
|
54
|
+
destroy: Avbryt sortering
|
55
|
+
title: Annullering av sortitionen
|
56
|
+
create:
|
57
|
+
error: Det uppstod ett fel vid skapandet av en ny sortering.
|
58
|
+
success: Sortering framgångsrikt skapad
|
59
|
+
destroy:
|
60
|
+
error: Kan inte avbryta sorteringen.
|
61
|
+
success: Sortering framgångsrikt avbruten
|
62
|
+
edit:
|
63
|
+
title: Uppdatera informationen om sorteringen
|
64
|
+
update: Uppdatering
|
65
|
+
form:
|
66
|
+
all_categories: Alla kategorier
|
67
|
+
select_proposal_component: Välj de föreslagna förslagen
|
68
|
+
title: Ny sortering för förslag
|
69
|
+
index:
|
70
|
+
title: Sortitions
|
71
|
+
new:
|
72
|
+
confirm: Genom att trycka på nästa knapp registrerar Decidim datum och tid (med precision i sekunder) och tillsammans med tärningsrullen används denna information för att generera ett slumpmässigt urval. Åtgärden kommer att vara oåterkallelig, när knappen är klickad kommer resultatet av denna rita att publiceras, tillsammans med de uppgifter som anges i denna blankett och kan inte ändras, var god kontrollera innehållet noggrant
|
73
|
+
create: Skapa
|
74
|
+
title: Ny sortering
|
75
|
+
show:
|
76
|
+
selected_proposals: Förslag utvalda för teckning
|
77
|
+
update:
|
78
|
+
error: Det uppstod ett fel vid uppdateringen av sorteringen.
|
79
|
+
success: Sortering uppdateras
|
80
|
+
admin_log:
|
81
|
+
sortition:
|
82
|
+
create: "%{user_name} skapade %{resource_name} sorteringen i %{space_name}"
|
83
|
+
delete: "%{user_name} avbröt %{resource_name} sorteringen i %{space_name}"
|
84
|
+
update: "%{user_name} uppdaterade %{resource_name} sorteringen i %{space_name}"
|
85
|
+
sortitions:
|
86
|
+
count:
|
87
|
+
proposals_count:
|
88
|
+
one: 1 förslag
|
89
|
+
other: "%{count} förslag"
|
90
|
+
filters:
|
91
|
+
active: Aktiva
|
92
|
+
all: Allt
|
93
|
+
cancelled: Avbokad
|
94
|
+
category: Kategori
|
95
|
+
category_prompt: Välj en kategori
|
96
|
+
search: Sök
|
97
|
+
state: stat
|
98
|
+
filters_small_view:
|
99
|
+
close_modal: Stäng modal
|
100
|
+
filter: Filtrera
|
101
|
+
filter_by: Filtrera efter
|
102
|
+
unfold: Veckla ut
|
103
|
+
linked_sortitions:
|
104
|
+
selected_proposals: Utvalda förslag
|
105
|
+
orders:
|
106
|
+
label: 'Beställ sorteringar genom:'
|
107
|
+
random: Slumpmässig
|
108
|
+
recent: Nyligen
|
109
|
+
proposal:
|
110
|
+
view_proposal: Visa förslag
|
111
|
+
results_count:
|
112
|
+
count:
|
113
|
+
one: valda förslaget
|
114
|
+
other: utvalda förslag
|
115
|
+
show:
|
116
|
+
algorithm: Sortitionens algoritmkod
|
117
|
+
any_category: från alla kategorier
|
118
|
+
cancelled: Annullerad sortering
|
119
|
+
candidate_proposal_ids: Sorteringsförslag beställer och ID
|
120
|
+
candidate_proposals_info: 'Sorteringen gjordes bland följande förslag (%{category_label}), med följande ID (i fetstil de valda förslagen) '
|
121
|
+
category: från kategorin %{category}
|
122
|
+
dice_result: "(1) Tärningsresultat"
|
123
|
+
introduction: 'Den här sidan innehåller resultaten från sorteringen %{reference}. Med hjälp av denna sortering har %{target_items} antal resultat valts slumpmässigt och med en lika stor sannolikhetsfördelning från uppsättningen förslag som visas nedan. Tillsammans med resultaten, innehåller informationen som visas på denna sida all information som krävs för att maximera garantier och reproducera resultaten. Nyckeln till kvaliteten på denna sortition är den dubbla slumpen som tillhandahålls av en tärning av en tärning (verifierad av vittnen) och den exakta tiden för sorteringen som ger inmatning för en algoritm som genererar ett slumpmässigt urval. Tidsåtgången för sorteringen är så exakt (sekunder) att det är omöjligt att kontrollera av människor, vilket ger en dubbel "okontrollerad" ingång för att garantera ett rättvist resultat. '
|
124
|
+
mathematical_result: Resultat (1) x (2)
|
125
|
+
proposals_selected_by_sortition: Förslag valda genom sortering
|
126
|
+
sortition_reproducibility_details: Sorteringsreproducerbarhetsinformation
|
127
|
+
time_seed: "(2) Tidsåtgång"
|
128
|
+
witnesses: Vittnen
|
129
|
+
sortition:
|
130
|
+
selected_proposals:
|
131
|
+
one: 1 förslag valt
|
132
|
+
other: "%{count} utvalda förslag"
|
133
|
+
view_sortition: Visa sortering
|
134
|
+
sortition_author:
|
135
|
+
deleted: Ta bort användare
|
136
|
+
sortition_cancel_author:
|
137
|
+
deleted: Ta bort användare
|
138
|
+
sortitions_count:
|
139
|
+
count:
|
140
|
+
one: 1 sortering
|
141
|
+
other: "%{count} sorteringar"
|
142
|
+
pages:
|
143
|
+
home:
|
144
|
+
statistics:
|
145
|
+
sortitions_count: Sortitions
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class FixSortitionsFeature < ActiveRecord::Migration[5.1]
|
4
|
+
def up
|
5
|
+
rename_column :decidim_sortitions_sortitions, :decidim_feature_id, :decidim_component_id
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
rename_column :decidim_sortitions_sortitions, :decidim_component_id, :decidim_feature_id
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class FixSortitionsProposalFeature < ActiveRecord::Migration[5.1]
|
4
|
+
def up
|
5
|
+
rename_column :decidim_sortitions_sortitions, :decidim_proposals_feature_id, :decidim_proposals_component_id
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
rename_column :decidim_sortitions_sortitions, :decidim_proposals_component_id, :decidim_proposals_feature_id
|
10
|
+
end
|
11
|
+
end
|
data/lib/decidim/sortitions.rb
CHANGED
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Decidim.register_component(:sortitions) do |component|
|
4
|
+
component.engine = Decidim::Sortitions::Engine
|
5
|
+
component.admin_engine = Decidim::Sortitions::AdminEngine
|
6
|
+
component.icon = "decidim/sortitions/icon.svg"
|
7
|
+
# component.stylesheet = "decidim/sortitions/sortitions"
|
8
|
+
|
9
|
+
component.on(:before_destroy) do |instance|
|
10
|
+
raise StandardError, "Can't remove this component" if Decidim::Sortitions::Sortition.where(component: instance).any?
|
11
|
+
end
|
12
|
+
|
13
|
+
# These actions permissions can be configured in the admin panel
|
14
|
+
component.actions = %w()
|
15
|
+
|
16
|
+
component.settings(:global) do |settings|
|
17
|
+
settings.attribute :comments_enabled, type: :boolean, default: true
|
18
|
+
end
|
19
|
+
|
20
|
+
# Register an optional resource that can be referenced from other resources.
|
21
|
+
component.register_resource do |resource|
|
22
|
+
resource.model_class_name = "Decidim::Sortitions::Sortition"
|
23
|
+
resource.template = "decidim/sortitions/sortitions/linked_sortitions"
|
24
|
+
end
|
25
|
+
|
26
|
+
component.register_stat :sortitions_count, primary: true, priority: Decidim::StatsRegistry::HIGH_PRIORITY do |components, start_at, end_at|
|
27
|
+
Decidim::Sortitions::FilteredSortitions.for(components, start_at, end_at).count
|
28
|
+
end
|
29
|
+
|
30
|
+
component.seeds do |participatory_space|
|
31
|
+
component = Decidim::Component.create!(
|
32
|
+
name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :sortitions).i18n_name,
|
33
|
+
manifest_name: :sortitions,
|
34
|
+
published_at: Time.current,
|
35
|
+
participatory_space: participatory_space
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
@@ -5,19 +5,19 @@ require "decidim/core/test/factories"
|
|
5
5
|
require "decidim/participatory_processes/test/factories"
|
6
6
|
|
7
7
|
FactoryBot.define do
|
8
|
-
factory :
|
9
|
-
name { Decidim::
|
8
|
+
factory :sortition_component, parent: :component do
|
9
|
+
name { Decidim::Components::Namer.new(participatory_space.organization.available_locales, :sortitions).i18n_name }
|
10
10
|
manifest_name :sortitions
|
11
11
|
participatory_space { create(:participatory_process, :with_steps, organization: organization) }
|
12
12
|
end
|
13
13
|
|
14
14
|
factory :sortition, class: "Decidim::Sortitions::Sortition" do
|
15
|
-
|
16
|
-
|
15
|
+
component { create(:sortition_component) }
|
16
|
+
decidim_proposals_component { create(:proposal_component, organization: component.organization) }
|
17
17
|
|
18
18
|
title { Decidim::Faker::Localized.sentence(3) }
|
19
19
|
author do
|
20
|
-
create(:user, :admin, organization:
|
20
|
+
create(:user, :admin, organization: component.organization) if component
|
21
21
|
end
|
22
22
|
|
23
23
|
dice { Faker::Number.between(1, 6).to_i }
|
@@ -25,13 +25,13 @@ FactoryBot.define do
|
|
25
25
|
request_timestamp { Time.now.utc }
|
26
26
|
witnesses { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
|
27
27
|
additional_info { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
|
28
|
-
selected_proposals { create_list(:proposal, target_items,
|
28
|
+
selected_proposals { create_list(:proposal, target_items, component: decidim_proposals_component).pluck(:id) }
|
29
29
|
candidate_proposals { selected_proposals }
|
30
30
|
|
31
31
|
trait :cancelled do
|
32
32
|
cancelled_on { Time.now.utc }
|
33
33
|
cancel_reason { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
|
34
|
-
cancelled_by_user { create(:user, :admin, organization:
|
34
|
+
cancelled_by_user { create(:user, :admin, organization: component.organization) if component }
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|