decidim-conferences 0.29.2 → 0.30.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +1 -1
  3. data/app/commands/decidim/conferences/admin/copy_conference.rb +2 -12
  4. data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
  5. data/app/commands/decidim/conferences/admin/update_conference.rb +1 -1
  6. data/app/controllers/decidim/conferences/admin/component_share_tokens_controller.rb +18 -0
  7. data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +1 -1
  8. data/app/controllers/decidim/conferences/admin/conference_share_tokens_controller.rb +18 -0
  9. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +17 -4
  10. data/app/forms/decidim/conferences/admin/conference_copy_form.rb +0 -1
  11. data/app/forms/decidim/conferences/admin/conference_form.rb +3 -8
  12. data/app/helpers/decidim/conferences/conference_program_helper.rb +4 -2
  13. data/app/mailers/decidim/conferences/admin/send_conference_diploma_mailer.rb +1 -11
  14. data/app/models/decidim/conference.rb +19 -0
  15. data/app/models/decidim/conferences/conference_invite.rb +10 -0
  16. data/app/permissions/decidim/conferences/permissions.rb +11 -4
  17. data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +1 -1
  18. data/app/presenters/decidim/conferences/conference_presenter.rb +19 -0
  19. data/app/serializers/decidim/conferences/conference_serializer.rb +24 -0
  20. data/app/serializers/decidim/conferences/download_your_data_conference_invite_serializer.rb +3 -4
  21. data/app/serializers/decidim/conferences/download_your_data_conference_registration_serializer.rb +4 -4
  22. data/app/serializers/decidim/conferences/open_data_conference_serializer.rb +30 -0
  23. data/app/views/decidim/conferences/admin/conference_copies/_form.html.erb +0 -3
  24. data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +35 -0
  25. data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +28 -0
  26. data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +8 -0
  27. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +27 -8
  28. data/app/views/decidim/conferences/admin/conferences/index.html.erb +14 -52
  29. data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +20 -0
  30. data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb +3 -1
  31. data/app/views/decidim/conferences/conference_program/show.html.erb +3 -1
  32. data/app/views/decidim/conferences/conference_speakers/index.html.erb +4 -1
  33. data/app/views/decidim/conferences/conferences/index.html.erb +3 -2
  34. data/app/views/decidim/conferences/conferences/show.html.erb +6 -6
  35. data/app/views/decidim/conferences/media/index.html.erb +3 -1
  36. data/app/views/decidim/conferences/registration_types/index.html.erb +3 -1
  37. data/app/views/layouts/decidim/admin/conference.html.erb +1 -1
  38. data/config/locales/ar.yml +12 -3
  39. data/config/locales/bg.yml +0 -3
  40. data/config/locales/ca.yml +63 -3
  41. data/config/locales/cs.yml +63 -3
  42. data/config/locales/de.yml +63 -3
  43. data/config/locales/el.yml +0 -3
  44. data/config/locales/en.yml +63 -3
  45. data/config/locales/es-MX.yml +63 -3
  46. data/config/locales/es-PY.yml +63 -3
  47. data/config/locales/es.yml +63 -3
  48. data/config/locales/eu.yml +63 -3
  49. data/config/locales/fi-plain.yml +63 -3
  50. data/config/locales/fi.yml +63 -3
  51. data/config/locales/fr-CA.yml +22 -3
  52. data/config/locales/fr.yml +22 -3
  53. data/config/locales/ga-IE.yml +0 -2
  54. data/config/locales/gl.yml +0 -3
  55. data/config/locales/hu.yml +0 -3
  56. data/config/locales/id-ID.yml +0 -3
  57. data/config/locales/it.yml +0 -3
  58. data/config/locales/ja.yml +65 -3
  59. data/config/locales/lb.yml +0 -3
  60. data/config/locales/lt.yml +0 -3
  61. data/config/locales/lv.yml +0 -3
  62. data/config/locales/nl.yml +0 -3
  63. data/config/locales/no.yml +0 -3
  64. data/config/locales/pl.yml +0 -3
  65. data/config/locales/pt-BR.yml +0 -3
  66. data/config/locales/pt.yml +0 -3
  67. data/config/locales/ro-RO.yml +0 -3
  68. data/config/locales/sk.yml +0 -3
  69. data/config/locales/sv.yml +65 -3
  70. data/config/locales/tr-TR.yml +0 -3
  71. data/config/locales/zh-CN.yml +0 -3
  72. data/config/locales/zh-TW.yml +0 -3
  73. data/db/migrate/20210310134942_add_followable_counter_cache_to_conferences.rb +1 -1
  74. data/db/migrate/20240822161330_add_deleted_at_to_decidim_conferences.rb +8 -0
  75. data/decidim-conferences.gemspec +1 -2
  76. data/lib/decidim/api/conference_media_link_type.rb +4 -4
  77. data/lib/decidim/api/conference_partner_type.rb +4 -4
  78. data/lib/decidim/api/conference_speaker_type.rb +7 -8
  79. data/lib/decidim/api/conference_type.rb +17 -19
  80. data/lib/decidim/conferences/admin_engine.rb +87 -58
  81. data/lib/decidim/conferences/conference_diploma_pdf.rb +242 -0
  82. data/lib/decidim/conferences/engine.rb +6 -1
  83. data/lib/decidim/conferences/menu.rb +23 -9
  84. data/lib/decidim/conferences/participatory_space.rb +13 -0
  85. data/lib/decidim/conferences/seeds.rb +134 -115
  86. data/lib/decidim/conferences/test/factories.rb +10 -9
  87. data/lib/decidim/conferences/version.rb +1 -1
  88. data/lib/decidim/conferences.rb +1 -0
  89. metadata +23 -28
  90. data/app/controllers/decidim/conferences/admin/categories_controller.rb +0 -13
  91. data/config/initializers/wicked_pdf.rb +0 -22
