decidim-meetings 0.14.4 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/app/assets/config/{admin/decidim_meetings_manifest.js → decidim_meetings_manifest.js} +1 -0
- data/app/assets/images/decidim/gamification/badges/attended_meetings.svg +106 -0
- data/app/cells/decidim/meetings/content_blocks/upcoming_events/show.erb +26 -0
- data/app/cells/decidim/meetings/content_blocks/upcoming_events_cell.rb +52 -0
- data/app/cells/decidim/meetings/meeting_activity_cell.rb +19 -0
- data/app/cells/decidim/meetings/meeting_cell.rb +6 -0
- data/app/cells/decidim/meetings/meeting_list_item_cell.rb +1 -1
- data/app/cells/decidim/meetings/meeting_m/address.erb +1 -14
- data/app/cells/decidim/meetings/meeting_m_cell.rb +7 -3
- data/app/cells/decidim/meetings/meeting_s/show.erb +27 -0
- data/app/cells/decidim/meetings/meeting_s_cell.rb +31 -0
- data/app/cells/decidim/meetings/meetings_map/show.erb +33 -0
- data/app/cells/decidim/meetings/meetings_map_cell.rb +23 -0
- data/app/commands/decidim/meetings/admin/create_meeting.rb +12 -5
- data/app/commands/decidim/meetings/admin/update_meeting.rb +5 -2
- data/app/commands/decidim/meetings/join_meeting.rb +5 -0
- data/app/commands/decidim/meetings/leave_meeting.rb +5 -0
- data/app/controllers/decidim/meetings/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/meetings/admin/registrations_controller.rb +1 -0
- data/app/controllers/decidim/meetings/directory/meetings_controller.rb +73 -0
- data/app/controllers/decidim/meetings/meetings_controller.rb +8 -6
- data/app/helpers/decidim/meetings/map_helper.rb +4 -3
- data/app/helpers/decidim/meetings/meeting_cells_helper.rb +0 -1
- data/app/helpers/decidim/meetings/meetings_helper.rb +1 -1
- data/app/mailers/decidim/meetings/admin/invite_join_meeting_mailer.rb +2 -0
- data/app/mailers/decidim/meetings/registration_mailer.rb +4 -2
- data/app/models/decidim/meetings/meeting.rb +3 -0
- data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +6 -2
- data/app/presenters/decidim/meetings/admin_log/value_types/meeting_title_description_presenter.rb +20 -0
- data/app/presenters/decidim/meetings/log/resource_presenter.rb +18 -0
- data/app/presenters/decidim/meetings/meeting_presenter.rb +40 -0
- data/app/queries/decidim/meetings/metrics/meetings_metric_manage.rb +53 -0
- data/app/services/decidim/meetings/meeting_search.rb +8 -1
- data/app/views/decidim/meetings/admin/agenda/_form.html.erb +1 -1
- data/app/views/decidim/meetings/admin/invite_join_meeting_mailer/invite.html.erb +2 -2
- data/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +3 -3
- data/app/views/decidim/meetings/admin/meeting_copies/_form.html.erb +2 -2
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +4 -4
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +1 -1
- data/app/views/decidim/meetings/directory/meetings/_meetings.html.erb +14 -0
- data/app/views/decidim/meetings/directory/meetings/index.html.erb +34 -0
- data/app/views/decidim/meetings/directory/meetings/index.js.erb +11 -0
- data/app/views/decidim/meetings/meeting_widgets/show.html.erb +1 -1
- data/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/index.html.erb +1 -33
- data/app/views/decidim/meetings/meetings/index.js.erb +1 -1
- data/app/views/decidim/meetings/meetings/show.html.erb +5 -5
- data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +1 -1
- data/app/views/decidim/participatory_processes/participatory_process_groups/_meeting.html.erb +1 -1
- data/app/views/decidim/participatory_spaces/_conference_venues.html.erb +20 -0
- data/config/locales/ca.yml +37 -2
- data/config/locales/de.yml +37 -0
- data/config/locales/en.yml +37 -2
- data/config/locales/es-PY.yml +37 -2
- data/config/locales/es.yml +37 -2
- data/config/locales/eu.yml +37 -0
- data/config/locales/fi.yml +37 -2
- data/config/locales/fr.yml +37 -0
- data/config/locales/gl.yml +37 -0
- data/config/locales/hu.yml +37 -0
- data/config/locales/it.yml +37 -0
- data/config/locales/nl.yml +37 -0
- data/config/locales/pl.yml +37 -0
- data/config/locales/pt-BR.yml +37 -0
- data/config/locales/pt.yml +37 -0
- data/config/locales/ru.yml +1 -0
- data/config/locales/sv.yml +37 -0
- data/config/locales/uk.yml +1 -0
- data/db/migrate/20180809134748_add_upcoming_events_as_content_block.rb +27 -0
- data/lib/decidim/meetings/admin_engine.rb +0 -4
- data/lib/decidim/meetings/component.rb +30 -3
- data/lib/decidim/meetings/directory.rb +10 -0
- data/lib/decidim/meetings/directory_engine.rb +32 -0
- data/lib/decidim/meetings/engine.rb +38 -1
- data/lib/decidim/meetings/seeds/city.jpeg +0 -0
- data/lib/decidim/meetings/test/factories.rb +13 -12
- data/lib/decidim/meetings/version.rb +1 -1
- data/lib/decidim/meetings.rb +2 -1
- metadata +34 -14
data/config/locales/it.yml
CHANGED
@@ -20,6 +20,7 @@ it:
|
|
20
20
|
end_time: Orario fine
|
21
21
|
location: Luogo
|
22
22
|
location_hints: Informazione sul luogo
|
23
|
+
organizer_id: Organizzatore
|
23
24
|
private_meeting: Incontro privato
|
24
25
|
registration_terms: Termini di registrazione
|
25
26
|
registrations_enabled: Registrazioni abilitate
|
@@ -121,6 +122,18 @@ it:
|
|
121
122
|
email_outro: Hai ricevuto questa notifica perché stai seguendo la riunione "%{resource_title}". Puoi smettere di seguirlo dal link precedente.
|
122
123
|
email_subject: La riunione "%{resource_title}" inizierà tra meno di 48 ore.
|
123
124
|
notification_title: La riunione <a href="%{resource_path}">%{resource_title}</a> inizierà tra meno di 48 ore.
|
125
|
+
gamification:
|
126
|
+
badges:
|
127
|
+
attended_meetings:
|
128
|
+
conditions:
|
129
|
+
- Registrati negli incontri a cui vuoi partecipare
|
130
|
+
description: Questo badge è concesso quando si partecipano a numerosi incontri faccia a faccia.
|
131
|
+
description_another: Questo utente ha partecipato a %{score} riunioni.
|
132
|
+
description_own: Hai partecipato a %{score} riunioni.
|
133
|
+
name: Riunioni frequentate
|
134
|
+
next_level_in: Partecipa a %{score} altri incontri per raggiungere il livello successivo!
|
135
|
+
unearned_another: Questo utente non ha ancora partecipato a nessuna riunione.
|
136
|
+
unearned_own: Non hai ancora partecipato a nessuna riunione.
|
124
137
|
meetings:
|
125
138
|
actions:
|
126
139
|
agenda: ordine del giorno
|
@@ -284,6 +297,24 @@ it:
|
|
284
297
|
minutes:
|
285
298
|
create: "%{user_name} ha creato i minuti della riunione %{resource_name} nello spazio %{space_name}"
|
286
299
|
update: "%{user_name} ha aggiornato i minuti della riunione %{resource_name} nello spazio %{space_name}"
|
300
|
+
conference_venues: Sale per conferenze
|
301
|
+
content_blocks:
|
302
|
+
upcoming_events:
|
303
|
+
name: Prossimi eventi
|
304
|
+
upcoming_events: Prossimi incontri
|
305
|
+
view_all_events: Guarda tutto
|
306
|
+
directory:
|
307
|
+
meetings:
|
308
|
+
index:
|
309
|
+
all: Tutti
|
310
|
+
date: Data
|
311
|
+
meetings: incontri
|
312
|
+
past: Passato
|
313
|
+
search: Ricerca
|
314
|
+
space_type: Spazio partecipativo
|
315
|
+
upcoming: Prossime
|
316
|
+
last_activity:
|
317
|
+
new_meeting_at_html: "<span>Nuovo incontro al %{link}</span>"
|
287
318
|
mailer:
|
288
319
|
invite_join_meeting_mailer:
|
289
320
|
invite:
|
@@ -327,6 +358,8 @@ it:
|
|
327
358
|
one: 1 slot restanti
|
328
359
|
other: "%{count} slot rimanenti"
|
329
360
|
view: vista
|
361
|
+
meetings_map:
|
362
|
+
view_meeting: Guarda la riunione
|
330
363
|
models:
|
331
364
|
invite:
|
332
365
|
fields:
|
@@ -364,6 +397,10 @@ it:
|
|
364
397
|
types:
|
365
398
|
private_meeting: Incontro privato
|
366
399
|
transparent: Trasparente
|
400
|
+
metrics:
|
401
|
+
meetings:
|
402
|
+
object: incontri
|
403
|
+
title: incontri
|
367
404
|
participatory_processes:
|
368
405
|
participatory_process_groups:
|
369
406
|
highlighted_meetings:
|
data/config/locales/nl.yml
CHANGED
@@ -20,6 +20,7 @@ nl:
|
|
20
20
|
end_time: Eindtijd
|
21
21
|
location: Plaats
|
22
22
|
location_hints: Locatie hints
|
23
|
+
organizer_id: Organisator
|
23
24
|
private_meeting: Privé vergadering
|
24
25
|
registration_terms: Registratievoorwaarden
|
25
26
|
registrations_enabled: Registraties geactiveerd
|
@@ -121,6 +122,18 @@ nl:
|
|
121
122
|
email_outro: Je ontvangt deze melding omdat je het event "%{resource_title}" volgt. Ontvolgen kan door te klikken op de voorgaande link.
|
122
123
|
email_subject: Het "%{resource_title}" event start in minder dan 48 uur.
|
123
124
|
notification_title: Het <a href="%{resource_path}">%{resource_title}</a> event begint over minder dan 48 uur.
|
125
|
+
gamification:
|
126
|
+
badges:
|
127
|
+
attended_meetings:
|
128
|
+
conditions:
|
129
|
+
- Registreer u in de vergaderingen die u wilt bijwonen
|
130
|
+
description: Deze badge wordt toegekend wanneer u verschillende persoonlijke vergaderingen bijwoont.
|
131
|
+
description_another: Deze gebruiker heeft %{score} vergaderingen bijgewoond.
|
132
|
+
description_own: U hebt %{score} vergaderingen bijgewoond.
|
133
|
+
name: Bijgewoond vergaderingen
|
134
|
+
next_level_in: Woon nog %{score} vergaderingen bij om het volgende niveau te bereiken!
|
135
|
+
unearned_another: Deze gebruiker heeft nog geen enkele vergadering bijgewoond.
|
136
|
+
unearned_own: U hebt nog geen vergadering bijgewoond.
|
124
137
|
meetings:
|
125
138
|
actions:
|
126
139
|
agenda: Agenda
|
@@ -284,6 +297,24 @@ nl:
|
|
284
297
|
minutes:
|
285
298
|
create: "%{user_name} heeft de minuten van de vergadering %{resource_name} gemaakt op de %{space_name} spatie"
|
286
299
|
update: "%{user_name} heeft de notulen van de vergadering %{resource_name} op de %{space_name} -spatie bijgewerkt"
|
300
|
+
conference_venues: Conferentie locaties
|
301
|
+
content_blocks:
|
302
|
+
upcoming_events:
|
303
|
+
name: Aankomende evenementen
|
304
|
+
upcoming_events: Komende vergaderingen
|
305
|
+
view_all_events: Bekijk alles
|
306
|
+
directory:
|
307
|
+
meetings:
|
308
|
+
index:
|
309
|
+
all: Alle
|
310
|
+
date: Datum
|
311
|
+
meetings: vergaderingen
|
312
|
+
past: Verleden
|
313
|
+
search: Zoeken
|
314
|
+
space_type: Participatieve ruimte
|
315
|
+
upcoming: Aankomende
|
316
|
+
last_activity:
|
317
|
+
new_meeting_at_html: "<span>Nieuwe vergadering op %{link}</span>"
|
287
318
|
mailer:
|
288
319
|
invite_join_meeting_mailer:
|
289
320
|
invite:
|
@@ -327,6 +358,8 @@ nl:
|
|
327
358
|
one: 1 plaats resterend
|
328
359
|
other: "%{count} resterende plaatsen"
|
329
360
|
view: Uitzicht
|
361
|
+
meetings_map:
|
362
|
+
view_meeting: Bekijk vergadering
|
330
363
|
models:
|
331
364
|
invite:
|
332
365
|
fields:
|
@@ -364,6 +397,10 @@ nl:
|
|
364
397
|
types:
|
365
398
|
private_meeting: Privé vergadering
|
366
399
|
transparent: Transparant
|
400
|
+
metrics:
|
401
|
+
meetings:
|
402
|
+
object: vergaderingen
|
403
|
+
title: vergaderingen
|
367
404
|
participatory_processes:
|
368
405
|
participatory_process_groups:
|
369
406
|
highlighted_meetings:
|
data/config/locales/pl.yml
CHANGED
@@ -20,6 +20,7 @@ pl:
|
|
20
20
|
end_time: Czas zakończenia
|
21
21
|
location: Miejsce
|
22
22
|
location_hints: Wskazówki co do miejsca
|
23
|
+
organizer_id: Organizator
|
23
24
|
private_meeting: Prywatne spotkanie
|
24
25
|
registration_terms: Warunki rejestracji
|
25
26
|
registrations_enabled: Rejestracje włączone
|
@@ -127,6 +128,18 @@ pl:
|
|
127
128
|
email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz spotkanie "%{resource_title}". Możesz przestać go obserwować z poprzedniego linku.
|
128
129
|
email_subject: Spotkanie "%{resource_title}" rozpocznie się za mniej niż 48 godzin.
|
129
130
|
notification_title: Spotkanie <a href="%{resource_path}">%{resource_title}</a> rozpocznie się za mniej niż 48 godzin.
|
131
|
+
gamification:
|
132
|
+
badges:
|
133
|
+
attended_meetings:
|
134
|
+
conditions:
|
135
|
+
- Zarejestruj się na spotkaniach, które chcesz wziąć udział
|
136
|
+
description: Ta odznaka jest przyznawana, gdy bierzesz udział w kilku spotkaniach twarzą w twarz.
|
137
|
+
description_another: Ten użytkownik uczestniczył w %{score} spotkaniach.
|
138
|
+
description_own: Brałeś udział w %{score} spotkaniach.
|
139
|
+
name: Udział w spotkaniach
|
140
|
+
next_level_in: Weź udział w %{score} dodatkowych spotkaniach, aby przejść do następnego poziomu!
|
141
|
+
unearned_another: Ten użytkownik nie uczestniczył jeszcze w żadnym spotkaniu.
|
142
|
+
unearned_own: Nie uczestniczyłeś jeszcze w żadnym spotkaniu.
|
130
143
|
meetings:
|
131
144
|
actions:
|
132
145
|
agenda: Program
|
@@ -292,6 +305,24 @@ pl:
|
|
292
305
|
minutes:
|
293
306
|
create: "%{user_name} utworzył minuty spotkania %{resource_name} na przestrzeni %{space_name}"
|
294
307
|
update: "%{user_name} zaktualizował minuty spotkania %{resource_name} na przestrzeni %{space_name}"
|
308
|
+
conference_venues: Sale konferencyjne
|
309
|
+
content_blocks:
|
310
|
+
upcoming_events:
|
311
|
+
name: Nadchodzące wydarzenia
|
312
|
+
upcoming_events: Nadchodzące spotkania
|
313
|
+
view_all_events: Pokaż wszystkie
|
314
|
+
directory:
|
315
|
+
meetings:
|
316
|
+
index:
|
317
|
+
all: Wszystko
|
318
|
+
date: Data
|
319
|
+
meetings: Spotkania
|
320
|
+
past: Przeszłość
|
321
|
+
search: Szukaj
|
322
|
+
space_type: Przestrzeń uczestnicząca
|
323
|
+
upcoming: Nadchodzące
|
324
|
+
last_activity:
|
325
|
+
new_meeting_at_html: "<span>Nowe spotkanie o %{link}</span>"
|
295
326
|
mailer:
|
296
327
|
invite_join_meeting_mailer:
|
297
328
|
invite:
|
@@ -337,6 +368,8 @@ pl:
|
|
337
368
|
many: "Pozostało %{count} gniazd"
|
338
369
|
other: "Pozostało %{count}"
|
339
370
|
view: Widok
|
371
|
+
meetings_map:
|
372
|
+
view_meeting: Zobacz spotkanie
|
340
373
|
models:
|
341
374
|
invite:
|
342
375
|
fields:
|
@@ -374,6 +407,10 @@ pl:
|
|
374
407
|
types:
|
375
408
|
private_meeting: Prywatne spotkanie
|
376
409
|
transparent: Przezroczysty
|
410
|
+
metrics:
|
411
|
+
meetings:
|
412
|
+
object: spotkania
|
413
|
+
title: Spotkania
|
377
414
|
participatory_processes:
|
378
415
|
participatory_process_groups:
|
379
416
|
highlighted_meetings:
|
data/config/locales/pt-BR.yml
CHANGED
@@ -20,6 +20,7 @@ pt-BR:
|
|
20
20
|
end_time: Fim do tempo
|
21
21
|
location: Localização
|
22
22
|
location_hints: Dicas de localização
|
23
|
+
organizer_id: Organizador
|
23
24
|
private_meeting: Reunião privada
|
24
25
|
registration_terms: Termos de registro
|
25
26
|
registrations_enabled: Registos habilitados
|
@@ -121,6 +122,18 @@ pt-BR:
|
|
121
122
|
email_outro: Você recebeu esta notificação porque está seguindo a reunião "%{resource_title}". Você pode ignorá-lo do link anterior.
|
122
123
|
email_subject: A reunião "%{resource_title}" começará em menos de 48h.
|
123
124
|
notification_title: A reunião <a href="%{resource_path}">%{resource_title}</a> começará em menos de 48h.
|
125
|
+
gamification:
|
126
|
+
badges:
|
127
|
+
attended_meetings:
|
128
|
+
conditions:
|
129
|
+
- Registre-se nas reuniões que você deseja participar
|
130
|
+
description: Este selo é concedido quando você participa de várias reuniões presenciais.
|
131
|
+
description_another: Este usuário assistiu a %{score} reuniões.
|
132
|
+
description_own: Você participou de %{score} reuniões.
|
133
|
+
name: Participou de reuniões
|
134
|
+
next_level_in: Participe de mais %{score} reuniões para alcançar o próximo nível!
|
135
|
+
unearned_another: Este usuário ainda não participou de nenhuma reunião.
|
136
|
+
unearned_own: Você não participou de nenhuma reunião ainda.
|
124
137
|
meetings:
|
125
138
|
actions:
|
126
139
|
agenda: Agenda
|
@@ -284,6 +297,24 @@ pt-BR:
|
|
284
297
|
minutes:
|
285
298
|
create: "%{user_name} criou a ata da reunião %{resource_name} no espaço %{space_name}"
|
286
299
|
update: "%{user_name} atualizou a ata da reunião %{resource_name} no espaço %{space_name}"
|
300
|
+
conference_venues: Locais de conferência
|
301
|
+
content_blocks:
|
302
|
+
upcoming_events:
|
303
|
+
name: Próximos eventos
|
304
|
+
upcoming_events: Próximos encontros
|
305
|
+
view_all_events: Ver tudo
|
306
|
+
directory:
|
307
|
+
meetings:
|
308
|
+
index:
|
309
|
+
all: Todos
|
310
|
+
date: Encontro
|
311
|
+
meetings: Reuniões
|
312
|
+
past: Passado
|
313
|
+
search: Pesquisa
|
314
|
+
space_type: Espaço participativo
|
315
|
+
upcoming: próximos
|
316
|
+
last_activity:
|
317
|
+
new_meeting_at_html: "<span>Nova reunião em %{link}</span>"
|
287
318
|
mailer:
|
288
319
|
invite_join_meeting_mailer:
|
289
320
|
invite:
|
@@ -327,6 +358,8 @@ pt-BR:
|
|
327
358
|
one: 1 slot restante
|
328
359
|
other: "%{count} slots restantes"
|
329
360
|
view: Visualizar
|
361
|
+
meetings_map:
|
362
|
+
view_meeting: Ver reunião
|
330
363
|
models:
|
331
364
|
invite:
|
332
365
|
fields:
|
@@ -364,6 +397,10 @@ pt-BR:
|
|
364
397
|
types:
|
365
398
|
private_meeting: Reunião privada
|
366
399
|
transparent: Transparente
|
400
|
+
metrics:
|
401
|
+
meetings:
|
402
|
+
object: reuniões
|
403
|
+
title: Reuniões
|
367
404
|
participatory_processes:
|
368
405
|
participatory_process_groups:
|
369
406
|
highlighted_meetings:
|
data/config/locales/pt.yml
CHANGED
@@ -20,6 +20,7 @@ pt:
|
|
20
20
|
end_time: Fim do tempo
|
21
21
|
location: Localização
|
22
22
|
location_hints: Dicas de localização
|
23
|
+
organizer_id: Organizador
|
23
24
|
private_meeting: Reunião privada
|
24
25
|
registration_terms: Termos de registro
|
25
26
|
registrations_enabled: Registos habilitados
|
@@ -121,6 +122,18 @@ pt:
|
|
121
122
|
email_outro: Você recebeu esta notificação porque está seguindo a reunião "%{resource_title}". Você pode ignorá-lo do link anterior.
|
122
123
|
email_subject: A reunião "%{resource_title}" começará em menos de 48h.
|
123
124
|
notification_title: A reunião <a href="%{resource_path}">%{resource_title}</a> começará em menos de 48h.
|
125
|
+
gamification:
|
126
|
+
badges:
|
127
|
+
attended_meetings:
|
128
|
+
conditions:
|
129
|
+
- Registre-se nas reuniões que deseja participar
|
130
|
+
description: Este crachá é concedido quando você participa de várias reuniões presenciais.
|
131
|
+
description_another: Este usuário assistiu a %{score} reuniões.
|
132
|
+
description_own: Você participou de %{score} reuniões.
|
133
|
+
name: Participou de reuniões
|
134
|
+
next_level_in: Participe de mais %{score} reuniões para alcançar o próximo nível!
|
135
|
+
unearned_another: Este usuário ainda não participou de nenhuma reunião.
|
136
|
+
unearned_own: Você não participou de nenhuma reunião ainda.
|
124
137
|
meetings:
|
125
138
|
actions:
|
126
139
|
agenda: Agenda
|
@@ -284,6 +297,24 @@ pt:
|
|
284
297
|
minutes:
|
285
298
|
create: "%{user_name} criou a ata da reunião %{resource_name} no espaço %{space_name}"
|
286
299
|
update: "%{user_name} atualizou a ata da reunião %{resource_name} no espaço %{space_name}"
|
300
|
+
conference_venues: Locais de conferência
|
301
|
+
content_blocks:
|
302
|
+
upcoming_events:
|
303
|
+
name: Próximos eventos
|
304
|
+
upcoming_events: Próximos encontros
|
305
|
+
view_all_events: Ver tudo
|
306
|
+
directory:
|
307
|
+
meetings:
|
308
|
+
index:
|
309
|
+
all: Todos
|
310
|
+
date: Encontro
|
311
|
+
meetings: Reuniões
|
312
|
+
past: Passado
|
313
|
+
search: Pesquisa
|
314
|
+
space_type: Espaço participativo
|
315
|
+
upcoming: próximos
|
316
|
+
last_activity:
|
317
|
+
new_meeting_at_html: "<span>Nova reunião em %{link}</span>"
|
287
318
|
mailer:
|
288
319
|
invite_join_meeting_mailer:
|
289
320
|
invite:
|
@@ -327,6 +358,8 @@ pt:
|
|
327
358
|
one: 1 slot restante
|
328
359
|
other: "%{count} slots restantes"
|
329
360
|
view: Visão
|
361
|
+
meetings_map:
|
362
|
+
view_meeting: Ver reunião
|
330
363
|
models:
|
331
364
|
invite:
|
332
365
|
fields:
|
@@ -364,6 +397,10 @@ pt:
|
|
364
397
|
types:
|
365
398
|
private_meeting: Reunião privada
|
366
399
|
transparent: Transparente
|
400
|
+
metrics:
|
401
|
+
meetings:
|
402
|
+
object: reuniões
|
403
|
+
title: Reuniões
|
367
404
|
participatory_processes:
|
368
405
|
participatory_process_groups:
|
369
406
|
highlighted_meetings:
|
data/config/locales/ru.yml
CHANGED
data/config/locales/sv.yml
CHANGED
@@ -20,6 +20,7 @@ sv:
|
|
20
20
|
end_time: Sluttid
|
21
21
|
location: Plats
|
22
22
|
location_hints: Platstips
|
23
|
+
organizer_id: Arrangör
|
23
24
|
private_meeting: Privat möte
|
24
25
|
registration_terms: Registreringsvillkor
|
25
26
|
registrations_enabled: Registreringar aktiverade
|
@@ -121,6 +122,18 @@ sv:
|
|
121
122
|
email_outro: Du har fått den här meddelandet eftersom du följer mötet "%{resource_title}". Du kan sluta följa det på föregående länk.
|
122
123
|
email_subject: Mötet "%{resource_title}" börjar om färre än 48 timmar.
|
123
124
|
notification_title: Mötet <a href="%{resource_path}">%{resource_title}</a> startar inom mindre än 48 timmar.
|
125
|
+
gamification:
|
126
|
+
badges:
|
127
|
+
attended_meetings:
|
128
|
+
conditions:
|
129
|
+
- Registrera dig i de möten du vill delta i
|
130
|
+
description: Detta märke beviljas när du deltar i flera möten mellan ansikte mot ansikte.
|
131
|
+
description_another: Den här användaren har deltagit i %{score} möten.
|
132
|
+
description_own: Du har deltagit i %{score} möten.
|
133
|
+
name: Deltog i möten
|
134
|
+
next_level_in: Delta i %{score} fler möten för att nå nästa nivå!
|
135
|
+
unearned_another: Den här användaren har inte deltagit i något möte än.
|
136
|
+
unearned_own: Du har inte deltagit i något möte än.
|
124
137
|
meetings:
|
125
138
|
actions:
|
126
139
|
agenda: Dagordning
|
@@ -284,6 +297,24 @@ sv:
|
|
284
297
|
minutes:
|
285
298
|
create: "%{user_name} skapade protokollet från mötet %{resource_name} på plats %{space_name}"
|
286
299
|
update: "%{user_name} uppdaterade protokollet från mötet %{resource_name} på plats %{space_name}"
|
300
|
+
conference_venues: Konferenslokaler
|
301
|
+
content_blocks:
|
302
|
+
upcoming_events:
|
303
|
+
name: Uppkommande händelser
|
304
|
+
upcoming_events: Kommande möten
|
305
|
+
view_all_events: Visa alla
|
306
|
+
directory:
|
307
|
+
meetings:
|
308
|
+
index:
|
309
|
+
all: Allt
|
310
|
+
date: Datum
|
311
|
+
meetings: möten
|
312
|
+
past: Dåtid
|
313
|
+
search: Sök
|
314
|
+
space_type: Deltagande utrymme
|
315
|
+
upcoming: kommande
|
316
|
+
last_activity:
|
317
|
+
new_meeting_at_html: "<span>Nytt möte på %{link}</span>"
|
287
318
|
mailer:
|
288
319
|
invite_join_meeting_mailer:
|
289
320
|
invite:
|
@@ -327,6 +358,8 @@ sv:
|
|
327
358
|
one: 1 plats kvar
|
328
359
|
other: "%{count} platser kvar"
|
329
360
|
view: Visa
|
361
|
+
meetings_map:
|
362
|
+
view_meeting: Visa möte
|
330
363
|
models:
|
331
364
|
invite:
|
332
365
|
fields:
|
@@ -364,6 +397,10 @@ sv:
|
|
364
397
|
types:
|
365
398
|
private_meeting: Privat möte
|
366
399
|
transparent: Transparent
|
400
|
+
metrics:
|
401
|
+
meetings:
|
402
|
+
object: möten
|
403
|
+
title: möten
|
367
404
|
participatory_processes:
|
368
405
|
participatory_process_groups:
|
369
406
|
highlighted_meetings:
|
data/config/locales/uk.yml
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddUpcomingEventsAsContentBlock < ActiveRecord::Migration[5.2]
|
4
|
+
class Organization < ApplicationRecord
|
5
|
+
self.table_name = :decidim_organizations
|
6
|
+
end
|
7
|
+
|
8
|
+
class ContentBlock < ApplicationRecord
|
9
|
+
self.table_name = :decidim_content_blocks
|
10
|
+
end
|
11
|
+
|
12
|
+
def change
|
13
|
+
Organization.find_each do |organization|
|
14
|
+
next if ContentBlock.where(decidim_organization_id: organization.id).where(manifest_name: "upcoming_events").exists?
|
15
|
+
|
16
|
+
last_weight = ContentBlock.where(decidim_organization_id: organization.id).order("weight DESC").limit(1).pluck(:weight).last.to_i
|
17
|
+
|
18
|
+
ContentBlock.create!(
|
19
|
+
decidim_organization_id: organization.id,
|
20
|
+
weight: last_weight,
|
21
|
+
scope: :homepage,
|
22
|
+
manifest_name: :upcoming_events,
|
23
|
+
published_at: Time.current
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -44,12 +44,26 @@ Decidim.register_component(:meetings) do |component|
|
|
44
44
|
end
|
45
45
|
|
46
46
|
component.seeds do |participatory_space|
|
47
|
-
|
47
|
+
admin_user = Decidim::User.find_by(
|
48
|
+
organization: participatory_space.organization,
|
49
|
+
email: "admin@example.org"
|
50
|
+
)
|
51
|
+
|
52
|
+
params = {
|
48
53
|
name: Decidim::Components::Namer.new(participatory_space.organization.available_locales, :meetings).i18n_name,
|
49
54
|
published_at: Time.current,
|
50
55
|
manifest_name: :meetings,
|
51
56
|
participatory_space: participatory_space
|
52
|
-
|
57
|
+
}
|
58
|
+
|
59
|
+
component = Decidim.traceability.perform_action!(
|
60
|
+
"publish",
|
61
|
+
Decidim::Component,
|
62
|
+
admin_user,
|
63
|
+
visibility: "all"
|
64
|
+
) do
|
65
|
+
Decidim::Component.create!(params)
|
66
|
+
end
|
53
67
|
|
54
68
|
if participatory_space.scope
|
55
69
|
scopes = participatory_space.scope.descendants
|
@@ -60,7 +74,7 @@ Decidim.register_component(:meetings) do |component|
|
|
60
74
|
end
|
61
75
|
|
62
76
|
2.times do
|
63
|
-
|
77
|
+
params = {
|
64
78
|
component: component,
|
65
79
|
scope: Faker::Boolean.boolean(0.5) ? global : scopes.sample,
|
66
80
|
category: participatory_space.categories.sample,
|
@@ -84,6 +98,13 @@ Decidim.register_component(:meetings) do |component|
|
|
84
98
|
{ title: Decidim::Faker::Localized.sentence(2), description: Decidim::Faker::Localized.sentence(5) },
|
85
99
|
{ title: Decidim::Faker::Localized.sentence(2), description: Decidim::Faker::Localized.sentence(5) }
|
86
100
|
]
|
101
|
+
}
|
102
|
+
|
103
|
+
meeting = Decidim.traceability.create!(
|
104
|
+
Decidim::Meetings::Meeting,
|
105
|
+
admin_user,
|
106
|
+
params,
|
107
|
+
visibility: "all"
|
87
108
|
)
|
88
109
|
|
89
110
|
2.times do |n|
|
@@ -137,3 +158,9 @@ Decidim.register_component(:meetings) do |component|
|
|
137
158
|
end
|
138
159
|
end
|
139
160
|
end
|
161
|
+
|
162
|
+
Decidim.register_global_engine(
|
163
|
+
:meetings_directory,
|
164
|
+
Decidim::Meetings::DirectoryEngine,
|
165
|
+
at: "/meetings"
|
166
|
+
)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Meetings
|
5
|
+
# This is the engine that runs on the public interface of `decidim-meetings`.
|
6
|
+
# It mostly handles rendering the created meeting associated to a participatory
|
7
|
+
# process.
|
8
|
+
class DirectoryEngine < ::Rails::Engine
|
9
|
+
isolate_namespace Decidim::Meetings::Directory
|
10
|
+
|
11
|
+
paths["db/migrate"] = nil
|
12
|
+
paths["lib/tasks"] = nil
|
13
|
+
|
14
|
+
routes do
|
15
|
+
resources :meetings, only: [:index], format: :html
|
16
|
+
root to: "meetings#index", format: :html
|
17
|
+
end
|
18
|
+
|
19
|
+
def load_seed
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
|
23
|
+
initializer "decidim.meetings.content_blocks" do
|
24
|
+
Decidim.content_blocks.register(:homepage, :upcoming_events) do |content_block|
|
25
|
+
content_block.cell = "decidim/meetings/content_blocks/upcoming_events"
|
26
|
+
content_block.public_name_key = "decidim.meetings.content_blocks.upcoming_events.name"
|
27
|
+
content_block.default!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -62,7 +62,7 @@ module Decidim
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
Decidim.view_hooks.register(:
|
65
|
+
Decidim.view_hooks.register(:current_participatory_space_meetings, priority: Decidim::ViewHooks::HIGH_PRIORITY) do |view_context|
|
66
66
|
published_components = Decidim::Component.where(participatory_space: view_context.current_participatory_space).published
|
67
67
|
meetings = Decidim::Meetings::Meeting.where(component: published_components)
|
68
68
|
|
@@ -92,12 +92,49 @@ module Decidim
|
|
92
92
|
}
|
93
93
|
)
|
94
94
|
end
|
95
|
+
|
96
|
+
Decidim.view_hooks.register(:conference_venues, priority: Decidim::ViewHooks::HIGH_PRIORITY) do |view_context|
|
97
|
+
published_components = Decidim::Component.where(participatory_space: view_context.current_participatory_space).published
|
98
|
+
meetings = Decidim::Meetings::Meeting.where(component: published_components).group_by(&:address)
|
99
|
+
meetings_geocoded = Decidim::Meetings::Meeting.where(component: published_components).geocoded
|
100
|
+
next unless meetings.any?
|
101
|
+
|
102
|
+
view_context.render(
|
103
|
+
partial: "decidim/participatory_spaces/conference_venues",
|
104
|
+
locals: {
|
105
|
+
meetings: meetings,
|
106
|
+
meetings_geocoded: meetings_geocoded
|
107
|
+
}
|
108
|
+
)
|
109
|
+
end
|
95
110
|
end
|
96
111
|
|
97
112
|
initializer "decidim_meetings.add_cells_view_paths" do
|
98
113
|
Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Meetings::Engine.root}/app/cells")
|
99
114
|
Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Meetings::Engine.root}/app/views") # for partials
|
100
115
|
end
|
116
|
+
|
117
|
+
initializer "decidim_meetings.attended_meetings_badge" do
|
118
|
+
Decidim::Gamification.register_badge(:attended_meetings) do |badge|
|
119
|
+
badge.levels = [1, 3, 5, 10, 30]
|
120
|
+
badge.reset = lambda do |user|
|
121
|
+
Decidim::Meetings::Registration.where(user: user).count
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
initializer "decidim_meetings.register_metrics" do
|
127
|
+
Decidim.metrics_registry.register(
|
128
|
+
:meetings,
|
129
|
+
"Decidim::Meetings::Metrics::MeetingsMetricManage",
|
130
|
+
Decidim::MetricRegistry::NOT_HIGHLIGHTED,
|
131
|
+
5
|
132
|
+
)
|
133
|
+
end
|
134
|
+
|
135
|
+
initializer "decidim_meetings.assets" do |app|
|
136
|
+
app.config.assets.precompile += %w(decidim_meetings_manifest.js)
|
137
|
+
end
|
101
138
|
end
|
102
139
|
end
|
103
140
|
end
|
Binary file
|