decidim-conferences 0.27.6 → 0.28.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/conferences/conference_cell.rb +9 -4
- data/app/cells/decidim/conferences/conference_dropdown_metadata_cell.rb +19 -0
- data/app/cells/decidim/conferences/conference_g_cell.rb +23 -0
- data/app/cells/decidim/conferences/conference_metadata_cell.rb +21 -0
- data/app/cells/decidim/conferences/conference_s_cell.rb +13 -0
- data/app/cells/decidim/conferences/conference_speaker/show.erb +44 -58
- data/app/cells/decidim/conferences/conference_speaker_cell.rb +4 -14
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_cell.rb +15 -14
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +3 -0
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form_cell.rb +19 -0
- data/app/cells/decidim/conferences/linked_participatory_spaces/show.erb +6 -8
- data/app/cells/decidim/conferences/linked_participatory_spaces_cell.rb +1 -10
- data/app/cells/decidim/conferences/media_link/show.erb +6 -8
- data/app/cells/decidim/conferences/partner/image.erb +3 -0
- data/app/cells/decidim/conferences/partner/show.erb +8 -8
- data/app/cells/decidim/conferences/partner/text.erb +1 -0
- data/app/cells/decidim/conferences/partner_cell.rb +4 -2
- data/app/cells/decidim/conferences/registration_type/join_conference.erb +15 -12
- data/app/cells/decidim/conferences/registration_type/registration_confirm.erb +12 -12
- data/app/cells/decidim/conferences/registration_type/show.erb +11 -14
- data/app/cells/decidim/conferences/registration_type_cell.rb +3 -3
- data/app/commands/decidim/conferences/admin/copy_conference.rb +1 -1
- data/app/commands/decidim/conferences/admin/create_conference.rb +2 -11
- data/app/commands/decidim/conferences/admin/create_conference_speaker.rb +2 -2
- data/app/commands/decidim/conferences/admin/create_media_link.rb +2 -2
- data/app/commands/decidim/conferences/admin/create_partner.rb +2 -2
- data/app/commands/decidim/conferences/admin/create_registration_type.rb +2 -2
- data/app/commands/decidim/conferences/admin/destroy_conference_speaker.rb +2 -2
- data/app/commands/decidim/conferences/admin/destroy_media_link.rb +1 -1
- data/app/commands/decidim/conferences/admin/destroy_partner.rb +3 -3
- data/app/commands/decidim/conferences/admin/destroy_registration_type.rb +1 -1
- data/app/commands/decidim/conferences/admin/invite_user_to_join_conference.rb +5 -5
- data/app/commands/decidim/conferences/admin/publish_conference.rb +9 -26
- data/app/commands/decidim/conferences/admin/send_conference_diplomas.rb +1 -1
- data/app/commands/decidim/conferences/admin/update_conference.rb +2 -11
- data/app/commands/decidim/conferences/admin/update_conference_speaker.rb +1 -1
- data/app/commands/decidim/conferences/admin/update_media_link.rb +1 -1
- data/app/commands/decidim/conferences/admin/update_partner.rb +1 -1
- data/app/commands/decidim/conferences/admin/update_registration_type.rb +1 -1
- data/app/commands/decidim/conferences/decline_invitation.rb +1 -1
- data/app/commands/decidim/conferences/join_conference.rb +5 -5
- data/app/constraints/decidim/conferences/current_component.rb +2 -2
- data/app/constraints/decidim/conferences/current_conference.rb +2 -2
- data/app/controllers/concerns/decidim/conferences/admin/conference_context.rb +1 -1
- data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +2 -2
- data/app/controllers/decidim/conferences/admin/conference_attachment_collections_controller.rb +6 -1
- data/app/controllers/decidim/conferences/admin/conference_attachments_controller.rb +5 -0
- data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +2 -1
- data/app/controllers/decidim/conferences/admin/conference_publications_controller.rb +10 -28
- data/app/controllers/decidim/conferences/admin/conference_registrations_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/conference_user_roles_controller.rb +8 -90
- data/app/controllers/decidim/conferences/admin/conferences_controller.rb +2 -0
- data/app/controllers/decidim/conferences/admin/diplomas_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/exports_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/imports_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/moderations/reports_controller.rb +1 -1
- data/app/controllers/decidim/conferences/admin/moderations_controller.rb +1 -1
- data/app/controllers/decidim/conferences/application_controller.rb +6 -0
- data/app/controllers/decidim/conferences/conference_registrations_controller.rb +3 -3
- data/app/controllers/decidim/conferences/conferences_controller.rb +9 -2
- data/app/events/decidim/conferences/conference_registration_notification_event.rb +3 -13
- data/app/events/decidim/conferences/conference_registrations_enabled_event.rb +1 -1
- data/app/events/decidim/conferences/conference_registrations_over_percentage_event.rb +1 -1
- data/app/events/decidim/conferences/conference_role_assigned_event.rb +6 -6
- data/app/forms/decidim/conferences/admin/conference_copy_form.rb +1 -1
- data/app/forms/decidim/conferences/admin/conference_form.rb +4 -15
- data/app/forms/decidim/conferences/admin/conference_user_role_form.rb +2 -17
- data/app/helpers/decidim/conferences/admin/conferences_helper.rb +0 -4
- data/app/helpers/decidim/conferences/conference_helper.rb +55 -0
- data/app/helpers/decidim/conferences/conference_program_helper.rb +1 -1
- data/app/helpers/decidim/conferences/media_attachments_helper.rb +0 -10
- data/app/helpers/decidim/conferences/partners_helper.rb +3 -1
- data/app/mailers/decidim/conferences/admin/invite_join_conference_mailer.rb +1 -1
- data/app/mailers/decidim/conferences/admin/send_conference_diploma_mailer.rb +1 -1
- data/app/mailers/decidim/conferences/conference_registration_mailer.rb +2 -2
- data/app/models/decidim/conference.rb +4 -4
- data/app/models/decidim/conference_user_role.rb +6 -34
- data/app/packs/entrypoints/decidim_conferences.js +5 -0
- data/app/packs/src/decidim/conferences/admin/conferences.js +6 -6
- data/app/packs/stylesheets/decidim/conferences/_conference.scss +102 -0
- data/app/packs/stylesheets/decidim/conferences/_media.scss +13 -0
- data/app/packs/stylesheets/decidim/conferences/_program.scss +43 -0
- data/app/packs/stylesheets/decidim/conferences/_registration.scss +39 -0
- data/app/packs/stylesheets/decidim/conferences/_speaker.scss +83 -0
- data/app/packs/stylesheets/decidim/conferences/conferences.scss +5 -3
- data/app/permissions/decidim/conferences/permissions.rb +2 -13
- data/app/presenters/decidim/conference_speaker_presenter.rb +1 -1
- data/app/presenters/decidim/conferences/admin_log/conference_invite_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/conference_registration_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/conference_speaker_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/conference_user_role_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/media_link_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/partner_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/admin_log/registration_type_presenter.rb +2 -2
- data/app/presenters/decidim/conferences/conference_stats_presenter.rb +3 -28
- data/app/queries/decidim/conferences/admin/admin_users.rb +4 -4
- data/app/queries/decidim/conferences/conferences_with_user_role.rb +2 -2
- data/app/queries/decidim/conferences/organization_conferences.rb +1 -1
- data/app/queries/decidim/conferences/organization_published_conferences.rb +1 -1
- data/app/views/decidim/conferences/admin/conference_copies/_form.html.erb +22 -28
- data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +16 -5
- data/app/views/decidim/conferences/admin/conference_invites/_form.html.erb +17 -19
- data/app/views/decidim/conferences/admin/conference_invites/index.html.erb +69 -74
- data/app/views/decidim/conferences/admin/conference_invites/new.html.erb +21 -17
- data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +45 -45
- data/app/views/decidim/conferences/admin/conference_speakers/_form.html.erb +42 -46
- data/app/views/decidim/conferences/admin/conference_speakers/edit.html.erb +16 -6
- data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +52 -55
- data/app/views/decidim/conferences/admin/conference_speakers/new.html.erb +16 -6
- data/app/views/decidim/conferences/admin/conference_user_roles/_form.html.erb +14 -18
- data/app/views/decidim/conferences/admin/conference_user_roles/edit.html.erb +16 -6
- data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +53 -56
- data/app/views/decidim/conferences/admin/conference_user_roles/new.html.erb +16 -6
- data/app/views/decidim/conferences/admin/conferences/_form.html.erb +88 -88
- data/app/views/decidim/conferences/admin/conferences/edit.html.erb +26 -12
- data/app/views/decidim/conferences/admin/conferences/index.html.erb +55 -64
- data/app/views/decidim/conferences/admin/conferences/new.html.erb +16 -8
- data/app/views/decidim/conferences/admin/diplomas/_form.html.erb +18 -24
- data/app/views/decidim/conferences/admin/diplomas/edit.html.erb +19 -5
- data/app/views/decidim/conferences/admin/media_links/_form.html.erb +15 -19
- data/app/views/decidim/conferences/admin/media_links/edit.html.erb +16 -6
- data/app/views/decidim/conferences/admin/media_links/index.html.erb +37 -40
- data/app/views/decidim/conferences/admin/media_links/new.html.erb +16 -6
- data/app/views/decidim/conferences/admin/partners/_form.html.erb +18 -22
- data/app/views/decidim/conferences/admin/partners/edit.html.erb +16 -6
- data/app/views/decidim/conferences/admin/partners/index.html.erb +45 -48
- data/app/views/decidim/conferences/admin/partners/new.html.erb +16 -6
- data/app/views/decidim/conferences/admin/registration_types/_form.html.erb +23 -23
- data/app/views/decidim/conferences/admin/registration_types/edit.html.erb +16 -6
- data/app/views/decidim/conferences/admin/registration_types/index.html.erb +52 -56
- data/app/views/decidim/conferences/admin/registration_types/new.html.erb +16 -6
- data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb +2 -2
- data/app/views/decidim/conferences/conference_program/_program_item.html.erb +21 -24
- data/app/views/decidim/conferences/conference_program/_program_meeting.html.erb +29 -63
- data/app/views/decidim/conferences/conference_program/show.html.erb +27 -39
- data/app/views/decidim/conferences/conference_speakers/index.html.erb +12 -6
- data/app/views/decidim/conferences/conferences/_conference_hero.html.erb +33 -0
- data/app/views/decidim/conferences/conferences/_partners.html.erb +10 -13
- data/app/views/decidim/conferences/conferences/index.html.erb +17 -7
- data/app/views/decidim/conferences/conferences/show.html.erb +84 -50
- data/app/views/decidim/conferences/media/index.html.erb +33 -19
- data/app/views/decidim/conferences/registration_types/index.html.erb +25 -17
- data/app/views/layouts/decidim/admin/conference.html.erb +12 -14
- data/app/views/layouts/decidim/admin/conferences.html.erb +13 -8
- data/app/views/layouts/decidim/conference.html.erb +7 -17
- data/app/views/layouts/decidim/conferences/_conference_nav_item.html.erb +6 -0
- data/app/views/layouts/decidim/conferences/application.html.erb +6 -0
- data/config/assets.rb +1 -1
- data/config/initializers/wicked_pdf.rb +1 -1
- data/config/locales/ar.yml +3 -64
- data/config/locales/bg.yml +0 -85
- data/config/locales/ca.yml +34 -54
- data/config/locales/cs.yml +35 -53
- data/config/locales/de.yml +33 -53
- data/config/locales/el.yml +11 -51
- data/config/locales/en.yml +34 -54
- data/config/locales/es-MX.yml +32 -52
- data/config/locales/es-PY.yml +32 -52
- data/config/locales/es.yml +32 -52
- data/config/locales/eu.yml +33 -58
- data/config/locales/fi-plain.yml +32 -52
- data/config/locales/fi.yml +32 -52
- data/config/locales/fr-CA.yml +31 -51
- data/config/locales/fr.yml +31 -51
- data/config/locales/ga-IE.yml +0 -17
- data/config/locales/gl.yml +3 -62
- data/config/locales/hu.yml +15 -53
- data/config/locales/id-ID.yml +3 -57
- data/config/locales/it.yml +4 -62
- data/config/locales/ja.yml +33 -54
- data/config/locales/lb.yml +1 -55
- data/config/locales/lt.yml +14 -52
- data/config/locales/lv.yml +1 -61
- data/config/locales/nl.yml +3 -62
- data/config/locales/no.yml +1 -62
- data/config/locales/pl.yml +1 -79
- data/config/locales/pt-BR.yml +1 -72
- data/config/locales/pt.yml +2 -63
- data/config/locales/ro-RO.yml +13 -50
- data/config/locales/sk.yml +1 -61
- data/config/locales/sl.yml +0 -2
- data/config/locales/sr-CS.yml +0 -9
- data/config/locales/sv.yml +7 -62
- data/config/locales/tr-TR.yml +13 -62
- data/config/locales/zh-CN.yml +3 -60
- data/config/locales/zh-TW.yml +6 -47
- data/db/migrate/20221116084952_add_weight_to_conferences.rb +7 -0
- data/lib/decidim/conferences/admin_engine.rb +14 -138
- data/lib/decidim/conferences/content_blocks/registry_manager.rb +21 -0
- data/lib/decidim/conferences/engine.rb +17 -15
- data/lib/decidim/conferences/menu.rb +182 -0
- data/lib/decidim/conferences/participatory_space.rb +6 -200
- data/lib/decidim/conferences/query_extensions.rb +2 -2
- data/lib/decidim/conferences/seeds.rb +153 -0
- data/lib/decidim/conferences/test/factories.rb +37 -73
- data/lib/decidim/conferences/version.rb +1 -1
- metadata +48 -52
- data/app/cells/decidim/conferences/conference_address/show.erb +0 -11
- data/app/cells/decidim/conferences/conference_address_cell.rb +0 -11
- data/app/cells/decidim/conferences/conference_m/footer.erb +0 -9
- data/app/cells/decidim/conferences/conference_m/tags.erb +0 -1
- data/app/cells/decidim/conferences/conference_m_cell.rb +0 -38
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences/show.erb +0 -30
- data/app/cells/decidim/conferences/photo/show.erb +0 -26
- data/app/cells/decidim/conferences/photo_cell.rb +0 -41
- data/app/cells/decidim/conferences/photos_list/show.erb +0 -8
- data/app/cells/decidim/conferences/photos_list_cell.rb +0 -18
- data/app/commands/decidim/conferences/admin/create_conference_admin.rb +0 -114
- data/app/commands/decidim/conferences/admin/destroy_conference_admin.rb +0 -58
- data/app/commands/decidim/conferences/admin/notify_role_assigned_to_conference.rb +0 -22
- data/app/commands/decidim/conferences/admin/unpublish_conference.rb +0 -39
- data/app/commands/decidim/conferences/admin/update_conference_admin.rb +0 -53
- data/app/controllers/decidim/conferences/conference_widgets_controller.rb +0 -33
- data/app/queries/decidim/conferences/admin/conference_invites.rb +0 -60
- data/app/views/decidim/conferences/_order_by_conferences.html.erb +0 -3
- data/app/views/decidim/conferences/conferences/_promoted_conference.html.erb +0 -27
- data/app/views/decidim/conferences/media/_attachments.html.erb +0 -6
- data/app/views/decidim/conferences/shared/_conference_user_login.html.erb +0 -14
- data/app/views/layouts/decidim/_conference_hero.html.erb +0 -42
- data/app/views/layouts/decidim/_conferences_nav.html.erb +0 -46
- data/config/locales/he-IL.yml +0 -1
- data/db/seeds/Exampledocument.pdf +0 -0
- data/db/seeds/city.jpeg +0 -0
- data/db/seeds/city2.jpeg +0 -0
- data/db/seeds/homepage_image.jpg +0 -0
- data/db/seeds/logo.png +0 -0
- data/decidim-conferences.gemspec +0 -33
@@ -6,20 +6,20 @@ $(() => {
|
|
6
6
|
if ($form.length > 0) {
|
7
7
|
$conferenceScopeEnabled.on("change", (event) => {
|
8
8
|
const checked = event.target.checked;
|
9
|
-
|
9
|
+
$conferenceScopeId.attr("disabled", !checked);
|
10
10
|
})
|
11
|
-
|
11
|
+
$conferenceScopeId.attr("disabled", !$conferenceScopeEnabled.prop("checked"));
|
12
12
|
|
13
13
|
const $registrationsEnabled = $form.find("#conference_registrations_enabled");
|
14
14
|
const $availableSlots = $form.find("#conference_available_slots");
|
15
|
+
const $registrationTerms = $form.find("#conference_registrations_terms");
|
15
16
|
const toggleDisabledFields = () => {
|
16
17
|
const enabled = $registrationsEnabled.prop("checked");
|
17
18
|
$availableSlots.attr("disabled", !enabled);
|
18
19
|
|
19
|
-
$
|
20
|
-
|
21
|
-
|
22
|
-
})
|
20
|
+
$registrationTerms[0].querySelectorAll(".editor-container .ProseMirror").forEach((node) => {
|
21
|
+
node.editor.setOptions({ editable: enabled });
|
22
|
+
});
|
23
23
|
};
|
24
24
|
$registrationsEnabled.on("change", toggleDisabledFields);
|
25
25
|
toggleDisabledFields();
|
@@ -0,0 +1,102 @@
|
|
1
|
+
.conference {
|
2
|
+
&__hero {
|
3
|
+
@apply backdrop-brightness-[30%];
|
4
|
+
|
5
|
+
&-text {
|
6
|
+
@apply container text-center text-white space-y-6 md:px-16 pt-10 pb-14 md:[&_a_+_a]:ml-6;
|
7
|
+
}
|
8
|
+
|
9
|
+
&-slogan {
|
10
|
+
@apply text-lg font-semibold;
|
11
|
+
}
|
12
|
+
|
13
|
+
&-location {
|
14
|
+
@apply text-lg;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
&__content-block {
|
19
|
+
@apply grid grid-cols-9 gap-x-4 place-items-start space-y-0;
|
20
|
+
|
21
|
+
> :nth-child(3n + 1),
|
22
|
+
> :nth-child(3n + 2) {
|
23
|
+
@apply col-span-9 lg:col-span-6;
|
24
|
+
}
|
25
|
+
|
26
|
+
> :nth-child(3n) {
|
27
|
+
@apply col-span-9 lg:col-span-3 row-span-2 lg:order-2 justify-self-center flex flex-col gap-2 max-w-full overflow-x-auto;
|
28
|
+
}
|
29
|
+
|
30
|
+
> :nth-child(3n + 2) {
|
31
|
+
@apply lg:order-3;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
&__nav {
|
36
|
+
@apply divide-y divide-white [&>li]:py-3.5 first:[&>li]:pt-0 last:[&>li]:pb-0;
|
37
|
+
|
38
|
+
&-container {
|
39
|
+
@apply ml-0 md:ml-6 bg-primary p-3 md:p-6 rounded w-full md:w-auto self-stretch;
|
40
|
+
|
41
|
+
[id*="dropdown-menu"] {
|
42
|
+
@apply mx-0;
|
43
|
+
}
|
44
|
+
|
45
|
+
[data-target*="dropdown"] {
|
46
|
+
@apply p-0 [&>span]:text-white [&>svg]:text-white;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
&-item {
|
51
|
+
@apply flex items-center gap-1 text-white font-semibold hover:underline [&>svg]:fill-current;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
&__grid {
|
56
|
+
@apply grid grid-cols-2 md:grid-cols-4 gap-3 md:gap-x-6 gap-y-10;
|
57
|
+
|
58
|
+
&-item {
|
59
|
+
@apply space-y-4;
|
60
|
+
|
61
|
+
&-img {
|
62
|
+
@apply border-4 border-background rounded aspect-[4/3] p-1;
|
63
|
+
|
64
|
+
img {
|
65
|
+
@apply w-full h-full object-contain;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
&-text {
|
70
|
+
@apply text-secondary;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
&__map {
|
76
|
+
@apply flex flex-col-reverse md:flex-row items-start gap-4 only:[&>*]:grow first:[&>*]:min-w-[40%];
|
77
|
+
|
78
|
+
& > :last-child:not(:only-child) {
|
79
|
+
@apply aspect-[4/3] w-full rounded overflow-hidden;
|
80
|
+
}
|
81
|
+
|
82
|
+
&-address {
|
83
|
+
@apply border-4 border-background rounded p-4 mt-4 first:mt-0;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
&__box {
|
88
|
+
@apply flex flex-col gap-4 md:flex-row md:items-end justify-between border-2 border-background rounded p-6 first:[&>*]:space-y-4;
|
89
|
+
|
90
|
+
&-icon {
|
91
|
+
@apply w-8 h-8 text-tertiary fill-current;
|
92
|
+
}
|
93
|
+
|
94
|
+
&-title {
|
95
|
+
@apply text-2xl font-semibold;
|
96
|
+
}
|
97
|
+
|
98
|
+
&-description {
|
99
|
+
@apply text-lg text-gray-2;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
.conference__program {
|
2
|
+
@apply mb-16 md:mb-36;
|
3
|
+
|
4
|
+
&-selector {
|
5
|
+
@apply grid grid-cols-2 md:flex gap-4 md:gap-1 justify-end [&~*]:mt-6 [&_button]:w-full;
|
6
|
+
}
|
7
|
+
|
8
|
+
&-item {
|
9
|
+
@apply grid grid-cols-12 gap-2 items-start first:[&>*]:col-span-12 md:first:[&>*]:col-span-2 last:[&>*]:col-span-12 md:last:[&>*]:col-span-10;
|
10
|
+
}
|
11
|
+
|
12
|
+
&-time {
|
13
|
+
@apply h-10 grid place-items-center border-b-2 border-tertiary text-center text-xl text-gray-2 font-semibold;
|
14
|
+
}
|
15
|
+
|
16
|
+
&-category {
|
17
|
+
@apply h-10 w-full bg-background border-b-2 border-gray-3 text-center text-md text-gray-2 font-normal truncate;
|
18
|
+
|
19
|
+
&-container {
|
20
|
+
@apply flex gap-2 [&>*]:grow [&>*]:min-w-0;
|
21
|
+
}
|
22
|
+
|
23
|
+
&-content {
|
24
|
+
@apply [&>a]:block [&>a]:py-4;
|
25
|
+
}
|
26
|
+
|
27
|
+
&[aria-expanded="true"] {
|
28
|
+
@apply bg-background-4 border-secondary text-secondary font-semibold;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
&-attribute {
|
33
|
+
@apply flex items-center gap-2 last:[&>*]:flex last:[&>*]:flex-wrap last:[&>*]:items-center last:[&>*]:gap-2 md:last:[&>*]:gap-6;
|
34
|
+
|
35
|
+
&-container {
|
36
|
+
@apply py-6 border-t border-background space-y-6;
|
37
|
+
}
|
38
|
+
|
39
|
+
&-url {
|
40
|
+
@apply underline text-sm text-secondary;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
.conference__registration {
|
2
|
+
@apply flex flex-col md:flex-row items-start md:items-center justify-between gap-2.5 rounded-l px-4 border-l-4 border-background;
|
3
|
+
|
4
|
+
&-container {
|
5
|
+
@apply w-full lg:w-4/5 xl:w-3/5 space-y-10 mb-16 md:mb-36;
|
6
|
+
|
7
|
+
&-title {
|
8
|
+
@apply py-10 text-gray-2 uppercase font-semibold;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
&-text {
|
13
|
+
@apply text-sm text-gray-2 space-y-2.5 md:space-y-4 w-full lg:w-1/5 xl:w-2/5;
|
14
|
+
|
15
|
+
& > *:last-child {
|
16
|
+
@apply inline-flex items-center gap-1.5 first:[&>*]:flex-none max-w-full;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
&-button {
|
21
|
+
@apply truncate md:w-32;
|
22
|
+
|
23
|
+
&-container {
|
24
|
+
@apply w-full md:w-72 flex items-center justify-between md:justify-end gap-4 md:gap-8 px-3 md:px-6 py-3 bg-background rounded;
|
25
|
+
|
26
|
+
& > *:first-child {
|
27
|
+
@apply text-xl font-semibold whitespace-nowrap;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
&:hover &-button:not([disabled]) {
|
33
|
+
@apply bg-secondary text-white border-transparent;
|
34
|
+
}
|
35
|
+
|
36
|
+
&-modal {
|
37
|
+
@apply p-6;
|
38
|
+
}
|
39
|
+
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
.conference__speaker {
|
2
|
+
&__container {
|
3
|
+
@apply grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-x-4 md:gap-x-8 lg:gap-x-16 gap-y-10 mb-16 md:mb-36;
|
4
|
+
}
|
5
|
+
|
6
|
+
&__item {
|
7
|
+
@apply flex flex-col gap-4 hover:cursor-pointer text-left focus-visible:outline-none;
|
8
|
+
|
9
|
+
&-image {
|
10
|
+
@apply ring-4 ring-background overflow-hidden rounded aspect-square;
|
11
|
+
|
12
|
+
img {
|
13
|
+
@apply w-full h-full object-cover;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
&-name {
|
18
|
+
@apply text-secondary;
|
19
|
+
}
|
20
|
+
|
21
|
+
&-text {
|
22
|
+
@apply mt-2 flex flex-col text-sm text-gray-2;
|
23
|
+
}
|
24
|
+
|
25
|
+
&:hover &-image,
|
26
|
+
&:focus &-image {
|
27
|
+
@apply ring-tertiary;
|
28
|
+
}
|
29
|
+
|
30
|
+
&:hover &-name,
|
31
|
+
&:focus &-name {
|
32
|
+
@apply underline;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
&__modal {
|
37
|
+
@apply md:pr-12 md:pb-12;
|
38
|
+
|
39
|
+
&-title {
|
40
|
+
@apply flex gap-2 items-center text-2xl text-black font-semibold;
|
41
|
+
}
|
42
|
+
|
43
|
+
&-img {
|
44
|
+
@apply w-1/4 flex-none rounded overflow-hidden aspect-square;
|
45
|
+
|
46
|
+
img {
|
47
|
+
@apply w-full h-full object-cover;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
&-bio {
|
52
|
+
@apply w-full divide-y divide-gray-3 [&>*]:py-4 first:[&>*]:pt-0 last:[&>*]:pb-0;
|
53
|
+
|
54
|
+
&-container {
|
55
|
+
@apply flex flex-col md:flex-row gap-4 md:gap-10 items-start mt-10 w-full;
|
56
|
+
}
|
57
|
+
|
58
|
+
&-name {
|
59
|
+
@apply text-black text-2xl font-semibold;
|
60
|
+
}
|
61
|
+
|
62
|
+
&-roles {
|
63
|
+
@apply mt-4 text-gray-2 text-sm after:[&_span]:content-['_/_'] last:after:[&_span]:content-[''];
|
64
|
+
}
|
65
|
+
|
66
|
+
&-networks {
|
67
|
+
@apply flex flex-wrap mt-4 flex gap-2 md:gap-6 text-secondary text-sm [&>*]:flex [&>*]:items-center [&>*]:gap-1.5;
|
68
|
+
}
|
69
|
+
|
70
|
+
&-description {
|
71
|
+
@apply overflow-y-auto max-h-[50vh] text-gray-2 text-md;
|
72
|
+
}
|
73
|
+
|
74
|
+
&-meetings {
|
75
|
+
@apply overflow-y-auto max-h-[20vh] text-secondary text-md flex flex-col gap-2;
|
76
|
+
|
77
|
+
&-title {
|
78
|
+
@apply text-gray-2 font-bold mb-4;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
@@ -1,3 +1,5 @@
|
|
1
|
-
.
|
2
|
-
|
3
|
-
|
1
|
+
@import "stylesheets/decidim/conferences/conference.scss";
|
2
|
+
@import "stylesheets/decidim/conferences/speaker.scss";
|
3
|
+
@import "stylesheets/decidim/conferences/registration.scss";
|
4
|
+
@import "stylesheets/decidim/conferences/program.scss";
|
5
|
+
@import "stylesheets/decidim/conferences/media.scss";
|
@@ -16,7 +16,6 @@ module Decidim
|
|
16
16
|
if permission_action.scope == :public
|
17
17
|
public_list_conferences_action?
|
18
18
|
public_read_conference_action?
|
19
|
-
public_embed_conference_action?
|
20
19
|
public_list_speakers_action?
|
21
20
|
public_list_program_action?
|
22
21
|
public_list_media_links_action?
|
@@ -81,14 +80,14 @@ module Decidim
|
|
81
80
|
return unless user
|
82
81
|
return unless conference.presence
|
83
82
|
return unless conference.registrations_enabled? &&
|
84
|
-
conference.conference_invites.exists?(user:
|
83
|
+
conference.conference_invites.exists?(user:) &&
|
85
84
|
permission_action.action == :decline_invitation &&
|
86
85
|
permission_action.subject == :conference
|
87
86
|
|
88
87
|
allow!
|
89
88
|
end
|
90
89
|
|
91
|
-
# It
|
90
|
+
# It is an admin user if it is an organization admin or is a space admin
|
92
91
|
# for the current `conference`.
|
93
92
|
def admin_user?
|
94
93
|
user.admin? || (conference ? can_manage_conference?(role: :admin) : has_manageable_conferences?)
|
@@ -132,16 +131,6 @@ module Decidim
|
|
132
131
|
toggle_allow(can_manage_conference?)
|
133
132
|
end
|
134
133
|
|
135
|
-
def public_embed_conference_action?
|
136
|
-
return unless permission_action.action == :embed &&
|
137
|
-
[:conference, :participatory_space].include?(permission_action.subject) &&
|
138
|
-
conference
|
139
|
-
|
140
|
-
return disallow! unless conference.published?
|
141
|
-
|
142
|
-
allow!
|
143
|
-
end
|
144
|
-
|
145
134
|
def public_list_speakers_action?
|
146
135
|
return unless permission_action.action == :list &&
|
147
136
|
permission_action.subject == :speakers
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conferences::Invite`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conference`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conferences::ConferenceRegistration`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::ConferenceSpeaker`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::ConferenceUserRole`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conferences::MediaLink`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conferences::Partner`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -6,8 +6,8 @@ module Decidim
|
|
6
6
|
# This class holds the logic to present a `Decidim::Conferences::RegistrationType`
|
7
7
|
# for the `AdminLog` log.
|
8
8
|
#
|
9
|
-
# Usage should be automatic and you
|
10
|
-
# directly, but here
|
9
|
+
# Usage should be automatic and you should not need to call this class
|
10
|
+
# directly, but here is an example:
|
11
11
|
#
|
12
12
|
# action_log = Decidim::ActionLog.last
|
13
13
|
# view_helpers # => this comes from the views
|
@@ -2,40 +2,15 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
module Conferences
|
5
|
-
# A presenter to render statistics in
|
5
|
+
# A presenter to render statistics in a Conference.
|
6
6
|
class ConferenceStatsPresenter < Decidim::StatsPresenter
|
7
7
|
include IconHelper
|
8
8
|
|
9
|
-
def conference
|
10
|
-
__getobj__.fetch(:conference)
|
11
|
-
end
|
12
|
-
|
13
|
-
# Public: Render a collection of primary stats.
|
14
|
-
def highlighted
|
15
|
-
highlighted_stats = component_stats(priority: StatsRegistry::HIGH_PRIORITY)
|
16
|
-
highlighted_stats.concat(component_stats(priority: StatsRegistry::MEDIUM_PRIORITY))
|
17
|
-
highlighted_stats.concat(comments_stats(:conferences))
|
18
|
-
highlighted_stats = highlighted_stats.reject(&:empty?)
|
19
|
-
highlighted_stats = highlighted_stats.reject { |_manifest, _name, data| data.zero? }
|
20
|
-
grouped_highlighted_stats = highlighted_stats.group_by(&:first)
|
21
|
-
|
22
|
-
statistics(grouped_highlighted_stats)
|
23
|
-
end
|
24
|
-
|
25
9
|
private
|
26
10
|
|
27
|
-
def
|
28
|
-
Decidim.component_manifests.map do |component_manifest|
|
29
|
-
component_manifest.stats
|
30
|
-
.filter(conditions)
|
31
|
-
.with_context(published_components)
|
32
|
-
.map { |name, data| [component_manifest.name, name, data] }.flatten
|
33
|
-
end
|
34
|
-
end
|
11
|
+
def participatory_space = __getobj__.fetch(:conference)
|
35
12
|
|
36
|
-
def
|
37
|
-
@published_components ||= Component.where(participatory_space: conference).published
|
38
|
-
end
|
13
|
+
def participatory_space_sym = :conferences
|
39
14
|
end
|
40
15
|
end
|
41
16
|
end
|
@@ -3,11 +3,11 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Conferences
|
5
5
|
module Admin
|
6
|
-
# A class used to find the admins for
|
6
|
+
# A class used to find the admins for a conference or an organization conferences.
|
7
7
|
class AdminUsers < Decidim::Query
|
8
8
|
# Syntactic sugar to initialize the class and return the queried objects.
|
9
9
|
#
|
10
|
-
# conference -
|
10
|
+
# conference - a conference that needs to find its conference admins
|
11
11
|
def self.for(conference)
|
12
12
|
new(conference).query
|
13
13
|
end
|
@@ -21,7 +21,7 @@ module Decidim
|
|
21
21
|
|
22
22
|
# Initializes the class.
|
23
23
|
#
|
24
|
-
# conference -
|
24
|
+
# conference - a conference that needs to find its conference admins
|
25
25
|
# organization - an organization that needs to find its conference admins
|
26
26
|
def initialize(conference, organization = nil)
|
27
27
|
@conference = conference
|
@@ -50,7 +50,7 @@ module Decidim
|
|
50
50
|
if conference
|
51
51
|
[conference]
|
52
52
|
else
|
53
|
-
Decidim::Conference.where(organization:
|
53
|
+
Decidim::Conference.where(organization:)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -39,8 +39,8 @@ module Decidim
|
|
39
39
|
attr_reader :user, :role
|
40
40
|
|
41
41
|
def conference_ids
|
42
|
-
user_roles = ConferenceUserRole.where(user:
|
43
|
-
user_roles = ConferenceUserRole.where(user
|
42
|
+
user_roles = ConferenceUserRole.where(user:) if role == :any
|
43
|
+
user_roles = ConferenceUserRole.where(user:, role:) if role != :any
|
44
44
|
user_roles.pluck(:decidim_conference_id)
|
45
45
|
end
|
46
46
|
end
|
@@ -1,33 +1,27 @@
|
|
1
|
-
<%=
|
1
|
+
<%= append_javascript_pack_tag "decidim_conferences_admin" %>
|
2
2
|
|
3
|
-
<div class="
|
4
|
-
<div class="card-
|
5
|
-
<
|
6
|
-
|
7
|
-
|
8
|
-
<div class="card-section">
|
9
|
-
<div class="row column">
|
10
|
-
<div class="row">
|
11
|
-
<div class="column xlarge-8">
|
12
|
-
<%= form.translated :text_field, :title, autofocus: true %>
|
13
|
-
</div>
|
14
|
-
<div class="column xlarge-4 slug">
|
15
|
-
<%= form.text_field :slug %>
|
16
|
-
<p class="help-text"><%== t(".slug_help", url: decidim_form_slug_url(:conferences, form.object.slug)) %></p>
|
17
|
-
</div>
|
3
|
+
<div class="form__wrapper">
|
4
|
+
<div class="card pt-4" id="conferences">
|
5
|
+
<div class="card-section">
|
6
|
+
<div class="row column">
|
7
|
+
<%= form.translated :text_field, :title, autofocus: true, aria: { label: :title } %>
|
18
8
|
</div>
|
19
|
-
<div class="
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<div class="card
|
24
|
-
<div class="
|
25
|
-
<
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
9
|
+
<div class="row column slug">
|
10
|
+
<%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:conferences, form.object.slug)) %>
|
11
|
+
</div>
|
12
|
+
<div class="row column">
|
13
|
+
<div class="card">
|
14
|
+
<div class="card-divider">
|
15
|
+
<legend><%= t("conference_copies.new.select", scope: "decidim.admin") %></legend>
|
16
|
+
</div>
|
17
|
+
<div class="card-section">
|
18
|
+
<div class="row">
|
19
|
+
<div class="row column">
|
20
|
+
<%= form.check_box :copy_categories %>
|
21
|
+
</div>
|
22
|
+
<div class="row column">
|
23
|
+
<%= form.check_box :copy_components %>
|
24
|
+
</div>
|
31
25
|
</div>
|
32
26
|
</div>
|
33
27
|
</div>
|