@@ -22,8 +22,6 @@ sv:
22
22
  published_at: Publicerad
23
23
  registration_terms: Villkor för registrering
24
24
  registrations_enabled: Registrering aktiverad
25
- scope_id: Indelning
26
- scopes_enabled: Aktivera indelningar
27
25
  short_description: Kort beskrivning
28
26
  show_statistics: Visa statistik
29
27
  sign_date: Datum för underskrift
@@ -159,25 +157,35 @@ sv:
159
157
  create:
160
158
  error: Det gick inte att skapa en ny medialänk.
161
159
  edit:
160
+ title: Uppdatera medialänk
162
161
  update: Uppdatera
162
+ index:
163
+ media_links_title: Medialänkar
163
164
  new:
164
165
  create: Skapa
166
+ title: Skapa medialänk
165
167
  update:
166
168
  error: Det gick inte att uppdatera medialänken.
169
+ success: Medialänken har uppdaterats.
167
170
  menu:
168
171
  conferences: Konferenser
169
172
  conferences_submenu:
170
173
  attachment_collections: Mappar
171
174
  attachment_files: Filer
172
175
  attachments: Bilagor
173
- categories: Kategorier
174
176
  components: Komponenter
175
177
  conference_admins: Konferensadministratörer
176
178
  conference_invites: Inbjudningar
177
179
  conference_speakers: Talare
180
+ diploma: Närvarointyg
181
+ info: Om konferensen
182
+ media_links: Medialänkar
178
183
  moderations: Moderering
179
184
  partners: Partners
185
+ registration_types: Typer av registrering
180
186
  registrations: Registreringar
187
+ see_conference: Visa konferens
188
+ user_registrations: Användarregistreringar
181
189
  models:
182
190
  conference:
183
191
  fields:
@@ -206,6 +214,7 @@ sv:
206
214
  date: Datum
207
215
  link: Länk
208
216
  title: Titel
217
+ name: Medialänk
209
218
  partner:
210
219
  fields:
211
220
  link: Länk
@@ -231,6 +240,7 @@ sv:
231
240
  destroy:
232
241
  success: Konferenspartnern har tagits bort.
233
242
  edit:
243
+ title: Uppdatera partner
234
244
  update: Uppdatera
235
245
  new:
236
246
  create: Skapa
@@ -252,6 +262,7 @@ sv:
252
262
  destroy:
253
263
  success: Registreringstypen har tagits från konferensen.
254
264
  edit:
265
+ title: Uppdatera registreringstyp
255
266
  update: Uppdatera
256
267
  new:
257
268
  create: Skapa
@@ -259,13 +270,21 @@ sv:
259
270
  update:
260
271
  error: Det gick inte att uppdatera en registreringstyp för konferensen.
261
272
  success: Registreringstypen till konferensen har uppdaterats.
273
+ taxonomy_filters:
274
+ space_filter_for:
275
+ conferences: Alla konferenser
262
276
  titles:
263
277
  conferences: Konferenser
278
+ conferences_deleted: Borttagna konferenser
279
+ tooltips:
280
+ deleted_conferences_info: Konferenser kan endast tas bort om statusen är "Opublicerad".
264
281
  admin_log:
