decidim-meetings 0.24.0.rc2 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/decidim/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:
|