decidim-assemblies 0.20.1 → 0.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/assemblies/assembly_m_cell.rb +1 -5
- data/app/commands/decidim/assemblies/admin/create_assemblies_type.rb +45 -0
- data/app/commands/decidim/assemblies/admin/create_assembly.rb +1 -2
- data/app/commands/decidim/assemblies/admin/destroy_assemblies_type.rb +45 -0
- data/app/commands/decidim/assemblies/admin/update_assemblies_type.rb +46 -0
- data/app/commands/decidim/assemblies/admin/update_assembly.rb +1 -2
- data/app/controllers/concerns/decidim/assemblies/admin/filterable.rb +30 -0
- data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +8 -23
- data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +107 -0
- data/app/controllers/decidim/assemblies/assemblies_controller.rb +1 -1
- data/app/forms/decidim/assemblies/admin/assemblies_type_form.rb +17 -0
- data/app/forms/decidim/assemblies/admin/assembly_form.rb +19 -10
- data/app/helpers/decidim/assemblies/admin/assemblies_helper.rb +6 -0
- data/app/helpers/decidim/assemblies/filter_assemblies_helper.rb +10 -7
- data/app/models/decidim/assemblies_type.rb +24 -0
- data/app/models/decidim/assembly.rb +12 -2
- data/app/models/decidim/assembly_user_role.rb +1 -1
- data/app/permissions/decidim/assemblies/permissions.rb +25 -0
- data/app/presenters/decidim/assemblies/admin_log/assemblies_type_presenter.rb +43 -0
- data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +1 -2
- data/app/presenters/decidim/log/value_types/assembly_type_presenter.rb +29 -0
- data/app/queries/decidim/assemblies/filtered_assemblies.rb +2 -2
- data/app/queries/decidim/assemblies/parent_assemblies_for_select.rb +23 -0
- data/app/services/decidim/assemblies/assembly_search.rb +3 -3
- data/app/types/decidim/assemblies/assemblies_type_type.rb +17 -0
- data/app/types/decidim/assemblies/assembly_member_type.rb +29 -0
- data/app/types/decidim/assemblies/assembly_type.rb +67 -0
- data/app/views/decidim/assemblies/_filter_by_type.html.erb +14 -12
- data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +2 -6
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +5 -2
- data/app/views/decidim/assemblies/admin/assemblies_types/_form.html.erb +11 -0
- data/app/views/decidim/assemblies/admin/assemblies_types/edit.html.erb +6 -0
- data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +43 -0
- data/app/views/decidim/assemblies/admin/assemblies_types/new.html.erb +7 -0
- data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +30 -30
- data/app/views/decidim/assemblies/assemblies/show.html.erb +1 -5
- data/app/views/layouts/decidim/admin/assemblies.html.erb +17 -0
- data/app/views/layouts/decidim/admin/assembly.html.erb +2 -2
- data/config/locales/ar.yml +24 -0
- data/config/locales/ca.yml +32 -0
- data/config/locales/cs.yml +33 -1
- data/config/locales/de.yml +11 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en.yml +32 -0
- data/config/locales/es-MX.yml +32 -0
- data/config/locales/es-PY.yml +32 -0
- data/config/locales/es.yml +32 -0
- data/config/locales/eu.yml +11 -0
- data/config/locales/fi-plain.yml +32 -0
- data/config/locales/fi.yml +32 -0
- data/config/locales/fr.yml +11 -0
- data/config/locales/gl.yml +11 -0
- data/config/locales/hu.yml +32 -0
- data/config/locales/id-ID.yml +11 -0
- data/config/locales/is-IS.yml +11 -0
- data/config/locales/it.yml +20 -0
- data/config/locales/nl.yml +20 -0
- data/config/locales/no.yml +31 -0
- data/config/locales/pl.yml +11 -0
- data/config/locales/pt-BR.yml +11 -0
- data/config/locales/pt.yml +11 -0
- data/config/locales/ru.yml +11 -0
- data/config/locales/sv.yml +11 -0
- data/config/locales/tr-TR.yml +11 -0
- data/config/locales/uk.yml +11 -0
- data/db/migrate/20200108113855_create_decidim_assembly_types.rb +19 -0
- data/db/migrate/20200108123050_migrate_decidim_assembly_types.rb +83 -0
- data/lib/decidim/assemblies/admin_engine.rb +2 -0
- data/lib/decidim/assemblies/engine.rb +7 -0
- data/lib/decidim/assemblies/participatory_space.rb +3 -2
- data/lib/decidim/assemblies/query_extensions.rb +40 -0
- data/lib/decidim/assemblies/test/factories.rb +24 -2
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +29 -9
- data/app/views/decidim/assemblies/assembly_widgets/show.html.erb +0 -11
data/config/locales/no.yml
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
created_by_other: Opprettet av annet
|
17
17
|
creation_date: Dato opprettet
|
18
18
|
decidim_area_id: Område
|
19
|
+
decidim_assemblies_type_id: Forsamlingstype
|
19
20
|
decidim_scope_id: Omfang
|
20
21
|
description: Beskrivelse
|
21
22
|
developer_group: Promotør gruppe
|
@@ -78,6 +79,7 @@
|
|
78
79
|
admin:
|
79
80
|
actions:
|
80
81
|
new_assembly: Ny forsamling
|
82
|
+
new_assembly_type: Ny forsamlingstype
|
81
83
|
assemblies:
|
82
84
|
create:
|
83
85
|
error: Det oppstod et problem med å lage en ny forsamling.
|
@@ -99,6 +101,18 @@
|
|
99
101
|
create:
|
100
102
|
error: Det oppstod et problem med å publisere denne forsamlingen.
|
101
103
|
success: Forsamlingen ble duplisert.
|
104
|
+
assemblies_types:
|
105
|
+
create:
|
106
|
+
error: Det oppstod et problem med å lage en ny forsamlingstype.
|
107
|
+
success: Forsamlingtypen ble opprettet.
|
108
|
+
destroy:
|
109
|
+
success: Forsamlingstypen ble slettet.
|
110
|
+
new:
|
111
|
+
create: Opprett
|
112
|
+
title: Ny forsamlingstype
|
113
|
+
update:
|
114
|
+
error: Det oppsto et problem med å oppdatere denne forsamlingstypen.
|
115
|
+
success: Forsamlingstypen ble oppdatert.
|
102
116
|
assembly_copies:
|
103
117
|
new:
|
104
118
|
copy: Kopier
|
@@ -158,7 +172,12 @@
|
|
158
172
|
info: Info
|
159
173
|
moderations: Moderering
|
160
174
|
private_users: Private brukere
|
175
|
+
assemblies_types: Forsamlingstyper
|
161
176
|
models:
|
177
|
+
assemblies_types:
|
178
|
+
fields:
|
179
|
+
created_at: Opprettet på
|
180
|
+
title: Tittel
|
162
181
|
assembly:
|
163
182
|
fields:
|
164
183
|
created_at: Opprettet på
|
@@ -191,6 +210,7 @@
|
|
191
210
|
moderator: Moderator
|
192
211
|
titles:
|
193
212
|
assemblies: Forsamlinger
|
213
|
+
assemblies_types: Forsamlingstyper
|
194
214
|
admin_log:
|
195
215
|
assembly:
|
196
216
|
create: "%{user_name} opprettet %{resource_name} forsamlingen"
|
@@ -201,6 +221,12 @@
|
|
201
221
|
create: "%{user_name} opprettet %{resource_name} medlemmet i %{space_name} samlingen"
|
202
222
|
delete: "%{user_name} fjernet %{resource_name} medlemmet fra %{space_name} forsamlingen"
|
203
223
|
update: "%{user_name} oppdaterte %{resource_name} medlemmet i %{space_name} samlingen"
|
224
|
+
assembly_type:
|
225
|
+
create: "%{user_name} opprettet %{resource_name} forsamlingstypen"
|
226
|
+
delete: "%{user_name} fjernet %{resource_name} medlemmet fra %{space_name} forsamlingstypen"
|
227
|
+
publish: "%{user_name} publiserte %{resource_name} forsamlingstypen"
|
228
|
+
unpublish: "%{user_name} avpubliserte %{resource_name} forsamlingstypen"
|
229
|
+
update: "%{user_name} oppdaterte %{resource_name} forsamlingstypen"
|
204
230
|
assembly_user_role:
|
205
231
|
create: "%{user_name} inviterte %{resource_name} til %{space_name} forsamlingen"
|
206
232
|
delete: "%{user_name} fjernet deltakeren %{resource_name} fra %{space_name} forsamlingen"
|
@@ -224,6 +250,9 @@
|
|
224
250
|
social_handlers: Sosial
|
225
251
|
title: Generell Informasjon
|
226
252
|
visbility: Synlighet
|
253
|
+
assemblies_types:
|
254
|
+
form:
|
255
|
+
title: Tittel
|
227
256
|
assembly_copies:
|
228
257
|
form:
|
229
258
|
slug_help: 'URL slugs brukes til å generere nettadressene som peker på denne forsamlingen. Godtar bare bokstaver, tall og bindestreker, og må starte med en bokstav. Eksempel: %{url}'
|
@@ -342,6 +371,8 @@
|
|
342
371
|
value_types:
|
343
372
|
assembly_presenter:
|
344
373
|
not_found: 'Forsamlingen ble ikke funnet i databasen (ID: %{id})'
|
374
|
+
assembly_type_presenter:
|
375
|
+
not_found: 'Forsamlingstypen ble ikke funnet i databasen (ID: %{id})'
|
345
376
|
menu:
|
346
377
|
assemblies: Forsamlinger
|
347
378
|
metrics:
|
data/config/locales/pl.yml
CHANGED
@@ -16,6 +16,7 @@ pl:
|
|
16
16
|
created_by_other: Stworzony przez inne
|
17
17
|
creation_date: Data utworzenia
|
18
18
|
decidim_area_id: Powierzchnia
|
19
|
+
decidim_assemblies_type_id: Typ zespołu
|
19
20
|
decidim_scope_id: Zakres
|
20
21
|
description: Opis
|
21
22
|
developer_group: Grupa promotorów
|
@@ -105,6 +106,9 @@ pl:
|
|
105
106
|
create:
|
106
107
|
error: Podczas duplikowania tego zestawu wystąpił błąd.
|
107
108
|
success: Złożenie zostało powielone.
|
109
|
+
assemblies_types:
|
110
|
+
new:
|
111
|
+
create: Utwórz
|
108
112
|
assembly_copies:
|
109
113
|
new:
|
110
114
|
copy: Kopiuj
|
@@ -165,6 +169,10 @@ pl:
|
|
165
169
|
moderations: Modernizacje
|
166
170
|
private_users: Prywatni użytkownicy
|
167
171
|
models:
|
172
|
+
assemblies_types:
|
173
|
+
fields:
|
174
|
+
created_at: Utworzono w
|
175
|
+
title: Tytuł
|
168
176
|
assembly:
|
169
177
|
fields:
|
170
178
|
created_at: Utworzono w
|
@@ -230,6 +238,9 @@ pl:
|
|
230
238
|
social_handlers: Społeczny
|
231
239
|
title: Informacje ogólne
|
232
240
|
visbility: Widoczność
|
241
|
+
assemblies_types:
|
242
|
+
form:
|
243
|
+
title: Tytuł
|
233
244
|
assembly_copies:
|
234
245
|
form:
|
235
246
|
slug_help: 'Ślimaki URL służą do generowania adresów URL wskazujących ten zespół. Akceptuje tylko litery, cyfry i myślniki i musi zaczynać się od litery. Przykład: %{url}'
|
data/config/locales/pt-BR.yml
CHANGED
@@ -16,6 +16,7 @@ pt-BR:
|
|
16
16
|
created_by_other: Criado por outro
|
17
17
|
creation_date: Data Criada
|
18
18
|
decidim_area_id: Área
|
19
|
+
decidim_assemblies_type_id: Tipo de assembleia
|
19
20
|
decidim_scope_id: Âmbito
|
20
21
|
description: Descrição
|
21
22
|
developer_group: Grupo promotor
|
@@ -99,6 +100,9 @@ pt-BR:
|
|
99
100
|
create:
|
100
101
|
error: Ocorreu um erro ao duplicar esta assembleia.
|
101
102
|
success: Assembleia duplicada com sucesso.
|
103
|
+
assemblies_types:
|
104
|
+
new:
|
105
|
+
create: Criar
|
102
106
|
assembly_copies:
|
103
107
|
new:
|
104
108
|
copy: Cópia
|
@@ -159,6 +163,10 @@ pt-BR:
|
|
159
163
|
moderations: Moderação
|
160
164
|
private_users: Usuários particulares
|
161
165
|
models:
|
166
|
+
assemblies_types:
|
167
|
+
fields:
|
168
|
+
created_at: Criado em
|
169
|
+
title: Título
|
162
170
|
assembly:
|
163
171
|
fields:
|
164
172
|
created_at: Criado em
|
@@ -224,6 +232,9 @@ pt-BR:
|
|
224
232
|
social_handlers: Social
|
225
233
|
title: Informação geral
|
226
234
|
visbility: Visibilidade
|
235
|
+
assemblies_types:
|
236
|
+
form:
|
237
|
+
title: Título
|
227
238
|
assembly_copies:
|
228
239
|
form:
|
229
240
|
slug_help: 'Os slugs de URL são usados para gerar os URLs que apontam para essa assembleia. Apenas aceita letras, números e traços, e deve começar com uma carta. Exemplo: %{url}'
|
data/config/locales/pt.yml
CHANGED
@@ -16,6 +16,7 @@ pt:
|
|
16
16
|
created_by_other: Criado por outro
|
17
17
|
creation_date: Data Criada
|
18
18
|
decidim_area_id: Área
|
19
|
+
decidim_assemblies_type_id: Tipo de montagem
|
19
20
|
decidim_scope_id: Escopo
|
20
21
|
description: Descrição
|
21
22
|
developer_group: Grupo promotor
|
@@ -99,6 +100,9 @@ pt:
|
|
99
100
|
create:
|
100
101
|
error: Ocorreu um erro ao duplicar este assembly.
|
101
102
|
success: Assembléia duplicada com sucesso.
|
103
|
+
assemblies_types:
|
104
|
+
new:
|
105
|
+
create: Criar
|
102
106
|
assembly_copies:
|
103
107
|
new:
|
104
108
|
copy: cópia de
|
@@ -159,6 +163,10 @@ pt:
|
|
159
163
|
moderations: Moderação
|
160
164
|
private_users: Usuários particulares
|
161
165
|
models:
|
166
|
+
assemblies_types:
|
167
|
+
fields:
|
168
|
+
created_at: Criado em
|
169
|
+
title: Título
|
162
170
|
assembly:
|
163
171
|
fields:
|
164
172
|
created_at: Criado em
|
@@ -224,6 +232,9 @@ pt:
|
|
224
232
|
social_handlers: Social
|
225
233
|
title: Informação geral
|
226
234
|
visbility: Visibilidade
|
235
|
+
assemblies_types:
|
236
|
+
form:
|
237
|
+
title: Título
|
227
238
|
assembly_copies:
|
228
239
|
form:
|
229
240
|
slug_help: 'Os slugs de URL são usados para gerar os URLs que apontam para essa assembléia. Apenas aceita letras, números e traços, e deve começar com uma carta. Exemplo: %{url}'
|
data/config/locales/ru.yml
CHANGED
@@ -16,6 +16,7 @@ ru:
|
|
16
16
|
created_by_other: Создано кем-то еще
|
17
17
|
creation_date: Дата создания
|
18
18
|
decidim_area_id: Участок
|
19
|
+
decidim_assemblies_type_id: Вид собрания
|
19
20
|
decidim_scope_id: Охват
|
20
21
|
description: Описание
|
21
22
|
developer_group: Рабочая группа по продвижению
|
@@ -104,6 +105,9 @@ ru:
|
|
104
105
|
create:
|
105
106
|
error: При попытке создать копию этого собрания произошла ошибка.
|
106
107
|
success: Успешно создана копия собрания.
|
108
|
+
assemblies_types:
|
109
|
+
new:
|
110
|
+
create: Добавить
|
107
111
|
assembly_copies:
|
108
112
|
new:
|
109
113
|
copy: Копировать
|
@@ -164,6 +168,10 @@ ru:
|
|
164
168
|
moderations: Действия по модерации
|
165
169
|
private_users: Частные участники
|
166
170
|
models:
|
171
|
+
assemblies_types:
|
172
|
+
fields:
|
173
|
+
created_at: 'Добавлено:'
|
174
|
+
title: Название
|
167
175
|
assembly:
|
168
176
|
fields:
|
169
177
|
created_at: 'Добавлено:'
|
@@ -222,6 +230,9 @@ ru:
|
|
222
230
|
slug_help: 'Сокращенные веб-адреса используются для создания ссылок на это собрание. В них допустимы только буквы, цифры и тире, и они должны начинаться с буквы. Пример: %{url}'
|
223
231
|
social_handlers: Социальные сети
|
224
232
|
title: Общие сведения
|
233
|
+
assemblies_types:
|
234
|
+
form:
|
235
|
+
title: Название
|
225
236
|
assembly_copies:
|
226
237
|
form:
|
227
238
|
slug_help: 'Сокращенные веб-адреса используются для создания ссылок на это собрание. В них допустимы только буквы, цифры и тире, и они должны начинаться с буквы. Пример: %{url}'
|
data/config/locales/sv.yml
CHANGED
@@ -16,6 +16,7 @@ sv:
|
|
16
16
|
created_by_other: Skapad av andra
|
17
17
|
creation_date: Skapad datum
|
18
18
|
decidim_area_id: Område
|
19
|
+
decidim_assemblies_type_id: Typ av församling
|
19
20
|
decidim_scope_id: Omfång
|
20
21
|
description: Beskrivning
|
21
22
|
developer_group: Kampanjgrupp
|
@@ -99,6 +100,9 @@ sv:
|
|
99
100
|
create:
|
100
101
|
error: Det gick inte att duplicera församlingen.
|
101
102
|
success: Församlingen har duplicerats.
|
103
|
+
assemblies_types:
|
104
|
+
new:
|
105
|
+
create: Skapa
|
102
106
|
assembly_copies:
|
103
107
|
new:
|
104
108
|
copy: Kopiera
|
@@ -159,6 +163,10 @@ sv:
|
|
159
163
|
moderations: Moderering
|
160
164
|
private_users: Privata användare
|
161
165
|
models:
|
166
|
+
assemblies_types:
|
167
|
+
fields:
|
168
|
+
created_at: Skapad
|
169
|
+
title: Titel
|
162
170
|
assembly:
|
163
171
|
fields:
|
164
172
|
created_at: Skapad
|
@@ -224,6 +232,9 @@ sv:
|
|
224
232
|
social_handlers: Socialt
|
225
233
|
title: Allmän information
|
226
234
|
visbility: Synlighet
|
235
|
+
assemblies_types:
|
236
|
+
form:
|
237
|
+
title: Titel
|
227
238
|
assembly_copies:
|
228
239
|
form:
|
229
240
|
slug_help: 'URL-slugs används till att generera de URL:er som pekar på församlingen. Använd bara bokstäver, siffror och bindestreck, och de måste börja med en bokstav. Exempel: %{url}'
|
data/config/locales/tr-TR.yml
CHANGED
@@ -16,6 +16,7 @@ tr:
|
|
16
16
|
created_by_other: Diğer tarafından oluşturuldu
|
17
17
|
creation_date: Tarih oluşturuldu
|
18
18
|
decidim_area_id: alan
|
19
|
+
decidim_assemblies_type_id: Montaj tipi
|
19
20
|
decidim_scope_id: kapsam
|
20
21
|
description: Açıklama
|
21
22
|
developer_group: Tanıtım grubu
|
@@ -99,6 +100,9 @@ tr:
|
|
99
100
|
create:
|
100
101
|
error: Bu derlemeyi çoğaltırken bir hata oluştu.
|
101
102
|
success: Montaj başarıyla kopyalandı.
|
103
|
+
assemblies_types:
|
104
|
+
new:
|
105
|
+
create: yaratmak
|
102
106
|
assembly_copies:
|
103
107
|
new:
|
104
108
|
copy: kopya
|
@@ -159,6 +163,10 @@ tr:
|
|
159
163
|
moderations: Denetimler
|
160
164
|
private_users: Özel kullanıcılar
|
161
165
|
models:
|
166
|
+
assemblies_types:
|
167
|
+
fields:
|
168
|
+
created_at: Düzenlendi
|
169
|
+
title: Başlık
|
162
170
|
assembly:
|
163
171
|
fields:
|
164
172
|
created_at: Düzenlendi
|
@@ -224,6 +232,9 @@ tr:
|
|
224
232
|
social_handlers: Sosyal
|
225
233
|
title: Genel bilgi
|
226
234
|
visbility: görünürlük
|
235
|
+
assemblies_types:
|
236
|
+
form:
|
237
|
+
title: Başlık
|
227
238
|
assembly_copies:
|
228
239
|
form:
|
229
240
|
slug_help: 'URL sümükleri, bu derleme işaret eden URL''leri oluşturmak için kullanılır. Sadece harfleri, sayıları ve kısa çizgileri kabul eder ve bir harfle başlamalıdır. Örnek: %{url}'
|
data/config/locales/uk.yml
CHANGED
@@ -16,6 +16,7 @@ uk:
|
|
16
16
|
created_by_other: Створено кимось іншим
|
17
17
|
creation_date: Дата створення
|
18
18
|
decidim_area_id: Дільниця
|
19
|
+
decidim_assemblies_type_id: Різновид зборів
|
19
20
|
decidim_scope_id: Обсяг
|
20
21
|
description: Опис
|
21
22
|
developer_group: Робочий гурт з просування
|
@@ -104,6 +105,9 @@ uk:
|
|
104
105
|
create:
|
105
106
|
error: При спробі створити копію цих зборів сталася помилка.
|
106
107
|
success: Успішно створено копію зборів.
|
108
|
+
assemblies_types:
|
109
|
+
new:
|
110
|
+
create: Додати
|
107
111
|
assembly_copies:
|
108
112
|
new:
|
109
113
|
copy: Скопіювати
|
@@ -164,6 +168,10 @@ uk:
|
|
164
168
|
moderations: Дії з модерації
|
165
169
|
private_users: Приватні учасники
|
166
170
|
models:
|
171
|
+
assemblies_types:
|
172
|
+
fields:
|
173
|
+
created_at: 'Додано:'
|
174
|
+
title: Назва
|
167
175
|
assembly:
|
168
176
|
fields:
|
169
177
|
created_at: 'Додано:'
|
@@ -222,6 +230,9 @@ uk:
|
|
222
230
|
slug_help: 'Cкорочені веб-адреси використовуються для створення посилань на ці збори. В них припустимі лише букви, цифри та тире, і вони мають починатися з букви. Приклад: %{url}'
|
223
231
|
social_handlers: Соціальні мережі
|
224
232
|
title: Загальні відомості
|
233
|
+
assemblies_types:
|
234
|
+
form:
|
235
|
+
title: Назва
|
225
236
|
assembly_copies:
|
226
237
|
form:
|
227
238
|
slug_help: 'Cкорочені веб-адреси використовуються для створення посилань на ці збори. В них припустимі лише букви, цифри та тире, і вони мають починатися з букви. Приклад: %{url}'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimAssemblyTypes < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_assemblies_types do |t|
|
6
|
+
t.jsonb :title, null: false
|
7
|
+
|
8
|
+
t.integer :decidim_organization_id,
|
9
|
+
foreign_key: true,
|
10
|
+
index: {
|
11
|
+
name: "index_decidim_assemblies_types_on_decidim_organization_id"
|
12
|
+
}
|
13
|
+
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
|
17
|
+
add_reference :decidim_assemblies, :decidim_assemblies_type, index: true, foreign_key: true
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Migrates freezed assembly types to a table where to configure them
|
4
|
+
class MigrateDecidimAssemblyTypes < ActiveRecord::Migration[5.2]
|
5
|
+
LEGACY_TYPES = {
|
6
|
+
"government" => "Government",
|
7
|
+
"executive" => "Executive",
|
8
|
+
"consultative_advisory" => "Consultative/Advisory",
|
9
|
+
"participatory" => "Participatory",
|
10
|
+
"working_group" => "Working group",
|
11
|
+
"commission" => "Comission",
|
12
|
+
"others" => "Others"
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
class Organization < ApplicationRecord
|
16
|
+
self.table_name = :decidim_organizations
|
17
|
+
end
|
18
|
+
|
19
|
+
class Assembly < ApplicationRecord
|
20
|
+
self.table_name = :decidim_assemblies
|
21
|
+
end
|
22
|
+
|
23
|
+
class AssemblyType < ApplicationRecord
|
24
|
+
self.table_name = :decidim_assemblies_types
|
25
|
+
end
|
26
|
+
|
27
|
+
def up
|
28
|
+
Organization.find_each do |organization|
|
29
|
+
LEGACY_TYPES.each do |type, _english|
|
30
|
+
title = {}
|
31
|
+
organization.available_locales.each do |lang|
|
32
|
+
t = type_localized(type, lang)
|
33
|
+
title[lang] = t if t
|
34
|
+
end
|
35
|
+
|
36
|
+
unless type == "others"
|
37
|
+
assembly_type = AssemblyType.find_or_create_by(
|
38
|
+
decidim_organization_id: organization.id,
|
39
|
+
title: title
|
40
|
+
)
|
41
|
+
end
|
42
|
+
Assembly.where(decidim_organization_id: organization.id, assembly_type: type).each do |assembly|
|
43
|
+
if type == "others"
|
44
|
+
assembly_type = AssemblyType.find_or_create_by(
|
45
|
+
decidim_organization_id: organization.id,
|
46
|
+
title: assembly.assembly_type_other
|
47
|
+
)
|
48
|
+
end
|
49
|
+
assembly.decidim_assemblies_type_id = assembly_type.id
|
50
|
+
assembly.save
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def down
|
57
|
+
Assembly.find_each do |assembly|
|
58
|
+
next unless assembly.decidim_assemblies_type_id
|
59
|
+
|
60
|
+
assembly_type = AssemblyType.find(assembly.decidim_assemblies_type_id)
|
61
|
+
next unless assembly_type
|
62
|
+
|
63
|
+
key = LEGACY_TYPES.find { |type, _english| type_localized(type, "en") == assembly_type.title["en"] }
|
64
|
+
|
65
|
+
unless key
|
66
|
+
key = "others"
|
67
|
+
assembly.assembly_type_other = assembly_type.title
|
68
|
+
end
|
69
|
+
assembly.assembly_type = key
|
70
|
+
assembly.save
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def type_localized(type, lang)
|
77
|
+
I18n.with_locale(lang) do
|
78
|
+
t = I18n.t("assembly_types.#{type}", scope: "decidim.assemblies", default: false)
|
79
|
+
t ||= LEGACY_TYPES[type] if lang == "en"
|
80
|
+
t
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|