265
282
  conference:
266
283
  create: "%{user_name} skapade konferensen %{resource_name}"
267
284
  publish: "%{user_name} publicerade konferensen %{resource_name}"
285
+ restore: "%{user_name} återställde konferensen %{resource_name}"
268
286
  send_conference_diplomas: "%{user_name} skickade närvarointyg till deltagarna på konferensen %{resource_name}"
287
+ soft_delete: "%{user_name} tog bort konferensen %{resource_name}"
269
288
  unpublish: "%{user_name} avpublicerade konferensen %{resource_name}"
270
289
  update: "%{user_name} uppdaterade konferensen %{resource_name}"
271
290
  update_diploma: "%{user_name} uppdaterade konfigurationen av närvarointygen till konferensen %{resource_name}"
@@ -286,6 +305,7 @@ sv:
286
305
  update: "%{user_name} uppdaterade partnern %{resource_name} i konferensen %{space_name}"
287
306
  registration_type:
288
307
  create: "%{user_name} skapade registreringstypen %{resource_name} på konferensen %{space_name}"
308
+ delete: "%{user_name} tog bort registreringstypen %{resource_name} från konferensen %{space_name}"
289
309
  publish: "%{user_name} publicerade registreringstypen %{resource_name} till konferensen %{space_name}"
290
310
  unpublish: "%{user_name} avpublicerade registreringstypen %{resource_name} till konferensen %{space_name}"
291
311
  update: "%{user_name} uppdaterade registreringstypen %{resource_name} till konferensen %{space_name}"
@@ -301,6 +321,9 @@ sv:
301
321
  title: Talare
302
322
  conferences:
303
323
  admin:
324
+ conference_copies:
325
+ form:
326
+ slug_help_html: 'URL-slugs används till att generera URL:er till konferensen. Använd bara bokstäver, siffror och bindestreck, och de måste börja med en bokstav. Exempel: %{url}'
304
327
  conference_invites:
305
328
  create:
306
329
  error: Det gick inte att bjuda in deltagaren till konferensen.
@@ -315,6 +338,7 @@ sv:
315
338
  invite_attendee: Bjud in deltagare
316
339
  invites: Inbjudningar
317
340
  new:
341
+ explanation: Deltagaren kommer att bjudas in att delta i en konferens. Om deltagarens e-postadress inte har registrerats kommer deltagaren även att bjudas in till organisationen.
318
342
  invite: Inbjudan
319
343
  new_invite: Bjud in deltagare
320
344
  conference_registrations:
@@ -331,16 +355,25 @@ sv:
331
355
  conferences:
332
356
  form:
333
357
  available_slots_help: Lämna det till 0 om du har obegränsat antal platser.
358
+ define_taxonomy_filters: Vänligen definiera några filter för deltagarutrymmet innan du använder den här inställningen.
359
+ no_taxonomy_filters_found: Inga filter för kategorier hittades.
334
360
  registrations_count:
335
361
  one: Det har gjorts en registrering.
336
362
  other: Det har gjorts %{count} registreringar.
363
+ slug_help_html: 'URL-slugs används till att generera URL:er till konferensen. Använd bara bokstäver, siffror och bindestreck, och de måste börja med en bokstav. Exempel: %{url}'
364
+ taxonomies: Kategorier
365
+ content_blocks:
366
+ highlighted_conferences:
367
+ max_results: Maximalt antal element att visa
337
368
  diplomas:
338
369
  edit:
339
370
  save: Spara
371
+ title: Närvarointyg
340
372
  invite_join_conference_mailer:
341
373
  invite:
342
374
  decline: Avböj inbjudan till '%{conference_title}'
343
375
  invited_existing_user_to_join_a_conference: "%{invited_by} har bjudit in dig till en konferens på %{application}. Du kan avböja eller godkänna den via länkarna nedan."
376
+ invited_user_to_join_a_conference: "%{invited_by} har bjudit in dig till en konferens på %{application}. Du kan tacka ja via länken nedan."
344
377
  registration: Registrering till '%{conference_title}'
345
378
  partners:
346
379
  index:
@@ -355,6 +388,7 @@ sv:
355
388
  diploma_html: Närvarointyget för konferensen <a href="%{url}">%{title}</a> finns i bilagorna.
356
389
  diploma_user:
357
390
  attendance_verified_by: Närvaro bekräftad av
391
+ certificate_of_attendance: Närvarointyg
358
392
  certificate_of_attendance_description: Detta intygar att <strong>%{user}</strong> har deltagit och medverkat i <strong>%{title}</strong> som hölls på <strong>%{location}</strong> <strong>%{start} - %{end}</strong>
