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 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: