decidim-meetings 0.28.5 → 0.29.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.
Potentially problematic release.
This version of decidim-meetings might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/cells/decidim/meetings/attending_organizations_list_cell.rb +1 -1
- data/app/cells/decidim/meetings/cancel_registration_meeting_button_cell.rb +1 -2
- data/app/cells/decidim/meetings/dates_and_map/show.erb +3 -5
- data/app/cells/decidim/meetings/dates_and_map_cell.rb +1 -1
- data/app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb +1 -2
- data/app/cells/decidim/meetings/join_meeting_button/remaining_slots.erb +1 -0
- data/app/cells/decidim/meetings/join_meeting_button_cell.rb +0 -3
- data/app/cells/decidim/meetings/meeting_card_metadata_cell.rb +0 -3
- data/app/cells/decidim/meetings/meeting_cell.rb +0 -1
- data/app/cells/decidim/meetings/meeting_l_cell.rb +4 -7
- data/app/cells/decidim/meetings/meeting_url/show.erb +5 -5
- data/app/cells/decidim/meetings/meeting_url_cell.rb +0 -1
- data/app/cells/decidim/meetings/online_meeting_link_cell.rb +0 -2
- data/app/cells/decidim/meetings/question_responses/show.erb +7 -3
- data/app/cells/decidim/meetings/question_responses_cell.rb +0 -2
- data/app/commands/decidim/meetings/admin/copy_meeting.rb +2 -2
- data/app/commands/decidim/meetings/admin/create_agenda.rb +9 -37
- data/app/commands/decidim/meetings/admin/create_meeting.rb +28 -61
- data/app/commands/decidim/meetings/admin/destroy_meeting.rb +4 -33
- data/app/commands/decidim/meetings/admin/update_agenda.rb +7 -35
- data/app/commands/decidim/meetings/admin/update_meeting.rb +30 -68
- data/app/commands/decidim/meetings/admin/update_question_status.rb +1 -1
- data/app/commands/decidim/meetings/admin/update_questionnaire.rb +19 -11
- data/app/commands/decidim/meetings/admin/update_registrations.rb +20 -46
- data/app/commands/decidim/meetings/create_answer.rb +5 -4
- data/app/commands/decidim/meetings/create_meeting.rb +38 -62
- data/app/commands/decidim/meetings/join_meeting.rb +18 -19
- data/app/commands/decidim/meetings/update_meeting.rb +6 -7
- data/app/commands/decidim/meetings/withdraw_meeting.rb +1 -1
- data/app/controllers/concerns/decidim/meetings/admin/invites/filterable.rb +33 -0
- data/app/controllers/decidim/meetings/admin/agenda_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/invites_controller.rb +6 -6
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +2 -2
- data/app/controllers/decidim/meetings/admin/meetings_poll_controller.rb +12 -0
- data/app/controllers/decidim/meetings/application_controller.rb +1 -1
- data/app/controllers/decidim/meetings/live_events_controller.rb +1 -1
- data/app/controllers/decidim/meetings/meetings_controller.rb +3 -33
- data/app/controllers/decidim/meetings/polls/answers_controller.rb +10 -2
- data/app/controllers/decidim/meetings/registrations_controller.rb +3 -3
- data/app/forms/decidim/meetings/admin/close_meeting_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_form.rb +1 -1
- data/app/forms/decidim/meetings/admin/meeting_registrations_form.rb +3 -3
- data/app/forms/decidim/meetings/admin/question_form.rb +8 -4
- data/app/forms/decidim/meetings/answer_form.rb +4 -4
- data/app/forms/decidim/meetings/meeting_form.rb +1 -1
- data/app/helpers/decidim/meetings/application_helper.rb +1 -5
- data/app/mailers/decidim/meetings/close_meeting_reminder_mailer.rb +1 -1
- data/app/models/decidim/meetings/meeting.rb +10 -4
- data/app/models/decidim/meetings/poll.rb +8 -0
- data/app/models/decidim/meetings/question.rb +1 -0
- data/app/models/decidim/meetings/questionnaire.rb +0 -6
- data/app/packs/src/decidim/meetings/admin/meetings_form.js +3 -3
- data/app/packs/src/decidim/meetings/meetings_form.js +3 -3
- data/app/packs/src/decidim/meetings/meetings_polls.js +5 -0
- data/app/packs/src/decidim/meetings/poll.component.js +32 -4
- data/app/packs/stylesheets/decidim/meetings/_item.scss +126 -6
- data/app/packs/stylesheets/decidim/meetings/_live_event.scss +0 -94
- data/app/permissions/decidim/meetings/permissions.rb +22 -7
- data/app/presenters/decidim/meetings/meeting_presenter.rb +10 -3
- data/app/services/decidim/meetings/calendar/component_calendar.rb +1 -1
- data/app/services/decidim/meetings/calendar/meeting_to_event.rb +1 -1
- data/app/services/decidim/meetings/close_meeting_reminder_generator.rb +1 -1
- data/app/services/decidim/meetings/meeting_iframe_embedder.rb +2 -2
- data/app/views/decidim/meetings/_calendar_modal.html.erb +1 -1
- data/app/views/decidim/meetings/admin/agenda/_agenda_item.html.erb +3 -3
- data/app/views/decidim/meetings/admin/agenda/_agenda_item_child.html.erb +3 -3
- data/app/views/decidim/meetings/admin/agenda/_agenda_item_fields.html.erb +3 -3
- data/app/views/decidim/meetings/admin/invite_join_meeting_mailer/invite.html.erb +3 -1
- data/app/views/decidim/meetings/admin/invites/_form.html.erb +4 -4
- data/app/views/decidim/meetings/admin/invites/index.html.erb +4 -34
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +8 -8
- data/app/views/decidim/meetings/admin/meetings/_service.html.erb +3 -3
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +2 -2
- data/app/views/decidim/meetings/admin/poll/_answer_option.html.erb +1 -1
- data/app/views/decidim/meetings/admin/poll/_answer_option_template.html.erb +1 -1
- data/app/views/decidim/meetings/admin/poll/_form.html.erb +26 -25
- data/app/views/decidim/meetings/admin/poll/_question.html.erb +18 -16
- data/app/views/decidim/meetings/admin/poll/edit.html.erb +4 -6
- data/app/views/decidim/meetings/admin/registrations/edit.html.erb +2 -4
- data/app/views/decidim/meetings/close_meeting_reminder_mailer/close_meeting_reminder.html.erb +1 -1
- data/app/views/decidim/meetings/layouts/live_event.html.erb +1 -15
- data/app/views/decidim/meetings/meetings/_datetime.html.erb +4 -4
- data/app/views/decidim/meetings/meetings/_form.html.erb +17 -17
- data/app/views/decidim/meetings/meetings/_meeting.html.erb +2 -1
- data/app/views/decidim/meetings/meetings/_meeting_agenda.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_meeting_aside.html.erb +3 -1
- data/app/views/decidim/meetings/meetings/_meeting_minutes.html.erb +1 -1
- data/app/views/decidim/meetings/meetings/_meeting_poll_actions.html.erb +15 -0
- data/app/views/decidim/meetings/polls/answers/_multiple_option.html.erb +6 -10
- data/app/views/decidim/meetings/polls/answers/_single_option.html.erb +4 -10
- data/app/views/decidim/meetings/polls/answers/admin.html.erb +34 -0
- data/app/views/decidim/meetings/polls/answers/index.html.erb +36 -0
- data/app/views/decidim/meetings/polls/questions/_closed_question.html.erb +8 -2
- data/app/views/decidim/meetings/polls/questions/_index_admin.html.erb +27 -24
- data/app/views/decidim/meetings/polls/questions/_published_question.html.erb +14 -11
- data/app/views/decidim/meetings/polls/questions/_question.html.erb +1 -1
- data/app/views/decidim/meetings/polls/questions/index.js.erb +3 -3
- data/app/views/decidim/meetings/polls/questions/index_admin.js.erb +3 -3
- data/app/views/decidim/meetings/registration_mailer/confirmation.html.erb +1 -1
- data/app/views/devise/mailer/join_meeting.html.erb +3 -1
- data/app/views/devise/mailer/join_meeting.text.erb +3 -1
- data/config/locales/ar.yml +1 -13
- data/config/locales/bg.yml +45 -12
- data/config/locales/ca.yml +45 -13
- data/config/locales/cs.yml +28 -16
- data/config/locales/de.yml +114 -82
- data/config/locales/el.yml +1 -13
- data/config/locales/en.yml +44 -12
- data/config/locales/es-MX.yml +47 -15
- data/config/locales/es-PY.yml +47 -15
- data/config/locales/es.yml +48 -16
- data/config/locales/eu.yml +79 -47
- data/config/locales/fi-plain.yml +46 -14
- data/config/locales/fi.yml +56 -24
- data/config/locales/fr-CA.yml +48 -16
- data/config/locales/fr.yml +48 -16
- data/config/locales/ga-IE.yml +0 -8
- data/config/locales/gl.yml +3 -11
- data/config/locales/hu.yml +3 -12
- data/config/locales/id-ID.yml +1 -12
- data/config/locales/is-IS.yml +1 -12
- data/config/locales/it.yml +3 -16
- data/config/locales/ja.yml +47 -15
- data/config/locales/lb.yml +1 -7
- data/config/locales/lt.yml +3 -12
- data/config/locales/lv.yml +1 -12
- data/config/locales/nl.yml +1 -13
- data/config/locales/no.yml +1 -12
- data/config/locales/pl.yml +45 -12
- data/config/locales/pt-BR.yml +23 -17
- data/config/locales/pt.yml +1 -14
- data/config/locales/ro-RO.yml +2 -15
- data/config/locales/ru.yml +1 -12
- data/config/locales/sk.yml +1 -12
- data/config/locales/sv.yml +108 -206
- data/config/locales/tr-TR.yml +2 -17
- data/config/locales/uk.yml +1 -12
- data/config/locales/zh-CN.yml +1 -15
- data/config/locales/zh-TW.yml +1 -13
- data/db/migrate/20240130135858_add_withdrawn_fields_on_meetings.rb +23 -0
- data/decidim-meetings.gemspec +2 -2
- data/lib/decidim/api/meeting_type.rb +3 -12
- data/lib/decidim/api/meetings_type.rb +3 -1
- data/lib/decidim/meetings/component.rb +2 -2
- data/lib/decidim/meetings/engine.rb +5 -3
- data/lib/decidim/meetings/meeting_serializer.rb +3 -38
- data/lib/decidim/meetings/seeds.rb +13 -18
- data/lib/decidim/meetings/test/factories.rb +1 -7
- data/lib/decidim/meetings/test/notifications_handling.rb +1 -1
- data/lib/decidim/meetings/version.rb +1 -1
- data/lib/tasks/decidim_meetings.rake +1 -1
- metadata +24 -22
- data/app/views/decidim/meetings/admin/agenda/show.html.erb +0 -0
- data/config/locales/bn-BD.yml +0 -1
- data/config/locales/bs-BA.yml +0 -8
@@ -2,11 +2,13 @@
|
|
2
2
|
<% is_expanded = question.errors.any? %>
|
3
3
|
<div class="card questionnaire-question" id="<%= id %>-field">
|
4
4
|
<div class="form__wrapper" data-component="accordion">
|
5
|
-
<div class="card-divider
|
5
|
+
<div class="card-divider">
|
6
6
|
<h2 class="card-title">
|
7
7
|
<span>
|
8
8
|
<% if editable %>
|
9
9
|
<%== icon("drag-move-2-fill") %>
|
10
|
+
<% else %>
|
11
|
+
<%== icon("lock-line") %>
|
10
12
|
<% end %>
|
11
13
|
<%= dynamic_title(translated_attribute(question.body), class: "question-title-statement", max_length: 50, omission: "...", placeholder: t("question", scope: "decidim.forms.admin.questionnaires.question")) %>
|
12
14
|
</span>
|
@@ -22,18 +24,18 @@
|
|
22
24
|
</span>
|
23
25
|
</button>
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
</button>
|
27
|
+
<button class="button button__sm button__transparent-secondary small alert move-up-question button--title">
|
28
|
+
<%= icon "arrow-up-line" %>
|
29
|
+
<span><%= t("up", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
30
|
+
</button>
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
<button class="button button__sm button__transparent-secondary small alert move-down-question button--title">
|
33
|
+
<%= icon "arrow-down-line" %>
|
34
|
+
<span><%= t("down", scope: "decidim.forms.admin.questionnaires.question") %></span>
|
35
|
+
</button>
|
35
36
|
|
36
|
-
|
37
|
+
<% if editable %>
|
38
|
+
<button class="button button__sm button__transparent-secondary small alert remove-question button--title">
|
37
39
|
<%= t("remove", scope: "decidim.forms.admin.questionnaires.question") %>
|
38
40
|
</button>
|
39
41
|
<% end %>
|
@@ -66,17 +68,17 @@
|
|
66
68
|
</div>
|
67
69
|
|
68
70
|
<% if question.persisted? %>
|
69
|
-
<%= form.hidden_field :id
|
71
|
+
<%= form.hidden_field :id %>
|
70
72
|
<% end %>
|
71
73
|
|
72
|
-
<%= form.hidden_field :position, value: question.position || 0
|
74
|
+
<%= form.hidden_field :position, value: question.position || 0 %>
|
73
75
|
<%= form.hidden_field :deleted, disabled: !editable %>
|
74
76
|
|
75
|
-
<div class="questionnaire-question-answer-options" data-template="<%= answer_option_template_selector %>">
|
77
|
+
<div class="questionnaire-question-answer-options<%= question.editable? ? "" : "-disabled" %>" data-template="<%= answer_option_template_selector %>">
|
76
78
|
<div class="questionnaire-question-answer-options-list">
|
77
79
|
<% question.answer_options.each do |answer_option| %>
|
78
80
|
<%= fields_for "questionnaire[questions][#{question.to_param}][answer_options][]", answer_option do |answer_option_form| %>
|
79
|
-
<%= render "decidim/meetings/admin/poll/answer_option", form: answer_option_form, question:, editable: %>
|
81
|
+
<%= render "decidim/meetings/admin/poll/answer_option", form: answer_option_form, question:, editable: question.editable? %>
|
80
82
|
<% end %>
|
81
83
|
<% end %>
|
82
84
|
</div>
|
@@ -87,7 +89,7 @@
|
|
87
89
|
<% end %>
|
88
90
|
</div>
|
89
91
|
|
90
|
-
<div class="row column questionnaire-question-max-choices">
|
92
|
+
<div class="row column questionnaire-question-max-choices<%= question.editable? ? "" : "-disabled" %>">
|
91
93
|
<%=
|
92
94
|
form.select(
|
93
95
|
:max_choices,
|
@@ -17,13 +17,11 @@
|
|
17
17
|
<%= decidim_form_for(@form, url: update_url, method: :put, html: { class: "form-defaults form edit_questionnaire" }) do |form| %>
|
18
18
|
<%= render partial: "decidim/meetings/admin/poll/form", object: form %>
|
19
19
|
|
20
|
-
|
21
|
-
<div class="item__edit-sticky">
|
22
|
-
|
23
|
-
<%= form.submit t("save", scope: "decidim.forms.admin.questionnaires.edit"), class: "button button__sm button__secondary" %>
|
24
|
-
</div>
|
20
|
+
<div class="item__edit-sticky">
|
21
|
+
<div class="item__edit-sticky-container">
|
22
|
+
<%= form.submit t("save", scope: "decidim.forms.admin.questionnaires.edit"), class: "button button__sm button__secondary" %>
|
25
23
|
</div>
|
26
|
-
|
24
|
+
</div>
|
27
25
|
<% end %>
|
28
26
|
</div>
|
29
27
|
</div>
|
@@ -5,16 +5,14 @@
|
|
5
5
|
<div class="flex items-center gap-x-4 ml-auto">
|
6
6
|
<%= link_to t("invites", scope: "decidim.meetings.admin.registrations.form"), meeting_registrations_invites_path(meeting), class: "button button__sm button__secondary #{"disabled" unless allowed_to? :read_invites, :meeting, meeting: meeting}" %>
|
7
7
|
<% if allowed_to? :export_registrations, :meeting, meeting: meeting %>
|
8
|
-
<span class="exports
|
8
|
+
<span class="exports button button__sm button__secondary button--title" data-toggle="export-dropdown">
|
9
9
|
<%= t "actions.export", scope: "decidim.admin" %>
|
10
10
|
<%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
|
11
11
|
</span>
|
12
12
|
<div class="dropdown-pane" id="export-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
|
13
13
|
<ul class="vertical menu add-components">
|
14
14
|
<% %w(CSV JSON Excel).each do |format| %>
|
15
|
-
|
16
|
-
<li class="exports--format--<%= format.downcase %> exports--registrations"><%= t("decidim.admin.exports.export_as", name: t("decidim.#{current_component.manifest.name}.admin.exports.registrations"), export_format: format) %></li>
|
17
|
-
<% end %>
|
15
|
+
<li class="exports--format--<%= format.downcase %> exports--registrations"><%= link_to t("decidim.admin.exports.export_as", name: t("decidim.#{current_component.manifest.name}.admin.exports.registrations"), export_format: format), export_meeting_registrations_path(meeting_id: meeting, format:) %></li>
|
18
16
|
<% end %>
|
19
17
|
</ul>
|
20
18
|
</div>
|
data/app/views/decidim/meetings/close_meeting_reminder_mailer/close_meeting_reminder.html.erb
CHANGED
@@ -2,4 +2,4 @@
|
|
2
2
|
|
3
3
|
<p class="email-instructions"><%= t("decidim.meetings.close_meeting_reminder_mailer.close_meeting_reminder.body", meeting_title: translated_attribute(@meeting.title), meeting_path: @meeting.reported_content_url).html_safe %></p>
|
4
4
|
|
5
|
-
<p class="email-closing"><%= t("decidim.meetings.close_meeting_reminder_mailer.close_meeting_reminder.greetings", organization_name:
|
5
|
+
<p class="email-closing"><%= t("decidim.meetings.close_meeting_reminder_mailer.close_meeting_reminder.greetings", organization_name: translated_attribute(@organization.name), organization_url: decidim.root_url(host: @organization.host)).html_safe %></p>
|
@@ -14,20 +14,8 @@
|
|
14
14
|
<%= render partial: "layouts/decidim/timeout_modal" %>
|
15
15
|
|
16
16
|
<header class="meeting-polls__header">
|
17
|
-
<% if current_user && poll %>
|
18
|
-
<div class="flex gap-2">
|
19
|
-
<button class="button button__sm button__secondary meeting-polls__action-list">
|
20
|
-
<%= t("questions", scope: "decidim.meetings.layouts.live_event") %> <span id="visible-questions-count">(<%= questionnaire.questions.visible.count %>)</span>
|
21
|
-
</button>
|
22
|
-
|
23
|
-
<% if admin_allowed_to?(:update, :poll, meeting: meeting, poll: poll) %>
|
24
|
-
<button class="button button__sm button__secondary meeting-polls__action-administrate"><%= t("administrate", scope: "decidim.meetings.layouts.live_event") %></button>
|
25
|
-
<% end %>
|
26
|
-
</div>
|
27
|
-
<% end %>
|
28
|
-
|
29
17
|
<div>
|
30
|
-
<strong class="text-secondary"><%=
|
18
|
+
<strong class="text-secondary"><%= current_organization_name %></strong> / <strong><%= present(meeting).title(links: true, html_escape: true ) %></strong>
|
31
19
|
</div>
|
32
20
|
|
33
21
|
<div class="flex gap-10">
|
@@ -43,8 +31,6 @@
|
|
43
31
|
</header>
|
44
32
|
|
45
33
|
<main class="meeting-polls__main">
|
46
|
-
<aside class="meeting-polls__aside" id="meeting-poll-aside" data-decidim-meetings-poll='{"questionsUrl":"<%= meeting_polls_questions_path(meeting) %>"}'></aside>
|
47
|
-
<aside class="meeting-polls__aside" id="admin-meeting-poll-aside" data-decidim-admin-meetings-poll='{"questionsUrl":"<%= meeting_polls_questions_path(meeting, admin: true) %>"}'></aside>
|
48
34
|
<%= yield %>
|
49
35
|
</main>
|
50
36
|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<div
|
2
|
-
<div
|
3
|
-
<%= l meeting.start_time, format: "%d" %> <span
|
1
|
+
<div>
|
2
|
+
<div>
|
3
|
+
<%= l meeting.start_time, format: "%d" %> <span><%= l meeting.start_time, format: "%B %Y" %></span>
|
4
4
|
</div>
|
5
|
-
<div
|
5
|
+
<div>
|
6
6
|
<%= meeting.start_time.strftime("%H:%M") %> - <%= meeting.end_time.strftime("%H:%M") %>
|
7
7
|
</div>
|
8
8
|
</div>
|
@@ -1,35 +1,35 @@
|
|
1
|
-
<div
|
1
|
+
<div>
|
2
2
|
<%= form.text_field :title, autofocus: true, class: "js-hashtags", hashtaggable: true %>
|
3
3
|
</div>
|
4
4
|
|
5
|
-
<div
|
5
|
+
<div>
|
6
6
|
<%= text_editor_for(form, :description, hashtaggable: true) %>
|
7
7
|
</div>
|
8
8
|
|
9
|
-
<div
|
9
|
+
<div>
|
10
10
|
<%= form.select :type_of_meeting,
|
11
11
|
@form.type_of_meeting_select,
|
12
12
|
{ include_blank: t(".select_a_meeting_type") },
|
13
13
|
{ multiple: false } %>
|
14
14
|
</div>
|
15
15
|
|
16
|
-
<div
|
16
|
+
<div data-meeting-type="in_person">
|
17
17
|
<%= form.geocoding_field :address, input_html: { required: false }, help_text: t(".address_help") %>
|
18
18
|
</div>
|
19
19
|
|
20
|
-
<div
|
20
|
+
<div data-meeting-type="in_person">
|
21
21
|
<%= form.text_area :location, help_text: t(".location_help") %>
|
22
22
|
</div>
|
23
23
|
|
24
|
-
<div
|
24
|
+
<div>
|
25
25
|
<%= form.text_area :location_hints, help_text: t(".location_hints_help") %>
|
26
26
|
</div>
|
27
27
|
|
28
|
-
<div
|
28
|
+
<div data-meeting-type="online">
|
29
29
|
<%= form.text_field :online_meeting_url, help_text: t(".online_meeting_url_help") %>
|
30
30
|
</div>
|
31
31
|
|
32
|
-
<div
|
32
|
+
<div data-meeting-type="online">
|
33
33
|
<%= form.select :iframe_embed_type,
|
34
34
|
@form.iframe_embed_type_select,
|
35
35
|
{
|
@@ -38,28 +38,28 @@
|
|
38
38
|
} %>
|
39
39
|
</div>
|
40
40
|
|
41
|
-
<div class="
|
41
|
+
<div class="iframe-fields--access-level" id="meeting_iframe_embed_type" data-meeting-type="online-access-level">
|
42
42
|
<%= form.select :iframe_access_level,
|
43
43
|
@form.iframe_access_level_select,
|
44
44
|
{ include_blank: t(".select_an_iframe_access_level") },
|
45
45
|
{ multiple: false } %>
|
46
46
|
</div>
|
47
47
|
|
48
|
-
<div
|
48
|
+
<div>
|
49
49
|
<%= form.datetime_field :start_time %>
|
50
50
|
</div>
|
51
51
|
|
52
|
-
<div
|
52
|
+
<div>
|
53
53
|
<%= form.datetime_field :end_time %>
|
54
54
|
</div>
|
55
55
|
|
56
56
|
<% if current_participatory_space.has_subscopes? %>
|
57
|
-
<div
|
57
|
+
<div>
|
58
58
|
<%= scopes_select_field form, :decidim_scope_id %>
|
59
59
|
</div>
|
60
60
|
<% end %>
|
61
61
|
|
62
|
-
<div
|
62
|
+
<div>
|
63
63
|
<%= form.categories_select :decidim_category_id, current_participatory_space.categories, prompt: t(".select_a_category"), disable_parents: false %>
|
64
64
|
</div>
|
65
65
|
|
@@ -74,16 +74,16 @@
|
|
74
74
|
<%= form.number_field :available_slots, help_text: t(".available_slots_help") %>
|
75
75
|
</div>
|
76
76
|
|
77
|
-
<div
|
77
|
+
<div id="meeting_registration_terms">
|
78
78
|
<%= text_editor_for(form, :registration_terms) %>
|
79
79
|
</div>
|
80
80
|
|
81
|
-
<div
|
81
|
+
<div id="meeting_registration_url">
|
82
82
|
<%= form.text_field :registration_url, help_text: t(".registration_url_help") %>
|
83
|
-
<label><%= t(".disclaimer", organization: current_component.organization
|
83
|
+
<label><%= t(".disclaimer", organization: organization_name(current_component.organization)) %></label><br>
|
84
84
|
</div>
|
85
85
|
|
86
|
-
<div
|
86
|
+
<div>
|
87
87
|
<%= form.select(
|
88
88
|
:user_group_id,
|
89
89
|
Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.map { |g| [g.name, g.id] },
|
@@ -1,8 +1,9 @@
|
|
1
|
-
<%= render layout: "layouts/decidim/shared/layout_item"
|
1
|
+
<%= render layout: "layouts/decidim/shared/layout_item" do %>
|
2
2
|
<section class="layout-main__section layout-main__heading">
|
3
3
|
<h1 class="h2 decorator"><%= present(meeting).title(links: true, html_escape: true ) %></h1>
|
4
4
|
|
5
5
|
<%= cell "decidim/meetings/dates_and_map", meeting %>
|
6
|
+
<%= render partial: "meeting_poll_actions", locals: { mobile: true } %>
|
6
7
|
|
7
8
|
<div class="layout-author">
|
8
9
|
<%= cell "decidim/author", author_presenter_for(meeting.normalized_author), from: meeting, context_actions: nil, layout: :compact %>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<span><%= display_duration_agenda_items(agenda_item.id, index, agenda_items_times) %></span>
|
13
13
|
</h3>
|
14
14
|
|
15
|
-
<div class="meeting__agenda-item__description editor-content"><%=
|
15
|
+
<div class="meeting__agenda-item__description editor-content"><%= decidim_sanitize_translated(agenda_item.description).html_safe %></div>
|
16
16
|
|
17
17
|
<% if agenda_item.agenda_item_children.presence %>
|
18
18
|
<% parent_start_time = agenda_items_times[index][:start_time] %>
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<span><%= translated_attribute(agenda_item_child.title) %></span>
|
25
25
|
<span><%= display_duration_agenda_items(agenda_item_child.id, index_child, agenda_item_children_times) %></span>
|
26
26
|
</h4>
|
27
|
-
<div class="meeting__agenda-item__description"><%=
|
27
|
+
<div class="meeting__agenda-item__description"><%= decidim_sanitize_translated(agenda_item_child.description).html_safe %></div>
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
<% end %>
|
@@ -1,5 +1,7 @@
|
|
1
|
+
<%= render partial: "meeting_poll_actions" %>
|
2
|
+
|
1
3
|
<% if meeting.can_be_joined_by?(current_user) || meeting.on_different_platform? %>
|
2
|
-
<section class="layout-aside__section layout-aside__buttons">
|
4
|
+
<section class="layout-aside__section layout-aside__buttons layout-aside__ctas-buttons" data-sticky-buttons>
|
3
5
|
<%= cell "decidim/meetings/join_meeting_button", meeting, show_remaining_slots: true %>
|
4
6
|
</section>
|
5
7
|
<% end %>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
</div>
|
6
6
|
|
7
7
|
<div class="meeting__agenda-item">
|
8
|
-
<div class="meeting__agenda-item__description editor-content mb-4"><%=
|
8
|
+
<div class="meeting__agenda-item__description editor-content mb-4"><%= decidim_sanitize_editor translated_attribute meeting.closing_report %></div>
|
9
9
|
|
10
10
|
<% if meeting.video_url.presence %>
|
11
11
|
<div class="flex items-center gap-2 mt-2">
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<% extra_classes = local_assigns.fetch(:mobile, false) ? " block md:hidden" : " hidden md:block" %>
|
2
|
+
<% if meeting.poll&.has_questions? %>
|
3
|
+
<section class="layout-aside__section layout-aside__buttons<%= extra_classes %>">
|
4
|
+
<%= action_authorized_link_to :reply_poll, meeting_polls_answers_path(meeting), class: "button button__xl button__secondary w-full", data: { "redirect_url" => meeting_polls_answers_path(meeting) }, resource: meeting do %>
|
5
|
+
<span>
|
6
|
+
<%= meeting.poll.has_open_questions? ? t("reply_poll", scope: "decidim.meetings.meetings.meeting") : t("view_poll", scope: "decidim.meetings.meetings.meeting") %>
|
7
|
+
</span>
|
8
|
+
<% end %>
|
9
|
+
<% if !allowed_to?(:reply_poll, :meeting, meeting:) && allowed_to?(:update, :poll, meeting:) %>
|
10
|
+
<%= link_to admin_meeting_polls_answers_path(meeting), class: "button button__sm button__transparent-secondary w-full" do %>
|
11
|
+
<span><%= t("administrate", scope: "decidim.meetings.polls.answers.index") %></span>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
</section>
|
15
|
+
<% end %>
|
@@ -2,16 +2,12 @@
|
|
2
2
|
<% question.answer_options.each_with_index do |answer_option, idx| %>
|
3
3
|
<% choice = answer.choices.find { |choice| choice.decidim_answer_option_id == answer_option.id } if answer %>
|
4
4
|
|
5
|
-
|
6
|
-
<%=
|
7
|
-
|
8
|
-
|
9
|
-
choice.present?, disabled: %>
|
5
|
+
<%= label_tag "answer[choices][#{answer_option.id}][answer_option_id]", nil, class: "js-collection-input" do %>
|
6
|
+
<%= check_box_tag "answer[choices][#{answer_option.id}][answer_option_id]",
|
7
|
+
answer_option.id,
|
8
|
+
choice.present?, disabled: %>
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
<%= hidden_field_tag "answer[choices][#{idx}][answer_option_id]", answer_option.id, disabled: %>
|
14
|
-
<% end %>
|
15
|
-
</div>
|
10
|
+
<%= translated_attribute(answer_option.body) %>
|
11
|
+
<% end %>
|
16
12
|
<% end %>
|
17
13
|
</div>
|
@@ -3,17 +3,11 @@
|
|
3
3
|
<% question.answer_options.each_with_index do |answer_option, idx| %>
|
4
4
|
<% choice_id = "#{field_id}_choices_#{idx}" %>
|
5
5
|
|
6
|
-
<%= label_tag "#{choice_id}
|
7
|
-
<%= radio_button_tag "answer[choices][#{question.id}][
|
8
|
-
|
6
|
+
<%= label_tag "#{choice_id}_answer_option" do %>
|
7
|
+
<%= radio_button_tag "answer[choices][#{question.id}][answer_option_id]",
|
8
|
+
answer_option.id,
|
9
9
|
answer_option.id == choice.try(:decidim_answer_option_id),
|
10
|
-
id: "#{choice_id}
|
11
|
-
|
10
|
+
id: "#{choice_id}_answer_option", disabled: %>
|
12
11
|
<%= translated_attribute(answer_option.body) %>
|
13
|
-
|
14
|
-
<%= hidden_field_tag "answer[choices][#{question.id}][answer_option_id]",
|
15
|
-
answer_option.id,
|
16
|
-
id: "#{choice_id}_answer_option",
|
17
|
-
disabled: %>
|
18
12
|
<% end %>
|
19
13
|
<% end %>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<% add_decidim_meta_tags({
|
2
|
+
title: present(meeting).title,
|
3
|
+
description: present(meeting).description,
|
4
|
+
url: meeting_url(meeting.id)
|
5
|
+
}) %>
|
6
|
+
|
7
|
+
<%= append_javascript_pack_tag "decidim_meetings" %>
|
8
|
+
<%= append_stylesheet_pack_tag "decidim_meetings" %>
|
9
|
+
<%= append_javascript_pack_tag "decidim_forms" %>
|
10
|
+
|
11
|
+
<% add_body_classes "meeting-poll__layout" %>
|
12
|
+
|
13
|
+
<%= render layout: "layouts/decidim/shared/layout_center" do %>
|
14
|
+
<div class="meeting-polls__topbar is-admin">
|
15
|
+
<%= link_to meeting_path(meeting), class: "button button__sm button__text md:button__text-secondary" do %>
|
16
|
+
<%= icon "arrow-left-line" %>
|
17
|
+
<%= t("back_to_meeting", scope: "decidim.meetings.polls.answers.index_admin") %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<%= action_authorized_link_to :reply_poll, meeting_polls_answers_path(meeting), class: "button button__sm button__secondary", data: { "redirect_url" => meeting_polls_answers_path(meeting) }, resource: meeting do %>
|
21
|
+
<%= t("view_poll", scope: "decidim.meetings.polls.answers.index_admin") %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="text-center">
|
26
|
+
<h1 class="title-decorator inline-block text-left">
|
27
|
+
<%= t("title", scope: "decidim.meetings.polls.answers.index_admin") %>
|
28
|
+
</h1>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div class="meeting-polls" id="admin-meeting-poll" data-decidim-admin-meetings-poll='{"questionsUrl":"<%= meeting_polls_questions_path(meeting, admin: true) %>"}'>
|
32
|
+
<%= render partial: "decidim/meetings/polls/questions/index_admin", locals: { open_question: nil } %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<% add_decidim_meta_tags({
|
2
|
+
title: present(meeting).title,
|
3
|
+
description: present(meeting).description,
|
4
|
+
url: meeting_url(meeting.id)
|
5
|
+
}) %>
|
6
|
+
|
7
|
+
<%= append_javascript_pack_tag "decidim_meetings" %>
|
8
|
+
<%= append_stylesheet_pack_tag "decidim_meetings" %>
|
9
|
+
<%= append_javascript_pack_tag "decidim_forms" %>
|
10
|
+
|
11
|
+
<% add_body_classes "meeting-poll__layout" %>
|
12
|
+
|
13
|
+
<%= render layout: "layouts/decidim/shared/layout_center" do %>
|
14
|
+
<div class="meeting-polls__topbar">
|
15
|
+
<%= link_to meeting_path(meeting), class: "button button__sm button__text-secondary" do %>
|
16
|
+
<%= icon "arrow-left-line" %>
|
17
|
+
<%= t("back_to_meeting", scope: "decidim.meetings.polls.answers.index_admin") %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<% if admin_allowed_to?(:update, :poll, meeting: meeting, poll: poll) %>
|
21
|
+
<%= link_to admin_meeting_polls_answers_path(meeting), class: "button button__sm button__primary" do %>
|
22
|
+
<%= t("administrate", scope: "decidim.meetings.polls.answers.index") %>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="text-center">
|
28
|
+
<h1 class="title-decorator inline-block text-left">
|
29
|
+
<%= t("title", scope: "decidim.meetings.polls.answers.index") %>
|
30
|
+
</h1>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div class="meeting-polls" id="meeting-poll" data-decidim-meetings-poll='{"questionsUrl":"<%= meeting_polls_questions_path(meeting) %>"}'>
|
34
|
+
<%= render partial: "decidim/meetings/polls/questions/index" %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
@@ -1,7 +1,13 @@
|
|
1
|
-
<summary
|
1
|
+
<summary>
|
2
|
+
<span><%= t(".question") %></span>
|
3
|
+
<span><%= t(".question_results") %></span>
|
4
|
+
</summary>
|
2
5
|
|
3
6
|
<div>
|
4
|
-
<p><%= translated_attribute(question.body) %></p>
|
7
|
+
<p class="h3"><%= translated_attribute(question.body) %></p>
|
8
|
+
<span id="<%= "closed-announcement-#{question.id}" %>" hidden>
|
9
|
+
<%= cell "decidim/announcement", t("announcement", scope: "decidim.meetings.polls.questions.closed_question"), callout_class: "warning" %>
|
10
|
+
</span>
|
5
11
|
|
6
12
|
<%= cell "decidim/meetings/question_responses", question %>
|
7
13
|
</div>
|
@@ -1,40 +1,43 @@
|
|
1
|
-
<div class="meeting-polls__admin-label"><%= t(".admin_dashboard") %></div>
|
2
|
-
|
3
1
|
<% questionnaire.questions.includes([:questionnaire]).each do |question| %>
|
4
2
|
<details class="meeting-polls__question meeting-polls__question--admin open" data-question="<%= question.id %>" <%= "open" if open_question == question.id %>>
|
5
|
-
<summary
|
3
|
+
<summary>
|
4
|
+
<span><%= t(".question") %></span>
|
5
|
+
<span><%= t(question.status, scope: "decidim.meetings.polls.questions.index_admin.statuses") %></span>
|
6
|
+
</summary>
|
6
7
|
|
7
8
|
<%= form_tag(meeting_polls_question_path(meeting, question), method: :patch, remote: true) do %>
|
8
|
-
<
|
9
|
-
<p><%= translated_attribute(question.body) %></p>
|
9
|
+
<p class="h3"><%= translated_attribute(question.body) %></p>
|
10
10
|
|
11
|
-
|
11
|
+
<% if question.unpublished? %>
|
12
|
+
<%= link_to(
|
13
|
+
t(".edit"),
|
14
|
+
Decidim::EngineRouter.admin_proxy(meeting.component).edit_meeting_poll_path(meeting),
|
15
|
+
class: "button button__xs button__secondary mr-auto mt-2",
|
16
|
+
target: "_blank",
|
17
|
+
rel: "noopener noreferrer"
|
18
|
+
) %>
|
19
|
+
<% end %>
|
12
20
|
|
21
|
+
<div>
|
13
22
|
<div class="meeting-polls__admin-action meeting-polls__admin-action-question">
|
14
|
-
<div><%= t(".question") %></div>
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
<% end %>
|
22
|
-
</div>
|
23
|
+
<div class="h4"><%= t(".question") %><%= " · " + t(".sent") if question.published? %></div>
|
24
|
+
|
25
|
+
<% if question.unpublished? %>
|
26
|
+
<button class="button button__sm button__secondary"><%= t(".send") %></button>
|
27
|
+
<% else %>
|
28
|
+
<div><%= pluralize(question.answers_count, t(".received_answer"), t(".received_answers")) %></div>
|
29
|
+
<% end %>
|
23
30
|
</div>
|
31
|
+
|
24
32
|
<div class="meeting-polls__admin-action meeting-polls__admin-action-results">
|
25
|
-
<div><%= t(".results") %></div>
|
33
|
+
<div class="h4"><%= t(".results") %></div>
|
34
|
+
|
35
|
+
<button class="button button__sm button__secondary" <%= question.published? ? "" : "disabled" %>><%= question.closed? ? t(".sent") : t(".send") %></button>
|
36
|
+
|
26
37
|
<div>
|
27
38
|
<% unless question.unpublished? %>
|
28
39
|
<%= cell "decidim/meetings/question_responses", question %>
|
29
40
|
<% end %>
|
30
|
-
|
31
|
-
<% if question.unpublished? %>
|
32
|
-
<button class="button button__sm button__secondary" disabled><%= t(".send") %></button>
|
33
|
-
<% elsif question.published? %>
|
34
|
-
<button class="button button__sm button__secondary"><%= t(".send") %></button>
|
35
|
-
<% elsif question.closed? %>
|
36
|
-
<div class="mt-1"><strong><%= t(".sent") %></strong></div>
|
37
|
-
<% end %>
|
38
41
|
</div>
|
39
42
|
</div>
|
40
43
|
</div>
|
@@ -1,11 +1,15 @@
|
|
1
|
-
<summary
|
1
|
+
<summary>
|
2
|
+
<span><%= t(".question") %></span>
|
3
|
+
</summary>
|
2
4
|
|
3
5
|
<div>
|
4
|
-
<p><%= translated_attribute(question.body) %></p>
|
5
6
|
|
6
7
|
<% @form = form || Decidim::Meetings::AnswerForm.new(question_id: question.id, current_user:) %>
|
7
|
-
|
8
|
-
|
8
|
+
|
9
|
+
<p class="h3"><%= @form.label %></p>
|
10
|
+
|
11
|
+
<%= decidim_form_for(@form, url: meeting_polls_answers_path(meeting), method: :post, remote: true, html: { class: "form-defaults" }, data: { "safe-path" => meeting_live_event_path(meeting) }) do |form| %>
|
12
|
+
<div class="meeting-polls__answer" data-max-choices="<%= question.max_choices %>">
|
9
13
|
<p class="form-error max-choices-alert mt-0 mb-4"><%= t(".max_choices_alert") %></p>
|
10
14
|
|
11
15
|
<%= render partial: "decidim/meetings/polls/answers/#{question.question_type}", locals: { answer: @form.answer, question:, answer_form: form, disabled: question.answered_by?(current_user), field_id: question.id } %>
|
@@ -15,13 +19,12 @@
|
|
15
19
|
<% @form.errors.full_messages.each do |msg| %>
|
16
20
|
<small class="form-error is-visible mt-1"><%= msg %></small>
|
17
21
|
<% end %>
|
22
|
+
|
23
|
+
<% if question.answered_by?(current_user) %>
|
24
|
+
<%= cell("decidim/announcement", t(".question_replied"), callout_class: "success" ) %>
|
25
|
+
<% else %>
|
26
|
+
<button class="ml-auto mt-8 button button__lg button__secondary"><%= t(".reply_question") %></button>
|
27
|
+
<% end %>
|
18
28
|
</div>
|
19
|
-
<% if question.answered_by?(current_user) %>
|
20
|
-
<%= cell("decidim/announcement", t(".question_replied"), callout_class: "success" ) %>
|
21
|
-
<% else %>
|
22
|
-
<div class="text-right">
|
23
|
-
<button class="ml-auto button button button__sm button__secondary"><%= t(".reply_question") %></button>
|
24
|
-
</div>
|
25
|
-
<% end %>
|
26
29
|
<% end %>
|
27
30
|
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<details class="meeting-polls__question" data-question="<%= question.id %>" <%= "open" if local_assigns.fetch(:open_question, nil) == question %>>
|
1
|
+
<details class="meeting-polls__question" data-question="<%= question.id %>" data-status="<%= question.status %>" <%= "open" if local_assigns.fetch(:open_question, nil) == question %>>
|
2
2
|
<% if question.published? %>
|
3
3
|
<%= render partial: "decidim/meetings/polls/questions/published_question", locals: { question:, form: local_assigns.fetch(:form, nil) } %>
|
4
4
|
<% elsif question.closed? %>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
var $
|
1
|
+
var $meetingPoll = $("[data-decidim-meetings-poll]");
|
2
2
|
|
3
|
-
if($
|
4
|
-
$
|
3
|
+
if($meetingPoll.length){
|
4
|
+
$meetingPoll.html('<%= j(render partial: "decidim/meetings/polls/questions/index").strip.html_safe %>');
|
5
5
|
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
var $
|
1
|
+
var $adminMeetingPoll = $("[data-decidim-admin-meetings-poll]");
|
2
2
|
|
3
|
-
if($
|
4
|
-
$
|
3
|
+
if($adminMeetingPoll.length){
|
4
|
+
$adminMeetingPoll.html('<%= j(render partial: "decidim/meetings/polls/questions/index_admin", locals: { open_question: }).strip.html_safe %>');
|
5
5
|
}
|