359
393
  send_diploma:
360
394
  error: Det gick inte att skicka närvarointyg för konferensen.
@@ -383,13 +417,16 @@ sv:
383
417
  create:
384
418
  invalid: Det gick inte att gå med i denna konferens.
385
419
  success: Du har gått med i konferensen.
420
+ unauthorized: Du måste logga in innan du anmäler dig till konferensen.
386
421
  decline_invitation:
387
422
  invalid: Det gick inte att avböja inbjudan.
388
423
  success: Du har avböjt inbjudan.
424
+ unauthorized: Du måste logga in innan du avböjer inbjudan.
389
425
  destroy:
390
426
  invalid: Det gick inte att lämna konferensen.
391
427
  success: Du har lämnat konferensen.
392
428
  conference_speaker:
429
+ go_to_twitter: Gå till X
393
430
  more_info: mer information
394
431
  personal_website: Personlig hemsida
395
432
  show:
@@ -408,14 +445,27 @@ sv:
408
445
  collaborators: Partners
409
446
  main_promotors: Organisatörer
410
447
  show:
448
+ already_have_an_account?: Har du redan ett konto?
449
+ are_you_new?: Ny deltagare?
411
450
  login_as: Du är inloggad som %{name} <%{email}>
451
+ make_conference_registration: Anmäl dig till konferensen
452
+ manage_registration: Hantera anmälan
412
453
  register: Registrering
454
+ sign_in_description: Logga in för att anmäla dig till konferensen
455
+ sign_up_description: Skapa ett konto för att anmäla dig till konferensen
413
456
  content_blocks:
414
457
  highlighted_conferences:
415
458
  name: Viktiga konferenser just nu
416
459
  index:
417
460
  title: Konferenser
461
+ last_activity:
462
+ new_conference: 'Ny konferens:'
418
463
  mailer:
464
+ conference_registration_mailer:
465
+ confirmation:
466
+ subject: Din anmälan till konferensen har bekräftats.
467
+ pending_validation:
468
+ subject: Din anmälan till konferensen väntar på bekräftelse.
419
469
  invite_join_conference_mailer:
420
470
  invite:
421
471
  subject: Inbjudan att delta i en konferens
@@ -460,6 +510,18 @@ sv:
460
510
  objectives: Mål
461
511
  related_assemblies: Relaterade samråd
462
512
  related_participatory_processes: Relaterade deltagandeprocesser
513
+ download_your_data:
514
+ help:
515
+ conference_invites:
516
+ accepted_at: Datum då inbjudan till konferensen godkändes
517
+ conference: Konferensen som inbjudan gäller
518
+ confirmed_at: Datum då inbjudan bekräftades
519
+ created_at: Datum då inbjudan skapades
520
+ id: Unikt id för konferensinbjudan
521
+ registration_type: Typ av anmälan till konferensen som skickades
522
+ rejected_at: Datum då inbjudan till konferensen avvisades
523
+ sent_at: Datum då inbjudan till konferensen skickades
524
+ updated_at: Datum då inbjudan senast uppdaterades
463
525
  events:
464
526
  conferences:
465
527
  conference_registration_confirmed:
@@ -15,8 +15,6 @@ tr:
15
15
  participatory_processes_ids: İlgili katılımcı süreçleri
16
16
  promoted: Vurgulanan
17
17
  published_at: Yayınlandı
18
- scope_id: Kapsam
19
- scopes_enabled: Kapsamlar etkinleştirildi
20
18
  short_description: Kısa Açıklama
21
19
  show_statistics: İstatistikleri göster
22
20
  slogan: Slogan
@@ -131,7 +129,6 @@ tr:
131
129
  attachment_collections: Klasörler
132
130
  attachment_files: Dosyalar
133
131
  attachments: Ekler
134
- categories: Kategoriler
135
132
  components: Bileşenler
136
133
  conference_admins: Konferans yöneticileri
137
134
  conference_invites: Davetler
@@ -15,8 +15,6 @@ zh-CN:
15
15
  participatory_processes_ids: 相关的参与进程
16
16
  promoted: 高亮
17
17
  published_at: 发布于
18
- scope_id: 范围
19
- scopes_enabled: 范围已启用
20
18
  short_description: 简短描述
21
19
  show_statistics: 显示统计
22
20
  slogan: 斯洛根文
@@ -122,7 +120,6 @@ zh-CN:
122
120
  attachment_collections: 文件夹
123
121
  attachment_files: 文件
