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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb7ad73d81e7d2af81157d3ef70546e30fc05787fb9d8d6b30e80306a1ea034e
4
- data.tar.gz: 9b269123dda6cc111d83a12fbd7477392f0e698862a56d1210ea4a3eec59ab62
3
+ metadata.gz: 965ba857e31bd9382e24afc9038ca5a13e30933a55b3462000fbbf6abbecc3bf
4
+ data.tar.gz: 450dd8a7531c378639ad3adaf539630991df0ec89bd84f6235390835d1595a3e
5
5
  SHA512:
6
- metadata.gz: 15aa43c12c3f4dadcd85bab77a25a091ca2ba3ae1d57795a344e8af0551150c92f16bd02cdb80023a80d26c65c4b955c24d12f712dc7607ca545e7208b59b2c1
7
- data.tar.gz: a7f5d414b32d1c76c02e7925b2071923814cbc066e5a76d312cda0fe371e6dade4411013eb438a15be7c2fa3f1b85d986efc7e2b61876818808f91a4f55dedb2
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(:start_time).page(params[:page]).per(15)
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
@@ -90,7 +90,7 @@ module Decidim
90
90
  end
91
91
 
92
92
  def meetings
93
- @meetings ||= paginate(search.results.order(:start_time))
93
+ @meetings ||= paginate(search.results.order(start_time: :desc))
94
94
  end
95
95
 
96
96
  def registration
@@ -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, numericality: { greater_than_or_equal_to: 0 }, if: ->(form) { form.registrations_enabled? }
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: ->(form) { form.registrations_enabled? }
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 %>
@@ -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:
@@ -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
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-meetings version.
5
5
  module Meetings
6
6
  def self.version
7
- "0.24.0.rc2"
7
+ "0.24.0"
8
8
  end
9
9
  end
10
10
  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.rc2
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-10 00:00:00.000000000 Z
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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.rc2
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: 1.3.1
542
+ version: '0'
542
543
  requirements: []
543
544
  rubygems_version: 3.1.2
544
545
  signing_key: