decidim-meetings 0.30.2 → 0.31.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/meetings/cancel_registration_meeting_button/cancelation_modal.erb +7 -4
- data/app/cells/decidim/meetings/cancel_registration_meeting_button/show.erb +1 -1
- data/app/cells/decidim/meetings/cancel_registration_meeting_button_cell.rb +36 -0
- data/app/cells/decidim/meetings/dates_and_map_cell.rb +1 -1
- data/app/cells/decidim/meetings/join_meeting_button/registration_modal.erb +4 -5
- data/app/cells/decidim/meetings/join_meeting_button/show.erb +25 -28
- data/app/cells/decidim/meetings/join_meeting_button/waitlist_button.erb +22 -0
- data/app/cells/decidim/meetings/join_meeting_button_cell.rb +28 -0
- data/app/cells/decidim/meetings/question_responses/show.erb +7 -7
- data/app/cells/decidim/meetings/question_responses_cell.rb +28 -28
- data/app/commands/decidim/meetings/admin/copy_meeting.rb +5 -2
- data/app/commands/decidim/meetings/admin/create_agenda.rb +6 -2
- data/app/commands/decidim/meetings/admin/create_meeting.rb +7 -3
- data/app/commands/decidim/meetings/admin/mark_as_attendee.rb +44 -0
- data/app/commands/decidim/meetings/admin/publish_meeting.rb +2 -1
- data/app/commands/decidim/meetings/admin/update_agenda.rb +6 -2
- data/app/commands/decidim/meetings/admin/update_meeting.rb +15 -6
- data/app/commands/decidim/meetings/admin/update_questionnaire.rb +4 -4
- data/app/commands/decidim/meetings/admin/update_registrations.rb +19 -7
- data/app/commands/decidim/meetings/create_meeting.rb +2 -3
- data/app/commands/decidim/meetings/{create_answer.rb → create_response.rb} +11 -11
- data/app/commands/decidim/meetings/join_meeting.rb +4 -6
- data/app/commands/decidim/meetings/join_waitlist.rb +53 -0
- data/app/commands/decidim/meetings/leave_meeting.rb +14 -5
- data/app/commands/decidim/meetings/update_meeting.rb +1 -2
- data/app/controllers/concerns/decidim/meetings/admin/filterable.rb +1 -1
- data/app/controllers/decidim/meetings/admin/agenda_controller.rb +2 -2
- data/app/controllers/decidim/meetings/admin/invites_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/meeting_copies_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +4 -4
- data/app/controllers/decidim/meetings/admin/meetings_poll_controller.rb +10 -10
- data/app/controllers/decidim/meetings/admin/registrations_attendees_controller.rb +79 -0
- data/app/controllers/decidim/meetings/admin/registrations_controller.rb +1 -22
- data/app/controllers/decidim/meetings/meeting_closes_controller.rb +1 -1
- data/app/controllers/decidim/meetings/meetings_controller.rb +11 -11
- data/app/controllers/decidim/meetings/polls/{answers_controller.rb → responses_controller.rb} +7 -7
- data/app/controllers/decidim/meetings/registrations_controller.rb +39 -12
- data/app/events/decidim/meetings/registration_marked_as_attendee_event.rb +9 -0
- data/app/events/decidim/meetings/upcoming_meeting_event.rb +41 -0
- data/app/events/decidim/meetings/update_meeting_event.rb +25 -0
- data/app/forms/decidim/meetings/admin/close_meeting_form.rb +2 -1
- data/app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb +4 -0
- data/app/forms/decidim/meetings/admin/meeting_form.rb +28 -3
- data/app/forms/decidim/meetings/admin/question_form.rb +3 -3
- data/app/forms/decidim/meetings/admin/{answer_option_form.rb → response_option_form.rb} +3 -3
- data/app/forms/decidim/meetings/admin/validate_registration_code_form.rb +1 -1
- data/app/forms/decidim/meetings/base_meeting_form.rb +0 -2
- data/app/forms/decidim/meetings/close_meeting_form.rb +2 -1
- data/app/forms/decidim/meetings/join_meeting_form.rb +0 -1
- data/app/forms/decidim/meetings/meeting_form.rb +3 -2
- data/app/forms/decidim/meetings/response_choice_form.rb +14 -0
- data/app/forms/decidim/meetings/{answer_form.rb → response_form.rb} +7 -7
- data/app/helpers/decidim/meetings/application_helper.rb +0 -1
- data/app/helpers/decidim/meetings/meetings_helper.rb +14 -5
- data/app/jobs/decidim/meetings/promote_from_waitlist_job.rb +63 -0
- data/app/jobs/decidim/meetings/upcoming_meeting_notification_job.rb +1 -1
- data/app/mailers/decidim/meetings/registration_mailer.rb +13 -0
- data/app/models/decidim/meetings/agenda_item.rb +5 -0
- data/app/models/decidim/meetings/meeting.rb +15 -12
- data/app/models/decidim/meetings/question.rb +12 -12
- data/app/models/decidim/meetings/questionnaire.rb +1 -1
- data/app/models/decidim/meetings/registration.rb +19 -7
- data/app/models/decidim/meetings/{answer.rb → response.rb} +6 -6
- data/app/models/decidim/meetings/response_choice.rb +15 -0
- data/app/models/decidim/meetings/{answer_option.rb → response_option.rb} +5 -5
- data/app/packs/src/decidim/meetings/admin/destroy_meeting_alert.js +1 -1
- data/app/packs/src/decidim/meetings/admin/meetings_components_form.js +1 -8
- data/app/packs/src/decidim/meetings/admin/meetings_form.js +1 -1
- data/app/packs/src/decidim/meetings/admin/registrations_form.js +1 -1
- data/app/packs/src/decidim/meetings/admin/registrations_invite_form.js +1 -1
- data/app/packs/src/decidim/meetings/meetings_form.js +1 -1
- data/app/packs/src/decidim/meetings/meetings_polls.js +1 -1
- data/app/packs/src/decidim/meetings/poll.component.js +5 -5
- data/app/packs/stylesheets/decidim/meetings/_item.scss +5 -1
- data/app/packs/stylesheets/decidim/meetings/meetings.scss +4 -4
- data/app/permissions/decidim/meetings/admin/agenda_permissions.rb +34 -0
- data/app/permissions/decidim/meetings/admin/meeting_permissions.rb +44 -0
- data/app/permissions/decidim/meetings/admin/permissions.rb +5 -66
- data/app/permissions/decidim/meetings/admin/questionnaire_permissions.rb +30 -0
- data/app/permissions/decidim/meetings/meeting_permissions.rb +90 -0
- data/app/permissions/decidim/meetings/permissions.rb +9 -105
- data/app/presenters/decidim/meetings/admin_log/value_types/meeting_title_description_presenter.rb +1 -1
- data/app/presenters/decidim/meetings/agenda_item_presenter.rb +29 -0
- data/app/presenters/decidim/meetings/meeting_presenter.rb +11 -15
- data/app/presenters/decidim/meetings/registration_presenter.rb +24 -0
- data/app/queries/decidim/meetings/{questionnaire_user_answers.rb → questionnaire_user_responses.rb} +5 -5
- data/app/serializers/decidim/meetings/registration_serializer.rb +5 -6
- data/app/services/decidim/meetings/diff_renderer.rb +0 -1
- data/app/views/decidim/meetings/_calendar_modal.html.erb +1 -0
- data/app/views/decidim/meetings/admin/agenda/_agenda_item_fields.html.erb +1 -1
- data/app/views/decidim/meetings/admin/invites/_form.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +3 -2
- data/app/views/decidim/meetings/admin/meetings/_linked_spaces.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meetings/_meeting-tr.html.erb +11 -8
- data/app/views/decidim/meetings/admin/meetings/_meeting_actions.html.erb +200 -69
- data/app/views/decidim/meetings/admin/meetings/_reminders.html.erb +19 -0
- data/app/views/decidim/meetings/admin/meetings/_services.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +7 -5
- data/app/views/decidim/meetings/admin/meetings/manage_trash.html.erb +2 -1
- data/app/views/decidim/meetings/admin/poll/_form.html.erb +6 -6
- data/app/views/decidim/meetings/admin/poll/_question.html.erb +13 -13
- data/app/views/decidim/meetings/admin/poll/_response_option.html.erb +35 -0
- data/app/views/decidim/meetings/admin/poll/_response_option_template.html.erb +7 -0
- data/app/views/decidim/meetings/admin/poll/edit.html.erb +3 -3
- data/app/views/decidim/meetings/admin/registration_form/edit_questions.html.erb +5 -5
- data/app/views/decidim/meetings/admin/registrations/edit.html.erb +19 -39
- data/app/views/decidim/meetings/admin/registrations_attendees/index.html.erb +126 -0
- data/app/views/decidim/meetings/layouts/live_event.html.erb +1 -1
- data/app/views/decidim/meetings/meeting_closes/_form.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_form.html.erb +2 -11
- data/app/views/decidim/meetings/meetings/_meeting.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_meeting_actions.html.erb +3 -3
- data/app/views/decidim/meetings/meetings/_meeting_agenda.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_meeting_aside.html.erb +11 -10
- data/app/views/decidim/meetings/meetings/_meeting_poll_actions.html.erb +3 -3
- data/app/views/decidim/meetings/meetings/_registration_code_modal.html.erb +16 -0
- data/app/views/decidim/meetings/polls/questions/_index_admin.html.erb +1 -1
- data/app/views/decidim/meetings/polls/questions/_published_question.html.erb +5 -5
- data/app/views/decidim/meetings/polls/responses/_multiple_option.html.erb +13 -0
- data/app/views/decidim/meetings/polls/responses/_single_option.html.erb +13 -0
- data/app/views/decidim/meetings/polls/{answers → responses}/admin.html.erb +4 -4
- data/app/views/decidim/meetings/polls/{answers → responses}/index.html.erb +4 -4
- data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +6 -1
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +1 -26
- data/config/locales/bg.yml +2 -32
- data/config/locales/ca-IT.yml +86 -40
- data/config/locales/ca.yml +86 -40
- data/config/locales/cs.yml +71 -43
- data/config/locales/de.yml +87 -41
- data/config/locales/el.yml +1 -25
- data/config/locales/en.yml +89 -43
- data/config/locales/es-MX.yml +87 -41
- data/config/locales/es-PY.yml +87 -41
- data/config/locales/es.yml +87 -41
- data/config/locales/eu.yml +86 -40
- data/config/locales/fi-plain.yml +86 -40
- data/config/locales/fi.yml +85 -39
- data/config/locales/fr-CA.yml +79 -38
- data/config/locales/fr.yml +79 -38
- data/config/locales/ga-IE.yml +1 -7
- data/config/locales/gl.yml +1 -19
- data/config/locales/hu.yml +1 -22
- data/config/locales/id-ID.yml +0 -16
- data/config/locales/is-IS.yml +0 -10
- data/config/locales/it.yml +1 -29
- data/config/locales/ja.yml +88 -42
- data/config/locales/lb.yml +1 -15
- data/config/locales/lt.yml +1 -28
- data/config/locales/lv.yml +0 -16
- data/config/locales/nl.yml +1 -26
- data/config/locales/no.yml +1 -28
- data/config/locales/pl.yml +2 -32
- data/config/locales/pt-BR.yml +1 -28
- data/config/locales/pt.yml +1 -28
- data/config/locales/ro-RO.yml +56 -29
- data/config/locales/ru.yml +0 -16
- data/config/locales/sk.yml +0 -16
- data/config/locales/sl.yml +0 -4
- data/config/locales/sv.yml +85 -39
- data/config/locales/tr-TR.yml +0 -20
- data/config/locales/uk.yml +0 -12
- data/config/locales/zh-CN.yml +0 -19
- data/config/locales/zh-TW.yml +1 -26
- data/db/migrate/20181107175558_add_questionnaire_to_existing_meetings.rb +8 -2
- data/db/migrate/20200827153856_add_commentable_counter_cache_to_meetings.rb +8 -2
- data/db/migrate/20201016065302_fix_meetings_registration_terms.rb +8 -2
- data/db/migrate/20210310120731_add_followable_counter_cache_to_meetings.rb +8 -2
- data/db/migrate/20250317103343_rename_answer_to_response_in_decidim_meetings.rb +18 -0
- data/db/migrate/20250403094034_add_reminder_customization_to_decidim_meetings.rb +9 -0
- data/db/migrate/20250408071941_add_status_to_registrations_to_decidim_meetings_registrations.rb +8 -0
- data/lib/decidim/api/agenda_item_type.rb +6 -2
- data/lib/decidim/api/agenda_type.rb +6 -2
- data/lib/decidim/api/linked_resources_interface.rb +1 -1
- data/lib/decidim/api/meeting_type.rb +20 -10
- data/lib/decidim/api/service_type.rb +3 -0
- data/lib/decidim/meetings/admin_engine.rb +9 -1
- data/lib/decidim/meetings/component.rb +29 -8
- data/lib/decidim/meetings/engine.rb +6 -21
- data/lib/decidim/meetings/meeting_serializer.rb +1 -2
- data/lib/decidim/meetings/schema_org_event_meeting_serializer.rb +0 -10
- data/lib/decidim/meetings/seeds.rb +4 -13
- data/lib/decidim/meetings/test/factories.rb +10 -16
- data/lib/decidim/meetings/user_responses_serializer.rb +47 -0
- data/lib/decidim/meetings/version.rb +1 -1
- data/lib/decidim/meetings.rb +7 -9
- metadata +49 -35
- data/app/cells/decidim/meetings/attending_organizations_list_cell.rb +0 -32
- data/app/forms/decidim/meetings/answer_choice_form.rb +0 -14
- data/app/models/decidim/meetings/answer_choice.rb +0 -15
- data/app/queries/decidim/meetings/metrics/meeting_followers_metric_measure.rb +0 -31
- data/app/queries/decidim/meetings/metrics/meetings_metric_manage.rb +0 -48
- data/app/views/decidim/meetings/admin/poll/_answer_option.html.erb +0 -35
- data/app/views/decidim/meetings/admin/poll/_answer_option_template.html.erb +0 -7
- data/app/views/decidim/meetings/polls/answers/_multiple_option.html.erb +0 -13
- data/app/views/decidim/meetings/polls/answers/_single_option.html.erb +0 -13
- data/lib/decidim/meetings/download_your_data_user_answers_serializer.rb +0 -39
- data/lib/decidim/meetings/user_answers_serializer.rb +0 -47
- /data/app/views/decidim/meetings/polls/{answers → responses}/create.js.erb +0 -0
@@ -1,70 +1,201 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
1
|
+
<button type="button" data-controller="dropdown" data-target="actions-meeting-<%= meeting.id %>" aria-label="<%= t("actions.actions_label", scope: "decidim.admin") %>">
|
2
|
+
<%= icon "more-fill", class: "text-secondary" %>
|
3
|
+
</button>
|
4
|
+
|
5
|
+
<div class="inline-block relative">
|
6
|
+
<ul id="actions-meeting-<%= meeting.id %>" class="dropdown dropdown__action" aria-hidden="true">
|
7
|
+
<% if view == :deleted && allowed_to?(:restore, :meeting, trashable_deleted_resource: meeting) %>
|
8
|
+
<li class="dropdown__item">
|
9
|
+
<%= link_to url_for(action: :restore, id: meeting, controller: "meetings"), method: :patch, class: "dropdown__button" do %>
|
10
|
+
<%= icon "refresh-line" %>
|
11
|
+
<%= t("decidim.admin.actions.restore") %>
|
12
|
+
<% end %>
|
13
|
+
</li>
|
14
|
+
<% elsif view != :deleted %>
|
15
|
+
<li class="dropdown__item">
|
16
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
17
|
+
<%= link_to edit_meeting_path(meeting), class: "dropdown__button" do %>
|
18
|
+
<%= icon "pencil-line" %>
|
19
|
+
<%= t("actions.edit", scope: "decidim.meetings") %>
|
20
|
+
<% end %>
|
21
|
+
<% else %>
|
22
|
+
<div class="dropdown__button-disabled">
|
23
|
+
<%= with_tooltip t("tooltips.cannot_edit_meetings", scope: "decidim.admin") do %>
|
24
|
+
<%= icon "pencil-line", class: "text-gray" %>
|
25
|
+
<span><%= t("actions.edit", scope: "decidim.meetings") %></span>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
<% end %>
|
29
|
+
</li>
|
30
|
+
|
31
|
+
<hr>
|
32
|
+
|
33
|
+
<li class="dropdown__item">
|
34
|
+
<% if allowed_to?(:copy, :meeting, meeting: meeting) %>
|
35
|
+
<%= link_to new_meeting_copy_path(meeting), class: "dropdown__button" do %>
|
36
|
+
<%= icon "file-copy-line" %>
|
37
|
+
<%= t("actions.duplicate", scope: "decidim.admin") %>
|
38
|
+
<% end %>
|
39
|
+
<% else %>
|
40
|
+
<div class="dropdown__button-disabled">
|
41
|
+
<%= with_tooltip t("tooltips.cannot_duplicate_meetings", scope: "decidim.admin") do %>
|
42
|
+
<%= icon "file-copy-line", class: "text-gray" %>
|
43
|
+
<span><%= t("actions.duplicate", scope: "decidim.admin") %></span>
|
44
|
+
<% end %>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
47
|
+
</li>
|
48
|
+
|
49
|
+
<hr>
|
50
|
+
|
51
|
+
<li class="dropdown__item">
|
52
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
53
|
+
<%= link_to meeting_attachments_path(meeting), class: "dropdown__button" do %>
|
54
|
+
<%= icon "attachment-line" %>
|
55
|
+
<%= t("actions.attachments", scope: "decidim.admin") %>
|
56
|
+
<% end %>
|
57
|
+
<% else %>
|
58
|
+
<div class="dropdown__button-disabled">
|
59
|
+
<%= with_tooltip t("tooltips.cannot_manage_attachments_meetings", scope: "decidim.admin") do %>
|
60
|
+
<%= icon "attachment-line", class: "text-gray" %>
|
61
|
+
<span><%= t("actions.attachments", scope: "decidim.admin") %></span>
|
62
|
+
<% end %>
|
63
|
+
</div>
|
64
|
+
<% end %>
|
65
|
+
</li>
|
66
|
+
|
67
|
+
<li class="dropdown__item">
|
68
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
69
|
+
<%= link_to meeting_attachment_collections_path(meeting), class: "dropdown__button" do %>
|
70
|
+
<%= icon "folder-line" %>
|
71
|
+
<%= t("actions.attachment_collections", scope: "decidim.admin") %>
|
72
|
+
<% end %>
|
73
|
+
<% else %>
|
74
|
+
<div class="dropdown__button-disabled">
|
75
|
+
<%= with_tooltip t("tooltips.cannot_manage_attachments_meetings", scope: "decidim.admin") do %>
|
76
|
+
<%= icon "folder-line", class: "text-gray" %>
|
77
|
+
<span><%= t("actions.attachment_collections", scope: "decidim.admin") %></span>
|
78
|
+
<% end %>
|
79
|
+
</div>
|
80
|
+
<% end %>
|
81
|
+
</li>
|
82
|
+
|
83
|
+
<hr>
|
84
|
+
|
85
|
+
<li class="dropdown__item">
|
86
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) && !meeting.registration_disabled? %>
|
87
|
+
<%= link_to(meeting.on_this_platform? ? edit_meeting_registrations_path(meeting) : meeting.registration_url, class: "dropdown__button") do %>
|
88
|
+
<%= icon "group-line" %>
|
89
|
+
<%= t("actions.registrations", scope: "decidim.meetings") %>
|
90
|
+
<% end %>
|
91
|
+
<% else %>
|
92
|
+
<div class="dropdown__button-disabled">
|
93
|
+
<%= with_tooltip t("tooltips.cannot_manage_registrations_meetings", scope: "decidim.admin") do %>
|
94
|
+
<%= icon "group-line", class: "text-gray" %>
|
95
|
+
<span><%= t("actions.registrations", scope: "decidim.meetings") %></span>
|
96
|
+
<% end %>
|
97
|
+
</div>
|
98
|
+
<% end %>
|
99
|
+
</li>
|
100
|
+
|
101
|
+
<li class="dropdown__item">
|
102
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
103
|
+
<%= link_to(meeting.agenda.present? ? edit_meeting_agenda_path(meeting, meeting.agenda) : new_meeting_agenda_path(meeting), class: "dropdown__button") do %>
|
104
|
+
<%= icon "calendar-line" %>
|
105
|
+
<%= t("actions.agenda", scope: "decidim.meetings") %>
|
106
|
+
<% end %>
|
107
|
+
<% else %>
|
108
|
+
<div class="dropdown__button-disabled">
|
109
|
+
<%= with_tooltip t("tooltips.cannot_manage_agenda_meetings", scope: "decidim.admin") do %>
|
110
|
+
<%= icon "calendar-line", class: "text-gray" %>
|
111
|
+
<span><%= t("actions.agenda", scope: "decidim.meetings") %></span>
|
112
|
+
<% end %>
|
113
|
+
</div>
|
114
|
+
<% end %>
|
115
|
+
</li>
|
116
|
+
|
117
|
+
<li class="dropdown__item">
|
118
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
119
|
+
<%= link_to edit_meeting_poll_path(meeting), class: "dropdown__button" do %>
|
120
|
+
<%= icon "list-check" %>
|
121
|
+
<%= t("actions.manage_poll", scope: "decidim.meetings") %>
|
122
|
+
<% end %>
|
123
|
+
<% else %>
|
124
|
+
<div class="dropdown__button-disabled">
|
125
|
+
<%= with_tooltip t("tooltips.cannot_manage_poll_meetings", scope: "decidim.admin") do %>
|
126
|
+
<%= icon "list-check", class: "text-gray" %>
|
127
|
+
<span><%= t("actions.manage_poll", scope: "decidim.meetings") %></span>
|
128
|
+
<% end %>
|
129
|
+
</div>
|
130
|
+
<% end %>
|
131
|
+
</li>
|
132
|
+
|
133
|
+
<li class="dropdown__item">
|
134
|
+
<% if allowed_to?(:close, :meeting, meeting: meeting) %>
|
135
|
+
<%= link_to edit_meeting_meeting_close_path(meeting_id: meeting.id, id: meeting.id), class: "dropdown__button" do %>
|
136
|
+
<%= icon "lock-line" %>
|
137
|
+
<%= t("actions.close", scope: "decidim.meetings") %>
|
138
|
+
<% end %>
|
139
|
+
<% else %>
|
140
|
+
<div class="dropdown__button-disabled">
|
141
|
+
<%= with_tooltip t("tooltips.cannot_close_meetings", scope: "decidim.admin") do %>
|
142
|
+
<%= icon "lock-line", class: "text-gray" %>
|
143
|
+
<span><%= t("actions.close", scope: "decidim.meetings") %></span>
|
144
|
+
<% end %>
|
145
|
+
</div>
|
146
|
+
<% end %>
|
147
|
+
</li>
|
148
|
+
|
149
|
+
<hr>
|
150
|
+
|
151
|
+
<li class="dropdown__item">
|
152
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
153
|
+
<% if meeting.published? %>
|
154
|
+
<%= link_to unpublish_meeting_path(meeting), method: :put, data: { confirm: t("actions.unpublish", scope: "decidim.admin") }, class: "dropdown__button" do %>
|
155
|
+
<%= icon "close-circle-line" %>
|
156
|
+
<%= t("actions.unpublish", scope: "decidim.admin") %>
|
157
|
+
<% end %>
|
158
|
+
<% else %>
|
159
|
+
<%= link_to publish_meeting_path(meeting), method: :put, class: "dropdown__button" do %>
|
160
|
+
<%= icon "check-line" %>
|
161
|
+
<%= t("actions.publish", scope: "decidim.admin") %>
|
162
|
+
<% end %>
|
163
|
+
<% end %>
|
164
|
+
<% end %>
|
165
|
+
</li>
|
166
|
+
|
167
|
+
<hr>
|
168
|
+
|
169
|
+
<li class="dropdown__item">
|
170
|
+
<%= link_to resource_locator(meeting).path, class: "dropdown__button", target: :blank, data: { "external-link": false } do %>
|
171
|
+
<%= icon "eye-line" %>
|
172
|
+
<%= t("actions.preview", scope: "decidim.meetings") %>
|
173
|
+
<% end %>
|
174
|
+
</li>
|
175
|
+
|
176
|
+
<hr>
|
177
|
+
|
178
|
+
<li class="dropdown__item">
|
179
|
+
<%= dropdown_resource_permissions_link(meeting) %>
|
180
|
+
</li>
|
181
|
+
|
182
|
+
<hr>
|
183
|
+
|
184
|
+
<li class="dropdown__item">
|
185
|
+
<% if allowed_to?(:soft_delete, :meeting, trashable_deleted_resource: meeting) %>
|
186
|
+
<%= link_to soft_delete_meeting_path(meeting), method: :patch, data: { confirm: t("actions.confirm_delete_meeting", scope: "decidim.meetings") }, class: "dropdown__button" do %>
|
187
|
+
<%= icon "delete-bin-line" %>
|
188
|
+
<%= t("actions.soft_delete", scope: "decidim.admin") %>
|
189
|
+
<% end %>
|
190
|
+
<% else %>
|
191
|
+
<div class="dropdown__button-disabled">
|
192
|
+
<%= with_tooltip t("tooltips.deleted_meetings_info", scope: "decidim.admin") do %>
|
193
|
+
<%= icon "delete-bin-line", class: "text-gray" %>
|
194
|
+
<span><%= t("actions.soft_delete", scope: "decidim.admin") %></span>
|
195
|
+
<% end %>
|
196
|
+
</div>
|
197
|
+
<% end %>
|
198
|
+
</li>
|
199
|
+
</ul>
|
200
|
+
</div>
|
70
201
|
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="card" data-controller="accordion" id="accordion-reminders">
|
2
|
+
<div class="card-divider">
|
3
|
+
<button class="card-divider-button" data-open="true" data-controls="panel-reminders" type="button">
|
4
|
+
<%= icon "arrow-right-s-line" %>
|
5
|
+
<h2 class="card-title" id="reminders"><%= t(".title") %></h2>
|
6
|
+
</button>
|
7
|
+
</div>
|
8
|
+
<div id="panel-reminders" class="card-section">
|
9
|
+
<div class="meeting-reminders">
|
10
|
+
<div class="row column">
|
11
|
+
<%= form.check_box :reminder_enabled, label: t(".reminder_enabled"), data: { controller: :toggle, "toggle-toggle-value": "customize_reminder_times" } %>
|
12
|
+
</div>
|
13
|
+
<div id="customize_reminder_times" data-toggler=".hide" class="row column <%= @form.reminder_enabled ? nil : "hide" %>">
|
14
|
+
<%= form.number_field :send_reminders_before_hours, label: t(".send_reminder"), help_text: t(".send_reminder_help_text"), min: 1, step: 1, class: "mb-2" %>
|
15
|
+
<%= form.translated :text_area, :reminder_message_custom_content, label: t(".reminder_message"), help_text: t(".reminder_message_help_text") %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="card" data-
|
1
|
+
<div class="card" data-controller="accordion" id="accordion-services">
|
2
2
|
<div class="card-divider">
|
3
3
|
<button class="card-divider-button" data-open="true" data-controls="panel-services" type="button">
|
4
4
|
<%= icon "arrow-right-s-line" %>
|
@@ -3,14 +3,16 @@
|
|
3
3
|
<div class="item_show__header">
|
4
4
|
<h1 class="item_show__header-title">
|
5
5
|
<%= t(".title") %>
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
<div class="flex align-middle gap-x-4 ml-auto">
|
7
|
+
<%= export_dropdowns(query) %>
|
8
|
+
<%= link_to t("actions.new_meeting", scope: "decidim.meetings"), new_meeting_path, class: "button button__sm button__secondary" if allowed_to? :create, :meeting %>
|
9
|
+
<%= render partial: "decidim/admin/components/resource_action" %>
|
10
|
+
</div>
|
9
11
|
</h1>
|
10
12
|
</div>
|
11
13
|
|
12
14
|
<%= admin_filter_selector(:meetings) %>
|
13
|
-
<div class="table-
|
15
|
+
<div class="table-stacked">
|
14
16
|
<table class="table-list">
|
15
17
|
<%= render partial: "meetings-thead" %>
|
16
18
|
<tbody>
|
@@ -23,7 +25,7 @@
|
|
23
25
|
</div>
|
24
26
|
<% if allowed_to? :manage_trash, :meeting, participatory_space: current_participatory_space %>
|
25
27
|
<div class="card mt-4">
|
26
|
-
<%= link_to manage_trash_meetings_path, class: "flex items-center
|
28
|
+
<%= link_to manage_trash_meetings_path, class: "flex items-center text-secondary" do %>
|
27
29
|
<%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
|
28
30
|
<%= t("actions.view_deleted_meetings", scope: "decidim.meetings") %>
|
29
31
|
<span class="ml-2">
|
@@ -1,4 +1,5 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
|
+
|
2
3
|
<div class="card">
|
3
4
|
<div class="item_show__header">
|
4
5
|
<h1 class="item_show__header-title">
|
@@ -7,7 +8,7 @@
|
|
7
8
|
</div>
|
8
9
|
|
9
10
|
<%= admin_filter_selector(:meetings) %>
|
10
|
-
<div class="table-
|
11
|
+
<div class="table-stacked">
|
11
12
|
<table class="table-list">
|
12
13
|
<%= render partial: "meetings-thead" %>
|
13
14
|
<tbody>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<% announcement_body = capture do %>
|
8
8
|
<ul>
|
9
|
-
<% t("announcement_html", admin_link: Decidim::EngineRouter.main_proxy(meeting.component).
|
9
|
+
<% t("announcement_html", admin_link: Decidim::EngineRouter.main_proxy(meeting.component).admin_meeting_polls_responses_path(meeting), scope: "decidim.meetings.admin.poll.form").each do |item| %>
|
10
10
|
<li> <%= item %></li>
|
11
11
|
<% end %>
|
12
12
|
</ul>
|
@@ -19,9 +19,9 @@
|
|
19
19
|
form: question_form,
|
20
20
|
id: tabs_id_for_question(blank_question),
|
21
21
|
editable: true,
|
22
|
-
|
22
|
+
response_option_template_selector: "#response-option-template-dummy" %>
|
23
23
|
</script>
|
24
|
-
<%= render "decidim/meetings/admin/poll/
|
24
|
+
<%= render "decidim/meetings/admin/poll/response_option_template", form: question_form, editable: true, template_id: "response-option-template-dummy" %>
|
25
25
|
<% end %>
|
26
26
|
|
27
27
|
<div class="questionnaire-questions-list flex flex-col py-6 gap-6 last:pb-0">
|
@@ -31,8 +31,8 @@
|
|
31
31
|
form: question_form,
|
32
32
|
id: tabs_id_for_question(question),
|
33
33
|
editable: question.editable?,
|
34
|
-
|
35
|
-
<%= render "decidim/meetings/admin/poll/
|
34
|
+
response_option_template_selector: "#response-option-template-#{index}" %>
|
35
|
+
<%= render "decidim/meetings/admin/poll/response_option_template", form: question_form, editable: question.editable?, template_id: "response-option-template-#{index}" %>
|
36
36
|
<% end %>
|
37
37
|
<% end %>
|
38
38
|
</div>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
<%= append_javascript_pack_tag "decidim_forms_admin" %>
|
44
44
|
|
45
45
|
<script>
|
46
|
-
document.addEventListener("
|
46
|
+
document.addEventListener("turbo:load", function () {
|
47
47
|
window.Decidim.createEditableForm()
|
48
48
|
})
|
49
49
|
</script>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% question = form.object %>
|
2
2
|
<% is_expanded = question.errors.any? %>
|
3
3
|
<div class="card questionnaire-question" id="<%= id %>-field">
|
4
|
-
<div class="form__wrapper" data-
|
4
|
+
<div class="form__wrapper" data-controller="accordion">
|
5
5
|
<div class="card-divider">
|
6
6
|
<h2 class="card-title">
|
7
7
|
<span>
|
@@ -24,19 +24,19 @@
|
|
24
24
|
</span>
|
25
25
|
</button>
|
26
26
|
|
27
|
-
<button class="button
|
27
|
+
<button class="button button__xs button__transparent-secondary small alert move-up-question button--title">
|
28
28
|
<%= icon "arrow-up-line" %>
|
29
|
-
<span><%= t("up", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
29
|
+
<span class="hidden md:block"><%= t("up", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
30
30
|
</button>
|
31
31
|
|
32
|
-
<button class="button
|
32
|
+
<button class="button button__xs button__transparent-secondary small alert move-down-question button--title">
|
33
33
|
<%= icon "arrow-down-line" %>
|
34
|
-
<span><%= t("down", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
34
|
+
<span class="hidden md:block"><%= t("down", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
35
35
|
</button>
|
36
36
|
|
37
37
|
<% if editable %>
|
38
|
-
<button class="button
|
39
|
-
|
38
|
+
<button class="button button__xs button__transparent-secondary small alert remove-question button--title">
|
39
|
+
<span class="hidden md:block"><%= t("remove", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
40
40
|
</button>
|
41
41
|
<% end %>
|
42
42
|
</span>
|
@@ -74,17 +74,17 @@
|
|
74
74
|
<%= form.hidden_field :position, value: question.position || 0 %>
|
75
75
|
<%= form.hidden_field :deleted, disabled: !editable %>
|
76
76
|
|
77
|
-
<div class="questionnaire-question-
|
78
|
-
<div class="questionnaire-question-
|
79
|
-
<% question.
|
80
|
-
<%= fields_for "questionnaire[questions][#{question.to_param}][
|
81
|
-
<%= render "decidim/meetings/admin/poll/
|
77
|
+
<div class="questionnaire-question-response-options<%= question.editable? ? "" : "-disabled" %>" data-template="<%= response_option_template_selector %>">
|
78
|
+
<div class="questionnaire-question-response-options-list">
|
79
|
+
<% question.response_options.each do |response_option| %>
|
80
|
+
<%= fields_for "questionnaire[questions][#{question.to_param}][response_options][]", response_option do |response_option_form| %>
|
81
|
+
<%= render "decidim/meetings/admin/poll/response_option", form: response_option_form, question:, editable: question.editable? %>
|
82
82
|
<% end %>
|
83
83
|
<% end %>
|
84
84
|
</div>
|
85
85
|
<% if editable %>
|
86
86
|
<div class="row column">
|
87
|
-
<button type="button" class="button button__sm button__secondary mt-4 add-
|
87
|
+
<button type="button" class="button button__sm button__secondary mt-4 add-response-option"><%= t("add_response_option", scope: "decidim.forms.admin.questionnaires.question") %></button>
|
88
88
|
</div>
|
89
89
|
<% end %>
|
90
90
|
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<% response_option = form.object %>
|
2
|
+
|
3
|
+
<div class="card questionnaire-question-response-option">
|
4
|
+
<div class="card-divider">
|
5
|
+
<h2 class="card-title">
|
6
|
+
<span><%= t("response_option", scope: "decidim.forms.admin.questionnaires.response_option") %></span>
|
7
|
+
<% if editable %>
|
8
|
+
<button class="button button__xs button__transparent-secondary small alert remove-response-option button--title mb-2">
|
9
|
+
<%= icon("delete-bin-line") %>
|
10
|
+
<span class="hidden md:block"><%= t("remove", scope: "decidim.forms.admin.questionnaires.response_option") %></span>
|
11
|
+
</button>
|
12
|
+
<% end %>
|
13
|
+
</h2>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="card-section">
|
17
|
+
<div class="row column">
|
18
|
+
<%=
|
19
|
+
form.translated(
|
20
|
+
:text_field,
|
21
|
+
:body,
|
22
|
+
tabs_id: tabs_id_for_question_response_option(question, response_option),
|
23
|
+
label: t("statement", scope: "decidim.forms.admin.questionnaires.response_option"),
|
24
|
+
disabled: !editable
|
25
|
+
)
|
26
|
+
%>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<% if response_option.persisted? %>
|
31
|
+
<%= form.hidden_field :id, disabled: !editable %>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<%= form.hidden_field :deleted, disabled: !editable %>
|
35
|
+
</div>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% question = form.object %>
|
2
|
+
|
3
|
+
<script type="text/template" class="decidim-response-option-template decidim-template" id="<%= template_id %>">
|
4
|
+
<%= fields_for "questionnaire[questions][#{question.to_param}][response_options][]", blank_response_option do |response_option_form| %>
|
5
|
+
<%= render "decidim/meetings/admin/poll/response_option", form: response_option_form, question:, editable: question.editable? %>
|
6
|
+
<% end %>
|
7
|
+
</script>
|
@@ -2,12 +2,12 @@
|
|
2
2
|
<div class="item_show__header">
|
3
3
|
<h1 class="item_show__header-title">
|
4
4
|
<%= edit_questionnaire_title %>
|
5
|
-
<% if questionnaire.
|
5
|
+
<% if questionnaire.responses.any? %>
|
6
6
|
<div class="button--title">
|
7
|
-
<%= export_dropdown(current_component, questionnaire.id) if allowed_to?(:
|
7
|
+
<%= export_dropdown(current_component, questionnaire.id) if allowed_to?(:export_responses, :questionnaire) %>
|
8
8
|
</div>
|
9
9
|
<% else %>
|
10
|
-
<button class="button button__sm button__secondary" disabled><%= t("empty", scope: "decidim.forms.admin.questionnaires.
|
10
|
+
<button class="button button__sm button__secondary" disabled><%= t("empty", scope: "decidim.forms.admin.questionnaires.responses") %></button>
|
11
11
|
<% end %>
|
12
12
|
</h1>
|
13
13
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% add_decidim_page_title(t("decidim.forms.admin.questionnaires.edit_questions.title")) %>
|
2
2
|
|
3
3
|
<% if templates_defined? && choose_template? %>
|
4
|
-
<%= render partial: "decidim/templates/admin/questionnaire_templates/choose", locals: { target: questionnaire, form_title: t("decidim.forms.admin.questionnaires.edit.title") } %>
|
4
|
+
<%= render partial: "decidim/templates/admin/questionnaire_templates/choose", locals: { target: questionnaire, form_title: t("decidim.forms.admin.questionnaires.edit.title"), show_buttons: true } %>
|
5
5
|
<% else %>
|
6
6
|
|
7
7
|
<div class="questionnaire-questions">
|
@@ -16,13 +16,13 @@
|
|
16
16
|
<% if allowed_to? :preview, :questionnaire %>
|
17
17
|
<%= link_to t("preview", scope: "decidim.forms.admin.questionnaires.form"), public_url, class: "button button__sm button__transparent-secondary", target: :_blank, data: { "external-link": false } %>
|
18
18
|
<% end %>
|
19
|
-
<% if questionnaire.
|
20
|
-
<%= export_dropdown(current_component, questionnaire.id) if allowed_to? :
|
21
|
-
<% if allowed_to? :show, :
|
19
|
+
<% if questionnaire.responses.any? %>
|
20
|
+
<%= export_dropdown(current_component, questionnaire.id) if allowed_to? :export_responses, :questionnaire %>
|
21
|
+
<% if allowed_to? :show, :questionnaire_responses %>
|
22
22
|
<%= link_to t("actions.show", scope: "decidim.forms.admin.questionnaires"), questionnaire_participants_url, class: "button button__sm button__secondary new whitespace-nowrap" %>
|
23
23
|
<% end %>
|
24
24
|
<% else %>
|
25
|
-
<button class="button button__sm button__secondary whitespace-nowrap" disabled><%= t("empty", scope: "decidim.forms.admin.questionnaires.
|
25
|
+
<button class="button button__sm button__secondary whitespace-nowrap" disabled><%= t("empty", scope: "decidim.forms.admin.questionnaires.responses") %></button>
|
26
26
|
<% end %>
|
27
27
|
</h1>
|
28
28
|
</div>
|
@@ -3,57 +3,37 @@
|
|
3
3
|
<h1 class="item_show__header-title">
|
4
4
|
<%= t("title", scope: "decidim.meetings.admin.registrations.form") %>
|
5
5
|
<div class="flex items-center gap-x-4 ml-auto">
|
6
|
-
<%= link_to t("
|
6
|
+
<%= link_to t("registrations", scope: "decidim.meetings.admin.registrations.form"), meeting_registrations_attendees_path(meeting), class: "button button__sm button__transparent-secondary #{"disabled" unless allowed_to? :read_invites, :meeting, meeting: meeting}" %>
|
7
|
+
<%= link_to t("invites", scope: "decidim.meetings.admin.registrations.form"), meeting_registrations_invites_path(meeting), class: "button button__sm button__transparent-secondary #{"disabled" unless allowed_to? :read_invites, :meeting, meeting: meeting}" %>
|
8
|
+
|
7
9
|
<% if allowed_to? :export_registrations, :meeting, meeting: meeting %>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
<div class="relative">
|
11
|
+
<button class="button button__sm button__transparent-secondary" data-controller="dropdown" data-target="export-dropdown">
|
12
|
+
<%= t "actions.export", scope: "decidim.admin" %>
|
13
|
+
<%= icon "arrow-down-s-line" %>
|
14
|
+
<%= icon "arrow-down-s-line" %>
|
15
|
+
</button>
|
16
|
+
|
17
|
+
<ul class="dropdown dropdown_bottom" id="export-dropdown">
|
14
18
|
<% %w(CSV JSON Excel).each do |format| %>
|
15
|
-
|
16
|
-
|
17
|
-
|
19
|
+
<li class="dropdown__item">
|
20
|
+
<%= link_to export_meeting_registrations_path(meeting_id: meeting, format:), class: "dropdown__button" do %>
|
21
|
+
<%= t("decidim.admin.exports.export_as", name: t("decidim.#{current_component.manifest.name}.admin.exports.registrations"), export_format: format) %>
|
22
|
+
<% end %>
|
23
|
+
</li>
|
18
24
|
<% end %>
|
19
25
|
</ul>
|
20
26
|
</div>
|
21
27
|
<% end %>
|
22
|
-
|
23
|
-
<%= link_to t("
|
28
|
+
|
29
|
+
<%= link_to t("registration_form" , scope: "decidim.meetings.admin.registrations.form"), edit_meeting_registrations_form_path(meeting_id: meeting.id), class: "button button__sm button__transparent-secondary" %>
|
30
|
+
<%= link_to t("manage_questions" , scope: "decidim.meetings.admin.registrations.form"), edit_questions_meeting_registrations_form_path(meeting_id: meeting.id), class: "button button__sm button__transparent-secondary" %>
|
24
31
|
</div>
|
25
32
|
</h1>
|
26
33
|
</div>
|
27
34
|
|
28
35
|
<div class="item__edit item__edit-1col">
|
29
36
|
<div class="item__edit-form">
|
30
|
-
<% if meeting.component.settings.registration_code_enabled %>
|
31
|
-
<div class="card mb-4">
|
32
|
-
<div class="card-divider">
|
33
|
-
<h2 class="card-title">
|
34
|
-
<%= t(".validate_registration_code") %>
|
35
|
-
</h2>
|
36
|
-
</div>
|
37
|
-
<div class="card-section">
|
38
|
-
<%= decidim_form_for(@validation_form, url: validate_registration_code_meeting_registrations_path, html: { class: "form form-defaults validate_meeting_registration_code" }) do |f| %>
|
39
|
-
<div class="form__wrapper">
|
40
|
-
<div class="card-section">
|
41
|
-
<div class="row column">
|
42
|
-
<div>
|
43
|
-
<%= f.label :code %>
|
44
|
-
</div>
|
45
|
-
<%= f.text_field :code, label: false %>
|
46
|
-
</div>
|
47
|
-
<div class="row column">
|
48
|
-
<%= f.submit t(".validate"), class: "button button__sm button__secondary" %>
|
49
|
-
</div>
|
50
|
-
</div>
|
51
|
-
</div>
|
52
|
-
<% end %>
|
53
|
-
</div>
|
54
|
-
</div>
|
55
|
-
<% end %>
|
56
|
-
|
57
37
|
<%= cell("decidim/announcement", t("recommendation_message", scope: "decidim.meetings.admin.registrations.form"), callout_class: "warning" ) %>
|
58
38
|
|
59
39
|
<%= decidim_form_for(@form, url: meeting_registrations_path, html: { class: "form-defaults form edit_meeting_registrations mt-4" }) do |f| %>
|