124
122
  attachments: 附件
125
- categories: 类别管理
126
123
  components: 组件
127
124
  conference_admins: 会议管理员
128
125
  conference_invites: 邀请
@@ -22,8 +22,6 @@ zh-TW:
22
22
  published_at: 發佈於
23
23
  registration_terms: 註冊條款
24
24
  registrations_enabled: 啟用註冊
25
- scope_id: 範圍
26
- scopes_enabled: 啟用範圍
27
25
  short_description: 簡短說明
28
26
  show_statistics: 顯示統計資料
29
27
  sign_date: 簽到日期
@@ -170,7 +168,6 @@ zh-TW:
170
168
  attachment_collections: 資料夾
171
169
  attachment_files: 檔案
172
170
  attachments: 附件
173
- categories: 類別
174
171
  components: 组件
175
172
  conference_admins: 會議管理員
176
173
  conference_invites: 邀請
@@ -7,7 +7,7 @@ class AddFollowableCounterCacheToConferences < ActiveRecord::Migration[5.2]
7
7
  reversible do |dir|
8
8
  dir.up do
9
9
  Decidim::Conference.reset_column_information
10
- Decidim::Conference.find_each do |record|
10
+ Decidim::Conference.unscoped.find_each do |record|
11
11
  record.class.reset_counters(record.id, :follows)
12
12
  end
13
13
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDeletedAtToDecidimConferences < ActiveRecord::Migration[7.0]
4
+ def change
5
+ add_column :decidim_conferences, :deleted_at, :datetime
6
+ add_index :decidim_conferences, :deleted_at
7
+ end
8
+ end
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  "homepage_uri" => "https://decidim.org",
18
18
  "source_code_uri" => "https://github.com/decidim/decidim"
19
19
  }
20
- s.required_ruby_version = "~> 3.2.0"
20
+ s.required_ruby_version = "~> 3.3.0"
21
21
 
22
22
  s.name = "decidim-conferences"
23
23
  s.summary = "Decidim conferences module"
@@ -32,7 +32,6 @@ Gem::Specification.new do |s|
32
32
 
33
33
  s.add_dependency "decidim-core", Decidim::Conferences.version
34
34
  s.add_dependency "decidim-meetings", Decidim::Conferences.version
35
- s.add_dependency "wicked_pdf", "~> 2.7"
36
35
 
37
36
  s.add_development_dependency "decidim-admin", Decidim::Conferences.version
38
37
  s.add_development_dependency "decidim-dev", Decidim::Conferences.version
@@ -4,15 +4,15 @@ module Decidim
4
4
  module Conferences
5
5
  # This type represents a conference.
6
6
  class ConferenceMediaLinkType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::TimestampsInterface
8
+
7
9
  description "A conference media link"
8
10
 
11
+ field :date, Decidim::Core::DateType, "Relevant date for the media link", null: true
9
12
  field :id, GraphQL::Types::ID, "Internal ID for this media link", null: false
10
- field :title, Decidim::Core::TranslatedFieldType, "Title for this media link", null: true
11
13
  field :link, GraphQL::Types::String, "URL for this media link", null: true
12
- field :date, Decidim::Core::DateType, "Relevant date for the media link", null: true
14
+ field :title, Decidim::Core::TranslatedFieldType, "Title for this media link", null: true
13
15
  field :weight, GraphQL::Types::Int, "Order of appearance in which it should be presented", null: true
14
- field :created_at, Decidim::Core::DateTimeType, "The time this entry was created", null: true
15
- field :updated_at, Decidim::Core::DateTimeType, "The time this entry was updated", null: true
16
16
  end
17
17
  end
18
18
  end
@@ -4,16 +4,16 @@ module Decidim
4
4
  module Conferences
5
5
  # This type represents a conference.
6
6
  class ConferencePartnerType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::TimestampsInterface
8
+
7
9
  description "A conference partner"
8
10
 
9
11
  field :id, GraphQL::Types::ID, "ID of the resource", null: false
12
+ field :link, GraphQL::Types::String, "Relevant URL for this partner", null: true
13
+ field :logo, GraphQL::Types::String, "Link to the partner's logo", null: true
10
14
  field :name, GraphQL::Types::String, "Partner name", null: true
11
15
  field :partner_type, GraphQL::Types::String, "Partner type", null: true
12
16
  field :weight, GraphQL::Types::Int, "Order of appearance in which it should be presented", null: true
13
- field :link, GraphQL::Types::String, "Relevant URL for this partner", null: true
14
- field :logo, GraphQL::Types::String, "Link to the partner's logo", null: true
15
- field :created_at, Decidim::Core::DateTimeType, "The time this partner was created", null: true
16
- field :updated_at, Decidim::Core::DateTimeType, "The time this partner was updated", null: true
17
17
 
18
18
  def logo
19
19
  object.attached_uploader(:logo).url
@@ -4,21 +4,20 @@ module Decidim
4
4
  module Conferences
5
5
  # This type represents a conference.
6
6
  class ConferenceSpeakerType < Decidim::Api::Types::BaseObject
7
+ implements Decidim::Core::TimestampsInterface
8
+
7
9
  description "A conference speaker"
8
10
 
9
- field :id, GraphQL::Types::ID, "Internal ID of the speaker", null: false
11
+ field :affiliation, Decidim::Core::TranslatedFieldType, "Affiliation of the speaker", null: true
12
+ field :avatar, GraphQL::Types::String, "Avatar of the speaker", null: true
10
13
  field :full_name, GraphQL::Types::String, "Full name of the speaker", null: true
14
+ field :id, GraphQL::Types::ID, "Internal ID of the speaker", null: false
15
+ field :personal_url, GraphQL::Types::String, "Personal URL of the speaker", null: true
11
16
  field :position, Decidim::Core::TranslatedFieldType, "Position of the speaker in the conference", null: true
12
- field :affiliation, Decidim::Core::TranslatedFieldType, "Affiliation of the speaker", null: true
13
- field :twitter_handle, GraphQL::Types::String, "X handle", null: true
14
17
  field :short_bio, Decidim::Core::TranslatedFieldType, "Short biography of the speaker", null: true
15
- field :personal_url, GraphQL::Types::String, "Personal URL of the speaker", null: true
16
- field :avatar, GraphQL::Types::String, "Avatar of the speaker", null: true
18
+ field :twitter_handle, GraphQL::Types::String, "X handle", null: true
17
19
  field :user, Decidim::Core::UserType, "Decidim user corresponding to this speaker", null: true
18
20
 
19
- field :created_at, Decidim::Core::DateTimeType, "The time this member was created ", null: true
20
- field :updated_at, Decidim::Core::DateTimeType, "The time this member was updated", null: true
21
-
22
21
  def avatar
23
22
  object.attached_uploader(:avatar).url
24
23
  end
@@ -7,36 +7,34 @@ module Decidim
7
7
  implements Decidim::Core::ParticipatorySpaceInterface
8
8
  implements Decidim::Core::ScopableInterface
9
9
  implements Decidim::Core::AttachableInterface
10
+ implements Decidim::Core::TaxonomizableInterface
11
+ implements Decidim::Core::TimestampsInterface
10
12
  implements Decidim::Core::CategoriesContainerInterface
11
13
 
12
14
  description "A conference"
13
15
 
14
- field :id, GraphQL::Types::ID, "Internal ID for this conference", null: false
15
- field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this conference", null: true
16
+ field :available_slots, GraphQL::Types::Int, "The number of available slots in this conference", null: true
17
+ field :banner_image, GraphQL::Types::String, "The banner image for this conference", null: true
16
18
  field :description, Decidim::Core::TranslatedFieldType, "The description of this conference", null: true
17
- field :slug, GraphQL::Types::String, "The slug of this conference", null: true
19
+ field :end_date, Decidim::Core::DateType, "The date this conference ends", null: true
18
20
  field :hashtag, GraphQL::Types::String, "The hashtag for this conference", null: true
19
- field :slogan, Decidim::Core::TranslatedFieldType, "The slogan of the conference", null: true
21
+ field :hero_image, GraphQL::Types::String, "The hero image for this conference", null: true
22
+ field :id, GraphQL::Types::ID, "Internal ID for this conference", null: false
20
23
  field :location, String, "The location of this conference", null: true
21
- field :created_at, Decidim::Core::DateTimeType, "The time this conference was created", null: true
22
- field :updated_at, Decidim::Core::DateTimeType, "The time this conference was updated", null: true
24
+ field :media_links, [Decidim::Conferences::ConferenceMediaLinkType, { null: true }], "List of media links in this conference", null: true
25
+ field :objectives, Decidim::Core::TranslatedFieldType, "The objectives of the conference", null: true
26
+ field :partners, [Decidim::Conferences::ConferencePartnerType, { null: true }], "List of partners in this conference", null: true
27
+ field :promoted, GraphQL::Types::Boolean, "If this conference is promoted (therefore in the homepage)", null: true
23
28
  field :published_at, Decidim::Core::DateTimeType, "The time this conference was published", null: true
24
29
  field :reference, GraphQL::Types::String, "Reference prefix for this conference", null: true
25
-
26
- field :hero_image, GraphQL::Types::String, "The hero image for this conference", null: true
27
- field :banner_image, GraphQL::Types::String, "The banner image for this conference", null: true
28
- field :promoted, GraphQL::Types::Boolean, "If this conference is promoted (therefore in the homepage)", null: true
29
- field :objectives, Decidim::Core::TranslatedFieldType, "The objectives of the conference", null: true
30
- field :show_statistics, GraphQL::Types::Boolean, "If this conference shows the statistics", null: true
31
- field :start_date, Decidim::Core::DateType, "The date this conference starts", null: true
32
- field :end_date, Decidim::Core::DateType, "The date this conference ends", null: true
33
- field :registrations_enabled, GraphQL::Types::Boolean, "If the registrations are enabled in this conference", null: true
34
- field :available_slots, GraphQL::Types::Int, "The number of available slots in this conference", null: true
35
30
  field :registration_terms, Decidim::Core::TranslatedFieldType, "The registration terms of this conference", null: true
36
-
31
+ field :registrations_enabled, GraphQL::Types::Boolean, "If the registrations are enabled in this conference", null: true
32
+ field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this conference", null: true
33
+ field :show_statistics, GraphQL::Types::Boolean, "If this conference shows the statistics", null: true
34
+ field :slogan, Decidim::Core::TranslatedFieldType, "The slogan of the conference", null: true
35
+ field :slug, GraphQL::Types::String, "The slug of this conference", null: true
37
36
  field :speakers, [Decidim::Conferences::ConferenceSpeakerType, { null: true }], "List of speakers in this conference", null: true
38
- field :partners, [Decidim::Conferences::ConferencePartnerType, { null: true }], "List of partners in this conference", null: true
39
- field :media_links, [Decidim::Conferences::ConferenceMediaLinkType, { null: true }], "List of media links in this conference", null: true
37
+ field :start_date, Decidim::Core::DateType, "The date this conference starts", null: true
40
38
 
41
39
  def hero_image
42
40
  object.attached_uploader(:hero_image).url
@@ -15,89 +15,118 @@ module Decidim
15
15
  paths["lib/tasks"] = nil
16
16
 
17
17
  routes do
18
- resources :conferences, param: :slug, except: [:show, :destroy] do
19
- resource :publish, controller: "conference_publications", only: [:create, :destroy]
20
- resources :copies, controller: "conference_copies", only: [:new, :create]
21
- resources :speakers, controller: "conference_speakers" do
22
- member do
23
- put :publish
24
- put :unpublish
18
+ constraints(->(request) { Decidim::Admin::OrganizationDashboardConstraint.new(request).matches? }) do
19
+ resources :conferences, param: :slug, except: [:show, :destroy] do
20
+ resource :publish, controller: "conference_publications", only: [:create, :destroy]
21
+ resources :copies, controller: "conference_copies", only: [:new, :create]
22
+ resources :speakers, controller: "conference_speakers" do
23
+ member do
24
+ put :publish
25
+ put :unpublish
26
+ end
25
27
  end
26
- end
27
- resources :partners, controller: "partners", except: [:show]
28
- resources :media_links, controller: "media_links"
29
- resources :registration_types, controller: "registration_types" do
30
- resource :publish, controller: "registration_type_publications", only: [:create, :destroy]
31
- collection do
32
- get :conference_meetings
28
+ resources :partners, controller: "partners", except: [:show]
29
+ resources :media_links, controller: "media_links"
30
+ resources :registration_types, controller: "registration_types" do
31
+ resource :publish, controller: "registration_type_publications", only: [:create, :destroy]
32
+ collection do
33
+ get :conference_meetings
34
+ end
33
35
  end
34
- end
35
- resources :conference_invites, only: [:index, :new, :create]
36
- resources :conference_registrations, only: :index do
37
- member do
38
- post :confirm
36
+ resources :conference_invites, only: [:index, :new, :create]
37
+ resources :conference_registrations, only: :index do
38
+ member do
39
+ post :confirm
40
+ end
41
+ collection do
42
+ get :export
43
+ end
39
44
  end
40
- collection do
41
- get :export
45
+ resource :diploma, only: [:edit, :update] do
46
+ member do
47
+ post :send, to: "diplomas#send_diplomas"
48
+ end
42
49
  end
