decidim-meetings 0.24.0.rc2 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/decidim/meetings/admin/application_controller.rb +1 -1
- data/app/controllers/decidim/meetings/meetings_controller.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_registrations_form.rb +14 -4
- data/app/views/decidim/meetings/meetings/show.html.erb +3 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/ro-RO.yml +60 -0
- data/db/migrate/20210310120731_add_followable_counter_cache_to_meetings.rb +16 -0
- data/lib/decidim/meetings/version.rb +1 -1
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 965ba857e31bd9382e24afc9038ca5a13e30933a55b3462000fbbf6abbecc3bf
|
4
|
+
data.tar.gz: 450dd8a7531c378639ad3adaf539630991df0ec89bd84f6235390835d1595a3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7edebe538d8cd6babe76adf55c28c6efa79a58d15af1d26b2b7fd5dfef4ba611708ebbfeee19c06b9f269e78d2c6af21574d30001d0f69bb8929a6bcec6cbd34
|
7
|
+
data.tar.gz: 64bfe2d15376031f06410f7deca194589a54607535572937b39f2eb9762c5f846fbc4f7c4a3f21956ebe3eedb215302c5aba5e41615e0474885a3931a5417cc6
|
@@ -13,7 +13,7 @@ module Decidim
|
|
13
13
|
helper_method :meetings, :meeting
|
14
14
|
|
15
15
|
def meetings
|
16
|
-
@meetings ||= Meeting.where(component: current_component).order(:
|
16
|
+
@meetings ||= Meeting.where(component: current_component).order(start_time: :desc).page(params[:page]).per(15)
|
17
17
|
end
|
18
18
|
|
19
19
|
def meeting
|
@@ -16,12 +16,22 @@ module Decidim
|
|
16
16
|
translatable_attribute :registration_terms, String
|
17
17
|
|
18
18
|
validates :registration_terms, translatable_presence: true, if: ->(form) { form.registrations_enabled? }
|
19
|
-
validates :available_slots,
|
19
|
+
validates :available_slots, :reserved_slots, presence: true, if: ->(form) { form.registrations_enabled? }
|
20
|
+
validates :available_slots, numericality: { greater_than_or_equal_to: 0 }, if: ->(form) { form.registrations_enabled? && form.available_slots.present? }
|
20
21
|
validates :reserved_slots, numericality: { greater_than_or_equal_to: 0 }, if: ->(form) { form.registrations_enabled? }
|
21
|
-
validates :reserved_slots, numericality: { less_than_or_equal_to: :available_slots }, if:
|
22
|
+
validates :reserved_slots, numericality: { less_than_or_equal_to: :available_slots }, if: lambda { |form|
|
23
|
+
form.registrations_enabled? &&
|
24
|
+
form.reserved_slots.present? &&
|
25
|
+
form.available_slots.present?
|
26
|
+
}
|
27
|
+
|
28
|
+
validate :available_slots_greater_than_or_equal_to_registrations_count, if: ->(form) { form.registrations_enabled? && form.available_slots.try(:positive?) }
|
29
|
+
validate :reserved_slots_lower_than_or_equal_to_rest_available_slots_and_registrations_count, if: lambda { |form|
|
30
|
+
form.registrations_enabled? &&
|
31
|
+
form.reserved_slots.try(:positive?) &&
|
32
|
+
form.available_slots.present?
|
33
|
+
}
|
22
34
|
|
23
|
-
validate :available_slots_greater_than_or_equal_to_registrations_count, if: ->(form) { form.registrations_enabled? && form.available_slots.positive? }
|
24
|
-
validate :reserved_slots_lower_than_or_equal_to_rest_available_slots_and_registrations_count, if: ->(form) { form.registrations_enabled? && form.reserved_slots.positive? }
|
25
35
|
# We need this method to ensure the form object will always have an ID,
|
26
36
|
# and thus its `to_param` method will always return a significant value.
|
27
37
|
# If we remove this method, get an error onn the `update` action and try
|
@@ -128,6 +128,9 @@ edit_link(
|
|
128
128
|
|
129
129
|
<% if meeting.online_meeting? %>
|
130
130
|
<%= render partial: "online_meeting_link", locals: { meeting: meeting } %>
|
131
|
+
<% elsif meeting.hybrid_meeting? %>
|
132
|
+
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "meetings", geolocalizable: meeting } %>
|
133
|
+
<%= render partial: "online_meeting_link", locals: { meeting: meeting } %>
|
131
134
|
<% else %>
|
132
135
|
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "meetings", geolocalizable: meeting } %>
|
133
136
|
<% end %>
|
data/config/locales/pl.yml
CHANGED
@@ -373,6 +373,7 @@ pl:
|
|
373
373
|
space_type: Przestrzeń partycypacyjna
|
374
374
|
upcoming: Nadchodzące
|
375
375
|
last_activity:
|
376
|
+
meeting_updated_at_html: "<span>Spotkanie zaktualizowane o %{link}</span>"
|
376
377
|
new_meeting_at_html: "<span>Nowe spotkanie %{link}</span>"
|
377
378
|
mailer:
|
378
379
|
invite_join_meeting_mailer:
|
data/config/locales/ro-RO.yml
CHANGED
@@ -21,17 +21,22 @@ ro:
|
|
21
21
|
end_time: Ora de încheiere
|
22
22
|
location: Locaţie
|
23
23
|
location_hints: Sugestii de localizare
|
24
|
+
online_meeting_url: URL-ul întâlnirii online
|
24
25
|
organizer_gid: Creează ca
|
25
26
|
organizer_id: Organizator
|
26
27
|
private_meeting: Întâlnire privată
|
27
28
|
registration_form_enabled: Formular de înregistrare activat
|
28
29
|
registration_terms: Termeni de înregistrare
|
30
|
+
registration_url: URL înregistrare
|
29
31
|
registrations_enabled: Înregistrări activate
|
30
32
|
start_time: Ora de începere
|
31
33
|
title: Titlu
|
32
34
|
transparent: Transparență
|
35
|
+
type_of_meeting: Tip
|
33
36
|
minutes:
|
37
|
+
audio_url: URL audio
|
34
38
|
description: Descriere
|
39
|
+
video_url: URL video
|
35
40
|
visible: Este vizibil
|
36
41
|
errors:
|
37
42
|
models:
|
@@ -88,7 +93,11 @@ ro:
|
|
88
93
|
creation_enabled_for_participants: Participanții pot crea întâlniri
|
89
94
|
default_registration_terms: Condiții de înregistrare implicite
|
90
95
|
enable_pads_creation: Activează crearea de pad-uri
|
96
|
+
registration_code_enabled: Cod de înregistrare activat
|
91
97
|
resources_permissions_enabled: Permisiunile de acțiuni pot fi setate pentru fiecare întâlnire
|
98
|
+
scope_id: Domeniu de interes
|
99
|
+
scopes_enabled: Domenii de interes activate
|
100
|
+
terms_and_conditions_url_for_meeting_creators: URL condiții pentru întrunirea creatorilor
|
92
101
|
step:
|
93
102
|
announcement: Anunţ
|
94
103
|
comments_blocked: Comentarii blocate
|
@@ -160,6 +169,11 @@ ro:
|
|
160
169
|
confirm_destroy: Sunteţi sigur că doriţi să ştergeţi această întâlnire?
|
161
170
|
destroy: Ștergere
|
162
171
|
edit: Editare
|
172
|
+
invalid_destroy:
|
173
|
+
proposals_count:
|
174
|
+
one: 'Întâlnirea nu poate fi eliminată deoarece are %{count} propunere asociată:'
|
175
|
+
few: 'Întâlnirea nu poate fi eliminată deoarece are %{count} propunere asociată:'
|
176
|
+
other: 'Întâlnirea nu poate fi eliminată deoarece are %{count} propuneri asociate acestuia:'
|
163
177
|
minutes: Minute
|
164
178
|
new: Ședință nouă
|
165
179
|
preview: Previzualizare
|
@@ -197,6 +211,7 @@ ro:
|
|
197
211
|
invalid: A apărut o eroare la actualizarea acestei agende
|
198
212
|
success: Agendă actualizată cu succes
|
199
213
|
exports:
|
214
|
+
meeting_comments: Comentarii
|
200
215
|
meetings: Întâlniri
|
201
216
|
registrations: Înregistrări
|
202
217
|
invite_join_meeting_mailer:
|
@@ -238,12 +253,25 @@ ro:
|
|
238
253
|
invalid: A apărut o problemă la crearea acestei întâlniri
|
239
254
|
success: Ședință creată cu succes
|
240
255
|
destroy:
|
256
|
+
invalid:
|
257
|
+
proposals_count:
|
258
|
+
one: Întâlnirea nu poate fi eliminată deoarece are %{count} propunere asociată
|
259
|
+
few: Întâlnirile nu pot fi eliminate deoarece au %{count} propuneri asociate
|
260
|
+
other: Întâlnirile nu pot fi eliminate deoarece au %{count} propuneri asociate
|
241
261
|
success: Şedinţa a fost ştearsă
|
242
262
|
edit:
|
263
|
+
title: Editați ședința
|
243
264
|
update: Actualizare
|
244
265
|
form:
|
245
266
|
address_help: 'Adresă: utilizată de Geocoder pentru a găsi locaţia'
|
267
|
+
available_slots_help: Lăsați la 0 dacă aveți locuri nelimitate disponibile
|
268
|
+
disclaimer: 'Declinare: Prin utilizarea unui sistem extern de înregistrare, știți că organizatorii %{organization} nu sunt responsabili pentru datele furnizate de utilizatori serviciului extern.'
|
246
269
|
location_help: 'Locație: mesaj direcționat către utilizatori care implică locul la care să se întâlnească'
|
270
|
+
location_hints_help: 'Sugestii privind locaţia: informaţii suplimentare. Exemplu: podeaua clădirii dacă este o întâlnire interpersonală, sau dacă este vorba de o întâlnire online cu acces restrâns.'
|
271
|
+
online_meeting_url_help: 'Link: permiteți participanților să se conecteze direct la întâlnirea dvs'
|
272
|
+
registration_url_help: 'Link: permiteți participanților să acceseze serviciul extern pe care îl utilizați pentru înregistrare'
|
273
|
+
select_a_meeting_type: Vă rugăm să selectați un tip de ședință
|
274
|
+
select_a_registration_type: Vă rugăm să selectaţi un tip de înregistrare
|
247
275
|
index:
|
248
276
|
title: Întâlniri
|
249
277
|
new:
|
@@ -267,6 +295,7 @@ ro:
|
|
267
295
|
invalid: A apărut o problemă la crearea acestui minut
|
268
296
|
success: Minute create cu succes
|
269
297
|
edit:
|
298
|
+
title: Editare minute
|
270
299
|
update: Actualizare
|
271
300
|
new:
|
272
301
|
create: Crează
|
@@ -338,6 +367,7 @@ ro:
|
|
338
367
|
space_type: Spaţiu participativ
|
339
368
|
upcoming: Urmează
|
340
369
|
last_activity:
|
370
|
+
meeting_updated_at_html: "<span>Întâlnire actualizată la %{link}</span>"
|
341
371
|
new_meeting_at_html: "<span>O nouă ședință la %{link}</span>"
|
342
372
|
mailer:
|
343
373
|
invite_join_meeting_mailer:
|
@@ -348,6 +378,11 @@ ro:
|
|
348
378
|
subject: Înregistrarea întâlnirii dvs. a fost confirmată
|
349
379
|
meeting:
|
350
380
|
not_allowed: Nu aveţi permisiunea să vizualizaţi această întâlnire
|
381
|
+
meeting_closes:
|
382
|
+
edit:
|
383
|
+
back: Înapoi
|
384
|
+
close: Închide ședința
|
385
|
+
title: Închide ședința
|
351
386
|
meetings:
|
352
387
|
count:
|
353
388
|
meetings_count:
|
@@ -362,12 +397,15 @@ ro:
|
|
362
397
|
title: Editează-ți ședința
|
363
398
|
update: Actualizare
|
364
399
|
filters:
|
400
|
+
activity: Activitatea mea
|
401
|
+
all: Toate
|
365
402
|
category: Categorie
|
366
403
|
date: Data
|
367
404
|
date_values:
|
368
405
|
all: Toate
|
369
406
|
past: Trecute
|
370
407
|
upcoming: Urmează
|
408
|
+
my_meetings: Întâlnirile mele
|
371
409
|
origin: Origine
|
372
410
|
origin_values:
|
373
411
|
all: Toate
|
@@ -376,6 +414,12 @@ ro:
|
|
376
414
|
user_groups: Grupuri
|
377
415
|
scope: Domeniu
|
378
416
|
search: Caută
|
417
|
+
type: Tipul
|
418
|
+
type_values:
|
419
|
+
all: Toate
|
420
|
+
hybrid: Ambele
|
421
|
+
in_person: În persoană
|
422
|
+
online: Online
|
379
423
|
filters_small_view:
|
380
424
|
close_modal: Închide fereastra
|
381
425
|
filter: Filtrare
|
@@ -383,9 +427,16 @@ ro:
|
|
383
427
|
unfold: Desfășurat
|
384
428
|
form:
|
385
429
|
address_help: 'Adresă: utilizată de Geocoder pentru a găsi locaţia'
|
430
|
+
available_slots_help: Lăsați această opțiune la 0 dacă aveți sloturi disponibile nelimitate
|
386
431
|
create_as: Creaza o sedinta ca
|
432
|
+
disclaimer: 'Declinare: Prin utilizarea unui sistem extern de înregistrare, știți că organizatorii %{organization} nu sunt responsabili pentru datele furnizate de utilizatori serviciului extern.'
|
387
433
|
location_help: 'Locație: mesaj direcționat către utilizatori care implică locul la care să se întâlnească'
|
434
|
+
location_hints_help: 'Sugestii privind locaţia: informaţii suplimentare. Exemplu: podeaua clădirii dacă este o întâlnire interpersonală, sau dacă este vorba de o întâlnire online cu acces restrâns.'
|
435
|
+
online_meeting_url_help: 'Link: permiteți participanților să se conecteze direct la întâlnirea dvs'
|
436
|
+
registration_url_help: 'Link: permiteți participanților să acceseze serviciul extern pe care îl utilizați pentru înregistrare'
|
388
437
|
select_a_category: Vă rugăm să selectaţi o categorie
|
438
|
+
select_a_meeting_type: Vă rugăm să selectați un tip de ședință
|
439
|
+
select_a_registration_type: Vă rugăm să selectaţi un tip de înregistrare
|
389
440
|
index:
|
390
441
|
new_meeting: Ședință nouă
|
391
442
|
meeting_minutes:
|
@@ -404,6 +455,7 @@ ro:
|
|
404
455
|
show:
|
405
456
|
attendees: Numărul participanților
|
406
457
|
back: Înapoi la listă
|
458
|
+
close_meeting: Închide ședința
|
407
459
|
contributions: Număr de contribuții
|
408
460
|
date: Data
|
409
461
|
edit_meeting: Editați ședința
|
@@ -451,6 +503,10 @@ ro:
|
|
451
503
|
confirmed_html: Înregistrarea dvs. pentru ședința <a href="%{url}">%{title}</a> a fost confirmată.
|
452
504
|
details: Detaliile şedinţei vor fi găsite în ataşament.
|
453
505
|
registration_code: Codul dvs. de înregistrare este %{code}.
|
506
|
+
registration_type:
|
507
|
+
on_different_platform: Pe o platformă diferită
|
508
|
+
on_this_platform: Pe această platformă
|
509
|
+
registration_disabled: Înregistrare Dezactivată
|
454
510
|
registrations:
|
455
511
|
create:
|
456
512
|
invalid: A apărut o problemă la această întâlnire.
|
@@ -461,6 +517,10 @@ ro:
|
|
461
517
|
destroy:
|
462
518
|
invalid: A existat o problemă la părăsirea acestei reuniuni.
|
463
519
|
success: Ai părăsit şedinţa cu succes.
|
520
|
+
type_of_meeting:
|
521
|
+
hybrid: Ambele
|
522
|
+
in_person: În persoană
|
523
|
+
online: Online
|
464
524
|
types:
|
465
525
|
private_meeting: Întâlnire privată
|
466
526
|
transparent: Transparență
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddFollowableCounterCacheToMeetings < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_column :decidim_meetings_meetings, :follows_count, :integer, null: false, default: 0, index: true
|
6
|
+
|
7
|
+
reversible do |dir|
|
8
|
+
dir.up do
|
9
|
+
Decidim::Meetings::Meeting.reset_column_information
|
10
|
+
Decidim::Meetings::Meeting.find_each do |record|
|
11
|
+
record.class.reset_counters(record.id, :follows)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-meetings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.24.0
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-03-
|
13
|
+
date: 2021-03-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cells-erb
|
@@ -46,28 +46,28 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.24.0
|
49
|
+
version: 0.24.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.24.0
|
56
|
+
version: 0.24.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: decidim-forms
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.24.0
|
63
|
+
version: 0.24.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.24.0
|
70
|
+
version: 0.24.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: icalendar
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,56 +136,56 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - '='
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.24.0
|
139
|
+
version: 0.24.0
|
140
140
|
type: :development
|
141
141
|
prerelease: false
|
142
142
|
version_requirements: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - '='
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0.24.0
|
146
|
+
version: 0.24.0
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: decidim-assemblies
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
151
|
- - '='
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0.24.0
|
153
|
+
version: 0.24.0
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
156
|
version_requirements: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - '='
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.24.0
|
160
|
+
version: 0.24.0
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: decidim-dev
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - '='
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.24.0
|
167
|
+
version: 0.24.0
|
168
168
|
type: :development
|
169
169
|
prerelease: false
|
170
170
|
version_requirements: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - '='
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version: 0.24.0
|
174
|
+
version: 0.24.0
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
176
|
name: decidim-participatory_processes
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
179
|
- - '='
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version: 0.24.0
|
181
|
+
version: 0.24.0
|
182
182
|
type: :development
|
183
183
|
prerelease: false
|
184
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
186
|
- - '='
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
-
version: 0.24.0
|
188
|
+
version: 0.24.0
|
189
189
|
description: A meetings component for decidim's participatory spaces.
|
190
190
|
email:
|
191
191
|
- josepjaume@gmail.com
|
@@ -497,6 +497,7 @@ files:
|
|
497
497
|
- db/migrate/20201016065302_fix_meetings_registration_terms.rb
|
498
498
|
- db/migrate/20201016112641_add_registration_type_and_url_to_meetings.rb
|
499
499
|
- db/migrate/20201111133246_add_salt_to_decidim_meetings.rb
|
500
|
+
- db/migrate/20210310120731_add_followable_counter_cache_to_meetings.rb
|
500
501
|
- lib/decidim/api/agenda_item_type.rb
|
501
502
|
- lib/decidim/api/agenda_type.rb
|
502
503
|
- lib/decidim/api/linked_resources_interface.rb
|
@@ -536,9 +537,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
536
537
|
version: '2.7'
|
537
538
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
538
539
|
requirements:
|
539
|
-
- - "
|
540
|
+
- - ">="
|
540
541
|
- !ruby/object:Gem::Version
|
541
|
-
version:
|
542
|
+
version: '0'
|
542
543
|
requirements: []
|
543
544
|
rubygems_version: 3.1.2
|
544
545
|
signing_key:
|