decidim-conferences 0.15.1

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.
Files changed (232) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +38 -0
  3. data/Rakefile +3 -0
  4. data/app/assets/config/admin/decidim_conferences_manifest.js +2 -0
  5. data/app/assets/config/decidim_conferences_manifest.js +2 -0
  6. data/app/assets/images/decidim/conferences/conference.svg +6 -0
  7. data/app/assets/javascripts/decidim/conferences/admin/conference_invite_form.es6 +25 -0
  8. data/app/assets/javascripts/decidim/conferences/admin/conference_speakers.js.es6 +26 -0
  9. data/app/assets/javascripts/decidim/conferences/admin/conferences.js.es6 +30 -0
  10. data/app/assets/javascripts/decidim/conferences/conferences.js.es6 +0 -0
  11. data/app/cells/decidim/conferences/conference_address/show.erb +11 -0
  12. data/app/cells/decidim/conferences/conference_address_cell.rb +11 -0
  13. data/app/cells/decidim/conferences/conference_cell.rb +19 -0
  14. data/app/cells/decidim/conferences/conference_m/footer.erb +9 -0
  15. data/app/cells/decidim/conferences/conference_m/tags.erb +1 -0
  16. data/app/cells/decidim/conferences/conference_m_cell.rb +38 -0
  17. data/app/cells/decidim/conferences/conference_speaker/show.erb +84 -0
  18. data/app/cells/decidim/conferences/conference_speaker_cell.rb +86 -0
  19. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences/show.erb +31 -0
  20. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_cell.rb +28 -0
  21. data/app/cells/decidim/conferences/join_conference_button/registration_confirm.erb +15 -0
  22. data/app/cells/decidim/conferences/join_conference_button/show.erb +25 -0
  23. data/app/cells/decidim/conferences/join_conference_button_cell.rb +42 -0
  24. data/app/cells/decidim/conferences/linked_participatory_spaces/show.erb +10 -0
  25. data/app/cells/decidim/conferences/linked_participatory_spaces_cell.rb +44 -0
  26. data/app/cells/decidim/conferences/media_link/show.erb +9 -0
  27. data/app/cells/decidim/conferences/media_link_cell.rb +14 -0
  28. data/app/cells/decidim/conferences/partner/show.erb +11 -0
  29. data/app/cells/decidim/conferences/partner_cell.rb +24 -0
  30. data/app/cells/decidim/conferences/photo/show.erb +28 -0
  31. data/app/cells/decidim/conferences/photo_cell.rb +41 -0
  32. data/app/cells/decidim/conferences/photos_list/show.erb +8 -0
  33. data/app/cells/decidim/conferences/photos_list_cell.rb +17 -0
  34. data/app/commands/decidim/conferences/admin/copy_conference.rb +80 -0
  35. data/app/commands/decidim/conferences/admin/create_conference.rb +120 -0
  36. data/app/commands/decidim/conferences/admin/create_conference_admin.rb +112 -0
  37. data/app/commands/decidim/conferences/admin/create_conference_speaker.rb +81 -0
  38. data/app/commands/decidim/conferences/admin/create_media_link.rb +66 -0
  39. data/app/commands/decidim/conferences/admin/create_partner.rb +68 -0
  40. data/app/commands/decidim/conferences/admin/destroy_conference_admin.rb +53 -0
  41. data/app/commands/decidim/conferences/admin/destroy_conference_speaker.rb +56 -0
  42. data/app/commands/decidim/conferences/admin/destroy_media_link.rb +56 -0
  43. data/app/commands/decidim/conferences/admin/destroy_partner.rb +56 -0
  44. data/app/commands/decidim/conferences/admin/export_conference_registrations.rb +44 -0
  45. data/app/commands/decidim/conferences/admin/invite_user_to_join_conference.rb +107 -0
  46. data/app/commands/decidim/conferences/admin/publish_conference.rb +39 -0
  47. data/app/commands/decidim/conferences/admin/unpublish_conference.rb +39 -0
  48. data/app/commands/decidim/conferences/admin/update_conference.rb +161 -0
  49. data/app/commands/decidim/conferences/admin/update_conference_admin.rb +52 -0
  50. data/app/commands/decidim/conferences/admin/update_conference_speaker.rb +80 -0
  51. data/app/commands/decidim/conferences/admin/update_media_link.rb +64 -0
  52. data/app/commands/decidim/conferences/admin/update_partner.rb +63 -0
  53. data/app/commands/decidim/conferences/decline_invitation.rb +45 -0
  54. data/app/commands/decidim/conferences/join_conference.rb +88 -0
  55. data/app/commands/decidim/conferences/leave_conference.rb +52 -0
  56. data/app/constraints/decidim/conferences/current_component.rb +28 -0
  57. data/app/constraints/decidim/conferences/current_conference.rb +43 -0
  58. data/app/controllers/concerns/decidim/conferences/admin/conference_context.rb +19 -0
  59. data/app/controllers/decidim/conferences/admin/application_controller.rb +25 -0
  60. data/app/controllers/decidim/conferences/admin/categories_controller.rb +13 -0
  61. data/app/controllers/decidim/conferences/admin/component_permissions_controller.rb +14 -0
  62. data/app/controllers/decidim/conferences/admin/components_controller.rb +14 -0
  63. data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +48 -0
  64. data/app/controllers/decidim/conferences/admin/conference_attachment_collections_controller.rb +26 -0
  65. data/app/controllers/decidim/conferences/admin/conference_attachments_controller.rb +27 -0
  66. data/app/controllers/decidim/conferences/admin/conference_copies_controller.rb +35 -0
  67. data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +55 -0
  68. data/app/controllers/decidim/conferences/admin/conference_publications_controller.rb +45 -0
  69. data/app/controllers/decidim/conferences/admin/conference_registrations_controller.rb +39 -0
  70. data/app/controllers/decidim/conferences/admin/conference_speakers_controller.rb +86 -0
  71. data/app/controllers/decidim/conferences/admin/conference_user_roles_controller.rb +101 -0
  72. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +103 -0
  73. data/app/controllers/decidim/conferences/admin/exports_controller.rb +14 -0
  74. data/app/controllers/decidim/conferences/admin/media_links_controller.rb +82 -0
  75. data/app/controllers/decidim/conferences/admin/moderations_controller.rb +12 -0
  76. data/app/controllers/decidim/conferences/admin/partners_controller.rb +83 -0
  77. data/app/controllers/decidim/conferences/application_controller.rb +32 -0
  78. data/app/controllers/decidim/conferences/conference_program_controller.rb +50 -0
  79. data/app/controllers/decidim/conferences/conference_registrations_controller.rb +68 -0
  80. data/app/controllers/decidim/conferences/conference_speakers_controller.rb +39 -0
  81. data/app/controllers/decidim/conferences/conference_widgets_controller.rb +23 -0
  82. data/app/controllers/decidim/conferences/conferences_controller.rb +59 -0
  83. data/app/controllers/decidim/conferences/media_controller.rb +41 -0
  84. data/app/events/decidim/conferences/conference_registrations_enabled_event.rb +8 -0
  85. data/app/events/decidim/conferences/conference_registrations_over_percentage_event.rb +13 -0
  86. data/app/events/decidim/conferences/upcoming_conference_event.rb +8 -0
  87. data/app/events/decidim/conferences/update_conference_event.rb +8 -0
  88. data/app/forms/decidim/conferences/admin/conference_copy_form.rb +34 -0
  89. data/app/forms/decidim/conferences/admin/conference_form.rb +109 -0
  90. data/app/forms/decidim/conferences/admin/conference_registration_invite_form.rb +24 -0
  91. data/app/forms/decidim/conferences/admin/conference_speaker_form.rb +76 -0
  92. data/app/forms/decidim/conferences/admin/conference_user_role_form.rb +30 -0
  93. data/app/forms/decidim/conferences/admin/media_link_form.rb +42 -0
  94. data/app/forms/decidim/conferences/admin/partner_form.rb +53 -0
  95. data/app/helpers/decidim/conferences/admin/conference_speakers_helper.rb +14 -0
  96. data/app/helpers/decidim/conferences/admin/conferences_helper.rb +28 -0
  97. data/app/helpers/decidim/conferences/conference_program_helper.rb +21 -0
  98. data/app/helpers/decidim/conferences/media_attachments_helper.rb +29 -0
  99. data/app/helpers/decidim/conferences/partners_helper.rb +15 -0
  100. data/app/jobs/decidim/conferences/upcoming_conference_notification_job.rb +33 -0
  101. data/app/mailers/decidim/conferences/admin/invite_join_conference_mailer.rb +43 -0
  102. data/app/mailers/decidim/conferences/conference_registration_mailer.rb +44 -0
  103. data/app/models/decidim/conference.rb +90 -0
  104. data/app/models/decidim/conference_meeting.rb +9 -0
  105. data/app/models/decidim/conference_speaker.rb +34 -0
  106. data/app/models/decidim/conference_speaker_conference_meeting.rb +8 -0
  107. data/app/models/decidim/conference_user_role.rb +30 -0
  108. data/app/models/decidim/conferences/conference_invite.rb +38 -0
  109. data/app/models/decidim/conferences/conference_registration.rb +23 -0
  110. data/app/models/decidim/conferences/media_link.rb +17 -0
  111. data/app/models/decidim/conferences/partner.rb +25 -0
  112. data/app/permissions/decidim/conferences/permissions.rb +304 -0
  113. data/app/presenters/decidim/admin/conference_speaker_presenter.rb +18 -0
  114. data/app/presenters/decidim/conference_meeting_presenter.rb +7 -0
  115. data/app/presenters/decidim/conference_speaker_presenter.rb +42 -0
  116. data/app/presenters/decidim/conferences/admin_log/conference_invite_presenter.rb +35 -0
  117. data/app/presenters/decidim/conferences/admin_log/conference_speaker_presenter.rb +52 -0
  118. data/app/presenters/decidim/conferences/admin_log/conferences_presenter.rb +55 -0
  119. data/app/presenters/decidim/conferences/admin_log/conferences_user_role_presenter.rb +53 -0
  120. data/app/presenters/decidim/conferences/admin_log/media_link_presenter.rb +45 -0
  121. data/app/presenters/decidim/conferences/admin_log/partner_presenter.rb +47 -0
  122. data/app/presenters/decidim/conferences/admin_log/value_types/role_presenter.rb +22 -0
  123. data/app/presenters/decidim/conferences/conference_invite_presenter.rb +26 -0
  124. data/app/presenters/decidim/conferences/conference_stats_presenter.rb +52 -0
  125. data/app/presenters/decidim/log/value_types/conference_presenter.rb +28 -0
  126. data/app/queries/decidim/conferences/admin/admin_users.rb +39 -0
  127. data/app/queries/decidim/conferences/admin/conference_invites.rb +59 -0
  128. data/app/queries/decidim/conferences/admin/conference_speakers.rb +40 -0
  129. data/app/queries/decidim/conferences/conference_program_meetings.rb +17 -0
  130. data/app/queries/decidim/conferences/conference_program_meetings_by_day.rb +20 -0
  131. data/app/queries/decidim/conferences/conferences_with_user_role.rb +48 -0
  132. data/app/queries/decidim/conferences/organization_conferences.rb +16 -0
  133. data/app/queries/decidim/conferences/organization_prioritized_conferences.rb +21 -0
  134. data/app/queries/decidim/conferences/organization_published_conferences.rb +21 -0
  135. data/app/queries/decidim/conferences/prioritized_conferences.rb +13 -0
  136. data/app/queries/decidim/conferences/promoted_conferences.rb +12 -0
  137. data/app/queries/decidim/conferences/published_conferences.rb +12 -0
  138. data/app/queries/decidim/conferences/visible_conferences.rb +12 -0
  139. data/app/serializers/decidim/conferences/conference_registration_serializer.rb +18 -0
  140. data/app/serializers/decidim/conferences/data_portability_conference_invite_serializer.rb +31 -0
  141. data/app/serializers/decidim/conferences/data_portability_conference_registration_serializer.rb +28 -0
  142. data/app/uploaders/decidim/conferences/partner_logo_uploader.rb +15 -0
  143. data/app/views/decidim/conference_speakers/_conference_speaker.html.erb +1 -0
  144. data/app/views/decidim/conferences/_conference.html.erb +1 -0
  145. data/app/views/decidim/conferences/_order_by_conferences.html.erb +3 -0
  146. data/app/views/decidim/conferences/admin/conference_copies/_form.html.erb +37 -0
  147. data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +7 -0
  148. data/app/views/decidim/conferences/admin/conference_invites/_form.html.erb +30 -0
  149. data/app/views/decidim/conferences/admin/conference_invites/index.html.erb +83 -0
  150. data/app/views/decidim/conferences/admin/conference_invites/new.html.erb +21 -0
  151. data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +43 -0
  152. data/app/views/decidim/conferences/admin/conference_speakers/_form.html.erb +61 -0
  153. data/app/views/decidim/conferences/admin/conference_speakers/edit.html.erb +7 -0
  154. data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +68 -0
  155. data/app/views/decidim/conferences/admin/conference_speakers/new.html.erb +7 -0
  156. data/app/views/decidim/conferences/admin/conference_user_roles/_form.html.erb +22 -0
  157. data/app/views/decidim/conferences/admin/conference_user_roles/edit.html.erb +7 -0
  158. data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +65 -0
  159. data/app/views/decidim/conferences/admin/conference_user_roles/new.html.erb +7 -0
  160. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +122 -0
  161. data/app/views/decidim/conferences/admin/conferences/edit.html.erb +18 -0
  162. data/app/views/decidim/conferences/admin/conferences/index.html.erb +65 -0
  163. data/app/views/decidim/conferences/admin/conferences/new.html.erb +11 -0
  164. data/app/views/decidim/conferences/admin/invite_join_conference_mailer/invite.html.erb +12 -0
  165. data/app/views/decidim/conferences/admin/media_links/_form.html.erb +25 -0
  166. data/app/views/decidim/conferences/admin/media_links/edit.html.erb +7 -0
  167. data/app/views/decidim/conferences/admin/media_links/index.html.erb +51 -0
  168. data/app/views/decidim/conferences/admin/media_links/new.html.erb +7 -0
  169. data/app/views/decidim/conferences/admin/partners/_form.html.erb +30 -0
  170. data/app/views/decidim/conferences/admin/partners/edit.html.erb +7 -0
  171. data/app/views/decidim/conferences/admin/partners/index.html.erb +56 -0
  172. data/app/views/decidim/conferences/admin/partners/new.html.erb +7 -0
  173. data/app/views/decidim/conferences/conference_program/_program_item.html.erb +31 -0
  174. data/app/views/decidim/conferences/conference_program/_program_meeting.html.erb +68 -0
  175. data/app/views/decidim/conferences/conference_program/show.html.erb +54 -0
  176. data/app/views/decidim/conferences/conference_registration_mailer/confirmation.html.erb +3 -0
  177. data/app/views/decidim/conferences/conference_speakers/index.html.erb +19 -0
  178. data/app/views/decidim/conferences/conference_widgets/show.html.erb +11 -0
  179. data/app/views/decidim/conferences/conferences/_conferences_sidebar.html.erb +11 -0
  180. data/app/views/decidim/conferences/conferences/_partners.html.erb +15 -0
  181. data/app/views/decidim/conferences/conferences/_promoted_conference.html.erb +27 -0
  182. data/app/views/decidim/conferences/conferences/_statistics.html.erb +10 -0
  183. data/app/views/decidim/conferences/conferences/index.html.erb +25 -0
  184. data/app/views/decidim/conferences/conferences/show.html.erb +105 -0
  185. data/app/views/decidim/conferences/media/_attachments.html.erb +6 -0
  186. data/app/views/decidim/conferences/media/index.html.erb +31 -0
  187. data/app/views/devise/mailer/join_conference.html.erb +13 -0
  188. data/app/views/devise/mailer/join_conference.text.erb +11 -0
  189. data/app/views/layouts/decidim/_conference_hero.html.erb +44 -0
  190. data/app/views/layouts/decidim/_conferences_nav.html.erb +90 -0
  191. data/app/views/layouts/decidim/admin/conference.html.erb +100 -0
  192. data/app/views/layouts/decidim/admin/conferences.html.erb +11 -0
  193. data/app/views/layouts/decidim/conference.html.erb +28 -0
  194. data/config/locales/ca.yml +464 -0
  195. data/config/locales/de.yml +464 -0
  196. data/config/locales/en.yml +467 -0
  197. data/config/locales/es-PY.yml +464 -0
  198. data/config/locales/es.yml +464 -0
  199. data/config/locales/eu.yml +464 -0
  200. data/config/locales/fi.yml +464 -0
  201. data/config/locales/fr.yml +464 -0
  202. data/config/locales/gl.yml +464 -0
  203. data/config/locales/hu.yml +464 -0
  204. data/config/locales/it.yml +464 -0
  205. data/config/locales/nl.yml +464 -0
  206. data/config/locales/pl.yml +476 -0
  207. data/config/locales/pt-BR.yml +464 -0
  208. data/config/locales/pt.yml +464 -0
  209. data/config/locales/ru.yml +1 -0
  210. data/config/locales/sv.yml +464 -0
  211. data/config/locales/uk.yml +1 -0
  212. data/db/migrate/20180626151505_add_conferences.rb +40 -0
  213. data/db/migrate/20180626152015_add_conference_user_roles.rb +17 -0
  214. data/db/migrate/20180702084256_add_conference_speakers.rb +19 -0
  215. data/db/migrate/20180706104306_add_conference_invites.rb +16 -0
  216. data/db/migrate/20180706104825_add_conference_registrations.rb +17 -0
  217. data/db/migrate/20181004144411_add_conferences_partner.rb +18 -0
  218. data/db/migrate/20181010133930_add_relation_between_speaker_and_meeting.rb +10 -0
  219. data/db/migrate/20181015100301_add_conference_media_link.rb +15 -0
  220. data/db/seeds/Exampledocument.pdf +0 -0
  221. data/db/seeds/city.jpeg +0 -0
  222. data/db/seeds/city2.jpeg +0 -0
  223. data/db/seeds/homepage_image.jpg +0 -0
  224. data/db/seeds/logo.png +0 -0
  225. data/lib/decidim/conferences.rb +12 -0
  226. data/lib/decidim/conferences/admin.rb +10 -0
  227. data/lib/decidim/conferences/admin_engine.rb +86 -0
  228. data/lib/decidim/conferences/engine.rb +80 -0
  229. data/lib/decidim/conferences/participatory_space.rb +177 -0
  230. data/lib/decidim/conferences/test/factories.rb +153 -0
  231. data/lib/decidim/conferences/version.rb +10 -0
  232. metadata +330 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ce205f1fb75600c4d976b328d923dc03bb51751139ef47f3ba89055e8bd2a4d9
4
+ data.tar.gz: 01fa65479b7451859b69f38f8d6f6a77f5fa0965dab90ce50bca00dee0735a02
5
+ SHA512:
6
+ metadata.gz: 4a14ccd3689e0b72f7519ac36f218999c5e06b34ba58a484f1833b9b7f9bacf579af884f85e783e00da9c5d22d4b33e4a1fff7c1a08791b5e216e4be35585cbc
7
+ data.tar.gz: 224d0471a284fd188bc581009233a5cc24fc214c194aa694916da89c59abad0d1c7b2c05ea50257cb068f42731c590732641f2eeaf72bce551f06ab88a5171c9
data/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Decidim::Conferences
2
+
3
+ Conferences are the permanent Decidim's participatory space. They are always
4
+ "active" so unlike participatory processes, they have no steps or phases.
5
+
6
+ A conference can get different components (such as blogs or proposals) attached.
7
+ It can also have attachments, be associated to custom categories or scopes, and
8
+ can be fully managed via an administration UI.
9
+
10
+ ## Usage
11
+
12
+ This module provides:
13
+
14
+ * A CRUD engine to manage conferences.
15
+
16
+ * Public views for conference via a high level section in the main menu.
17
+
18
+ ## Installation
19
+
20
+ Add this line to your application's Gemfile:
21
+
22
+ ```ruby
23
+ gem 'decidim-conferences'
24
+ ```
25
+
26
+ And then execute:
27
+
28
+ ```bash
29
+ bundle
30
+ ```
31
+
32
+ ## Contributing
33
+
34
+ See [Decidim](https://github.com/decidim/decidim).
35
+
36
+ ## License
37
+
38
+ See [Decidim](https://github.com/decidim/decidim).
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "decidim/dev/common_rake"
@@ -0,0 +1,2 @@
1
+ //= link decidim/conferences/admin/conferences.js
2
+ //= link decidim/conferences/admin/conference_speakers.js
@@ -0,0 +1,2 @@
1
+ //= link_directory ../images/decidim/conferences
2
+ //= link_directory ../javascripts/decidim/conferences
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36.02 36.02">
2
+ <path d="M883.8,543.84a18,18,0,1,1,18-18A18,18,0,0,1,883.8,543.84Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,883.8,509.83Z" transform="translate(-865.8 -507.83)" />
3
+ <ellipse ry="5.504777" rx="5.5598245" cy="17.971844" cx="18" />
4
+ <path d="M883.8,543.84a18,18,0,1,1,18-18A18,18,0,0,1,883.8,543.84Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,883.8,509.83Z" transform="translate(-865.8 -507.83)" />
5
+ <path d="m 6.3078227,-25.154474 a 9.3338938,9.0435648 0 0 1 -8.7369752,9.025052 9.3338938,9.0435648 0 0 1 -9.8544645,-7.870717 9.3338938,9.0435648 0 0 1 7.4765554,-10.031744" transform="matrix(-0.78352169,0.62136443,-0.62136443,-0.78352169,0,0)" class="stroked-shape" />
6
+ </svg>
@@ -0,0 +1,25 @@
1
+ ((exports) => {
2
+ const { createFieldDependentInputs } = exports.DecidimAdmin;
3
+
4
+ const $attendeeType = $('[name="conference_registration_invite[existing_user]"');
5
+
6
+ createFieldDependentInputs({
7
+ controllerField: $attendeeType,
8
+ wrapperSelector: ".attendee-fields",
9
+ dependentFieldsSelector: ".attendee-fields--new-user",
10
+ dependentInputSelector: "input",
11
+ enablingCondition: () => {
12
+ return $("#conference_registration_invite_existing_user_false").is(":checked")
13
+ }
14
+ });
15
+
16
+ createFieldDependentInputs({
17
+ controllerField: $attendeeType,
18
+ wrapperSelector: ".attendee-fields",
19
+ dependentFieldsSelector: ".attendee-fields--user-picker",
20
+ dependentInputSelector: "input",
21
+ enablingCondition: () => {
22
+ return $("#conference_registration_invite_existing_user_true").is(":checked")
23
+ }
24
+ });
25
+ })(window);
@@ -0,0 +1,26 @@
1
+ ((exports) => {
2
+ const { createFieldDependentInputs } = exports.DecidimAdmin;
3
+
4
+ const $conferenceSpeakerType = $("#conference_speaker_existing_user");
5
+
6
+ createFieldDependentInputs({
7
+ controllerField: $conferenceSpeakerType,
8
+ wrapperSelector: ".user-fields",
9
+ dependentFieldsSelector: ".user-fields--full-name",
10
+ dependentInputSelector: "input",
11
+ enablingCondition: ($field) => {
12
+ return $field.val() === "false"
13
+ }
14
+ });
15
+
16
+ createFieldDependentInputs({
17
+ controllerField: $conferenceSpeakerType,
18
+ wrapperSelector: ".user-fields",
19
+ dependentFieldsSelector: ".user-fields--user-picker",
20
+ dependentInputSelector: "input",
21
+ enablingCondition: ($field) => {
22
+ return $field.val() === "true"
23
+ }
24
+ });
25
+
26
+ })(window);
@@ -0,0 +1,30 @@
1
+ $(() => {
2
+ ((exports) => {
3
+ const $conferenceScopeEnabled = $("#conference_scopes_enabled");
4
+ const $conferenceScopeId = $("#conference_scope_id");
5
+ const $form = $(".edit_conference, .new_conference");
6
+
7
+ if ($form.length > 0) {
8
+ $conferenceScopeEnabled.on("change", (event) => {
9
+ const checked = event.target.checked;
10
+ exports.theDataPicker.enabled($conferenceScopeId, checked);
11
+ })
12
+ exports.theDataPicker.enabled($conferenceScopeId, $conferenceScopeEnabled.prop("checked"));
13
+
14
+ const $registrationsEnabled = $form.find("#conference_registrations_enabled");
15
+ const $availableSlots = $form.find("#conference_available_slots");
16
+ const toggleDisabledFields = () => {
17
+ const enabled = $registrationsEnabled.prop("checked");
18
+ $availableSlots.attr("disabled", !enabled);
19
+
20
+ $form.find("#conference_registrations_terms .editor-container").each((idx, node) => {
21
+ const quill = Quill.find(node);
22
+ quill.enable(enabled);
23
+ })
24
+ };
25
+ $registrationsEnabled.on("change", toggleDisabledFields);
26
+ toggleDisabledFields();
27
+ }
28
+
29
+ })(window);
30
+ });
@@ -0,0 +1,11 @@
1
+ <div class="mb-s">
2
+ <% if model.respond_to? :location %>
3
+ <div>
4
+ <strong><%= translated_attribute model.location %></strong><br />
5
+ </div>
6
+ <% end %>
7
+ <div class="text-medium"><%= model.address %></div>
8
+ <% if model.respond_to? :location_hints %>
9
+ <div class="text-medium"><%= translated_attribute model.location_hints %></div>
10
+ <% end %>
11
+ </div>
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ # This cell renders the address of a conference.
5
+ module Conferences
6
+ class ConferenceAddressCell < Decidim::ViewModel
7
+ include Cell::ViewModel::Partial
8
+ include LayoutHelper
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ # This cell renders the conference card for an instance of an Conference
6
+ # the default size is the Medium Card (:m)
7
+ class ConferenceCell < Decidim::ViewModel
8
+ def show
9
+ cell card_size, model
10
+ end
11
+
12
+ private
13
+
14
+ def card_size
15
+ "decidim/conferences/conference_m"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ <div class="card__footer card__footer--spaces">
2
+ <div class="card__support">
3
+ <%= link_to(
4
+ t("layouts.decidim.conferences.conference.take_part"),
5
+ resource_path,
6
+ class: "card__button button button--sc secondary light small"
7
+ ) %>
8
+ </div>
9
+ </div>
@@ -0,0 +1 @@
1
+ <%= render_hook :upcoming_meeting_for_card %>
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ # This cell renders the Medium (:m) conference card
6
+ # for an given instance of an Conference
7
+ class ConferenceMCell < Decidim::CardMCell
8
+ include Decidim::ViewHooksHelper
9
+
10
+ # Needed for the view hooks
11
+ def current_participatory_space
12
+ model
13
+ end
14
+
15
+ private
16
+
17
+ def has_image?
18
+ true
19
+ end
20
+
21
+ def resource_path
22
+ Decidim::Conferences::Engine.routes.url_helpers.conference_path(model)
23
+ end
24
+
25
+ def resource_image_path
26
+ model.hero_image.url
27
+ end
28
+
29
+ def statuses
30
+ [:creation_date, :follow]
31
+ end
32
+
33
+ def resource_icon
34
+ icon "conferences", class: "icon--big"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,84 @@
1
+ <div class="column conference-speaker js-conference">
2
+ <div class="speaker-img-wrapper">
3
+ <div class="speaker-img">
4
+ <%= image_tag avatar.url %>
5
+ </div>
6
+ </div>
7
+ <div class="speaker-data">
8
+ <div class="data-name"><%= name %></div>
9
+ <% if position.presence %>
10
+ <div class="data-role">
11
+ <%= position %>
12
+ </div>
13
+ <% end %>
14
+ <div class="data-extra">
15
+ <% if nickname.present? %>
16
+ <%= link_to profile_path, class: "card-link" do %>
17
+ <%= nickname %> <span><u><%= t(".more_info") %></u></span>
18
+ <% end %>
19
+ <% else %>
20
+ <div class="author__nickname">&nbsp;</div>
21
+ <% end %>
22
+ </div>
23
+ </div>
24
+ <div class="speaker-bio js-bio">
25
+ <div class="row">
26
+ <div class="column medium-6">
27
+ <div class="speaker-img-wrapper">
28
+ <div class="speaker-img">
29
+ <%= image_tag avatar.url %>
30
+ </div>
31
+ </div>
32
+ <div class="speaker-data">
33
+ <div class="data-name"><%= name %></div>
34
+ <% if position.presence %>
35
+ <div class="data-role"><%= position %></div>
36
+ <% end %>
37
+ <div class="data-extra">
38
+ <% if nickname.present? %>
39
+ <%= link_to profile_path, class: "card-link" do %>
40
+ <%= nickname %> <span><u><%= t(".more_info") %></u></span>
41
+ <% end %>
42
+ <% else %>
43
+ <div class="author__nickname">&nbsp;</div>
44
+ <% end %>
45
+ </div>
46
+ <% if personal_url.presence %>
47
+ <div>
48
+ <%= personal_url %>
49
+ </div>
50
+ <% end %>
51
+ <% if twitter_handle.presence %>
52
+ <div>
53
+ <%= twitter_handle %>
54
+ </div>
55
+ <% end %>
56
+ <% if affiliation.presence %>
57
+ <div>
58
+ <%= affiliation %>
59
+ </div>
60
+ <% end %>
61
+ </div>
62
+ </div>
63
+ <% if short_bio.presence %>
64
+ <div class="column medium-6 bio-extended">
65
+ <%= short_bio %>
66
+ </div>
67
+ <% end %>
68
+ </div>
69
+ <% if meetings.present? %>
70
+ <hr class="reset mt-none mb-s" />
71
+ <div class="row">
72
+ <div class="column medium-12">
73
+ <div class="bio-acts">Speaking at</div>
74
+
75
+ <ul class="list-reset">
76
+ <% meetings.each do |meeting| %>
77
+ <%= meeting_title meeting %> <br />
78
+ <% end %>
79
+ </ul>
80
+ </div>
81
+ </div>
82
+ <% end %>
83
+ </div>
84
+ </div>
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Conferences
5
+ # This cell renders the card for an instance of an Conference Speaker
6
+ class ConferenceSpeakerCell < Decidim::AuthorCell
7
+ include Decidim::Meetings::MeetingCellsHelper
8
+ include Cell::ViewModel::Partial
9
+ include Decidim::Conferences::Engine.routes.url_helpers
10
+ property :name
11
+ property :nickname
12
+ property :profile_path
13
+
14
+ def show
15
+ render
16
+ end
17
+
18
+ def speakers_list
19
+ cell(
20
+ "decidim/collapsible_list",
21
+ presenters_for_speakers(list),
22
+ cell_name: "decidim/author",
23
+ cell_options: options.merge(has_actions: false),
24
+ size: size
25
+ )
26
+ end
27
+
28
+ private
29
+
30
+ def list
31
+ @options[:list]
32
+ end
33
+
34
+ def size
35
+ @options[:size]
36
+ end
37
+
38
+ def presenters_for_speakers(speakers)
39
+ speakers.map { |speaker| present(speaker) }
40
+ end
41
+
42
+ def avatar
43
+ return model.user.avatar if model.user.present?
44
+ model.avatar
45
+ end
46
+
47
+ def has_profile?
48
+ model.profile_path.present?
49
+ end
50
+
51
+ def position
52
+ translated_attribute model.position
53
+ end
54
+
55
+ def affiliation
56
+ translated_attribute model.affiliation
57
+ end
58
+
59
+ def short_bio
60
+ return unless model.short_bio.presence
61
+ translated_attribute model.short_bio
62
+ end
63
+
64
+ def twitter_handle
65
+ return unless model.twitter_handle.presence
66
+ link_to t(".go_to_twitter"), "https://twitter.com/#{model.twitter_handle}", target: "_blank"
67
+ end
68
+
69
+ def personal_url
70
+ return unless model.personal_url.presence || (model.user.presence && model.user.personal_url.presence)
71
+ link_to model.personal_url || model.user.personal_url, target: "_blank", class: "card-link" do
72
+ "#{icon "external-link"}" "&nbsp;#{t(".personal_website")}"
73
+ end
74
+ end
75
+
76
+ def meetings
77
+ model.conference_meetings
78
+ end
79
+
80
+ def meeting_title(meeting)
81
+ meeting = meeting.becomes(Decidim::Meetings::Meeting)
82
+ link_to present(meeting).title, resource_locator(meeting).path
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,31 @@
1
+ <section class="wrapper-home home-section">
2
+ <div class="row" id="highlighted-conferences">
3
+ <h3 class="section-heading"><%= t("active_conferences", scope: i18n_scope) %></h3>
4
+ <div class="row collapse">
5
+ <div class="row small-up-1 smallmedium-up-2 mediumlarge-up-3
6
+ large-up-4 card-grid">
7
+ <% highlighted_conferences.each do |conference| %>
8
+ <div class="column">
9
+ <article class="card card--conference card--mini">
10
+ <%= link_to decidim_conferences.conference_path(conference), class: "card__link" do %>
11
+ <div class="card__image-top"
12
+ style="background-image:url(<%= conference.hero_image.url %>)"></div>
13
+ <% end %>
14
+ <div class="card__content">
15
+ <%= link_to decidim_conferences.conference_path(conference), class: "card__link" do %>
16
+ <h4 class="card__title"><%= translated_attribute conference.title %></h4>
17
+ <% end %>
18
+ </div>
19
+ </article>
20
+ </div>
21
+ <% end %>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <div class="row" id="see-all-conferences">
26
+ <div class="columns small-centered small-12
27
+ smallmedium-8 medium-6 large-4">
28
+ <%= link_to t("see_all_conferences", scope: i18n_scope), decidim_conferences.conferences_path, class: "button expanded hollow button--sc home-section__cta" %>
29
+ </div>
30
+ </div>
31
+ </section>