43
- end
44
- resource :diploma, only: [:edit, :update] do
45
- member do
46
- post :send, to: "diplomas#send_diplomas"
50
+ resources :user_roles, controller: "conference_user_roles" do
51
+ member do
52
+ post :resend_invitation, to: "conference_user_roles#resend_invitation"
53
+ end
47
54
  end
48
- end
49
- resources :user_roles, controller: "conference_user_roles" do
55
+
50
56
  member do
51
- post :resend_invitation, to: "conference_user_roles#resend_invitation"
57
+ patch :soft_delete
58
+ patch :restore
52
59
  end
53
- end
54
60
 
55
- resources :attachment_collections, controller: "conference_attachment_collections", except: [:show]
56
- resources :attachments, controller: "conference_attachments", except: [:show]
57
- end
61
+ collection do
62
+ get :manage_trash, to: "conferences#manage_trash"
63
+ end
58
64
 
59
- scope "/conferences/:conference_slug" do
60
- resources :categories, except: [:show]
65
+ resources :attachment_collections, controller: "conference_attachment_collections", except: [:show]
66
+ resources :attachments, controller: "conference_attachments", except: [:show]
67
+ end
61
68
 
62
- resources :components do
63
- resource :permissions, controller: "component_permissions"
64
- member do
65
- put :publish
66
- put :unpublish
67
- get :share
68
- end
69
- resources :exports, only: :create
70
- resources :imports, only: [:new, :create] do
71
- get :example, on: :collection
69
+ scope "/conferences/:conference_slug" do
70
+ resources :components do
71
+ collection do
72
+ put :reorder
73
+ end
74
+ resource :permissions, controller: "component_permissions"
75
+ member do
76
+ put :publish
77
+ put :unpublish
78
+ get :share
79
+ patch :soft_delete
80
+ patch :restore
81
+ end
82
+ collection do
83
+ get :manage_trash, to: "components#manage_trash"
84
+ put :hide
85
+ end
86
+ resources :component_share_tokens, except: [:show], path: "share_tokens", as: "share_tokens"
87
+ resources :exports, only: :create
88
+ resources :imports, only: [:new, :create] do
89
+ get :example, on: :collection
90
+ end
91
+ resources :reminders, only: [:new, :create]
72
92
  end
73
- resources :reminders, only: [:new, :create]
74
- end
75
93
 
76
- resources :moderations do
77
- member do
78
- put :unreport
79
- put :hide
80
- put :unhide
94
+ resources :moderations do
95
+ member do
96
+ put :unreport
97
+ put :hide
98
+ put :unhide
99
+ end
100
+ patch :bulk_action, on: :collection
101
+ resources :reports, controller: "moderations/reports", only: [:index, :show]
81
102
  end
82
- resources :reports, controller: "moderations/reports", only: [:index, :show]
103
+
104
+ resources :conference_share_tokens, except: [:show], path: "share_tokens"
83
105
  end
84
- end
85
106
 
86
- scope "/conferences/:conference_slug/components/:component_id/manage" do
87
- Decidim.component_manifests.each do |manifest|
88
- next unless manifest.admin_engine
107
+ scope "/conferences/:conference_slug/components/:component_id/manage" do
108
+ Decidim.component_manifests.each do |manifest|
109
+ next unless manifest.admin_engine
89
110
 
90
- constraints CurrentComponent.new(manifest) do
91
- mount manifest.admin_engine, at: "/", as: "decidim_admin_conference_#{manifest.name}"
111
+ constraints CurrentComponent.new(manifest) do
112
+ mount manifest.admin_engine, at: "/", as: "decidim_admin_conference_#{manifest.name}"
113
+ end
92
114
  end
93
115
  end
94
116
  end
95
117
  end
96
118
 
119
+ initializer "decidim_conferences_admin.mount_routes" do
120
+ Decidim::Core::Engine.routes do
121
+ mount Decidim::Conferences::AdminEngine, at: "/admin", as: "decidim_admin_conferences"
122
+ end
123
+ end
124
+
97
125
  initializer "decidim_conferences_admin.menu" do
98
126
  Decidim::Conferences::Menu.register_admin_conferences_components_menu!
99
127
  Decidim::Conferences::Menu.register_conferences_admin_registrations_menu!
100
128
  Decidim::Conferences::Menu.register_conferences_admin_attachments_menu!
129
+ Decidim::Conferences::Menu.register_conference_admin_menu!
101
130
  Decidim::Conferences::Menu.register_conferences_admin_menu!
102
131
  Decidim::Conferences::Menu.register_admin_menu_modules!
103
132
  end