decidim-meetings 0.28.2 → 0.29.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
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/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 +0 -2
- 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/meeting_registrations_form.rb +1 -1
- 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/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 +109 -1
- data/app/packs/stylesheets/decidim/meetings/_live_event.scss +0 -94
- data/app/permissions/decidim/meetings/permissions.rb +20 -0
- 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/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 +1 -1
- 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_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/devise/mailer/join_meeting.html.erb +3 -1
- data/app/views/devise/mailer/join_meeting.text.erb +3 -1
- data/config/locales/ar.yml +0 -10
- data/config/locales/bg.yml +44 -12
- data/config/locales/ca.yml +44 -12
- data/config/locales/cs.yml +24 -11
- data/config/locales/de.yml +44 -12
- data/config/locales/el.yml +0 -10
- data/config/locales/en.yml +44 -12
- data/config/locales/es-MX.yml +44 -12
- data/config/locales/es-PY.yml +44 -12
- data/config/locales/es.yml +44 -12
- data/config/locales/eu.yml +44 -12
- data/config/locales/fi-plain.yml +44 -12
- data/config/locales/fi.yml +44 -12
- data/config/locales/fr-CA.yml +44 -12
- data/config/locales/fr.yml +44 -12
- data/config/locales/ga-IE.yml +0 -5
- data/config/locales/gl.yml +0 -4
- data/config/locales/hu.yml +0 -7
- data/config/locales/id-ID.yml +0 -3
- data/config/locales/is-IS.yml +0 -3
- data/config/locales/it.yml +0 -8
- data/config/locales/ja.yml +44 -12
- data/config/locales/lb.yml +0 -3
- data/config/locales/lt.yml +0 -10
- data/config/locales/lv.yml +0 -3
- data/config/locales/nl.yml +0 -10
- data/config/locales/no.yml +0 -9
- data/config/locales/pl.yml +44 -12
- data/config/locales/pt-BR.yml +17 -12
- data/config/locales/pt.yml +0 -8
- data/config/locales/ro-RO.yml +0 -10
- data/config/locales/ru.yml +0 -3
- data/config/locales/sk.yml +0 -3
- data/config/locales/sv.yml +0 -9
- data/config/locales/tr-TR.yml +0 -4
- data/config/locales/uk.yml +0 -3
- data/config/locales/zh-CN.yml +0 -4
- data/config/locales/zh-TW.yml +0 -10
- data/db/migrate/20240130135858_add_withdrawn_fields_on_meetings.rb +23 -0
- data/decidim-meetings.gemspec +1 -1
- data/lib/decidim/api/meeting_type.rb +3 -0
- data/lib/decidim/meetings/component.rb +2 -2
- data/lib/decidim/meetings/engine.rb +5 -1
- data/lib/decidim/meetings/meeting_serializer.rb +3 -1
- data/lib/decidim/meetings/seeds.rb +25 -15
- data/lib/decidim/meetings/test/factories.rb +1 -1
- 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 +22 -18
- data/app/views/decidim/meetings/admin/agenda/show.html.erb +0 -0
@@ -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 %>
|
@@ -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
|
}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
<p class="email-greeting"><%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %></p>
|
2
2
|
|
3
3
|
<p class="email-instructions">
|
4
|
-
<%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting",
|
4
|
+
<%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting",
|
5
|
+
invited_by: @resource.invited_by.name,
|
6
|
+
application: translated_attribute(@resource.organization.name)) %>
|
5
7
|
</p>
|
6
8
|
|
7
9
|
<p class="email-button email-button__cta cta-decline"><%= link_to t("devise.mailer.invitation_instructions.decline"), accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).decline_invitation_meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %></p>
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %>
|
2
2
|
|
3
|
-
<%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting",
|
3
|
+
<%= t("decidim.meetings.admin.invite_join_meeting_mailer.invite.invited_you_to_join_a_meeting",
|
4
|
+
invited_by: @resource.invited_by.name,
|
5
|
+
application: translated_attribute(@resource.organization.name)) %>
|
4
6
|
|
5
7
|
<%= t("devise.mailer.invitation_instructions.decline") %>:
|
6
8
|
<% accept_invitation_url(@resource, invitation_token: @token, invite_redirect: Decidim::EngineRouter.main_proxy(@opts[:meeting].component).decline_invitation_meeting_registration_path(meeting_id: @opts[:meeting], participatory_space_id: @opts[:meeting].component.participatory_space), host: @resource.organization.host) %>
|
data/config/locales/ar.yml
CHANGED
@@ -267,12 +267,8 @@ ar:
|
|
267
267
|
non_user: مشارك غير موجود
|
268
268
|
select_user: اختر المشارك
|
269
269
|
index:
|
270
|
-
filter:
|
271
|
-
all: الكل
|
272
|
-
sent: أرسلت
|
273
270
|
invite_attendee: دعوة الحضور
|
274
271
|
invites: تدعو
|
275
|
-
search: بحث
|
276
272
|
meeting_closes:
|
277
273
|
edit:
|
278
274
|
close: قريب
|
@@ -372,7 +368,6 @@ ar:
|
|
372
368
|
body: الاجتماع <a href="%{meeting_path}">"%{meeting_title}"</a> في انتظار إغلاقه. الرجاء إضافة تقرير عن الاجتماع باستخدام زر "إغلاق الاجتماع".
|
373
369
|
greetings: تحيات,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
374
370
|
hello: مرحبا %{username}،
|
375
|
-
subject: يمكنك الآن إغلاق اجتماعك بتقديم تقرير على منصة %{organization_name}
|
376
371
|
conference_venues: أماكن المؤتمر
|
377
372
|
content_blocks:
|
378
373
|
upcoming_meetings:
|
@@ -389,7 +384,6 @@ ar:
|
|
389
384
|
iframe_embed_type:
|
390
385
|
embed_in_meeting_page: تضمين في صفحة الاجتماع
|
391
386
|
none: بلا
|
392
|
-
open_in_live_event_page: فتح في صفحة الحدث المباشر (مع استطلاعات الرأي الاختيارية)
|
393
387
|
open_in_new_tab: فتح عنوان الرابط URL في تبويب جديد
|
394
388
|
last_activity:
|
395
389
|
meeting_updated: 'تم تحديث الاجتماع:'
|
@@ -397,7 +391,6 @@ ar:
|
|
397
391
|
layouts:
|
398
392
|
live_event:
|
399
393
|
close: إغلاق
|
400
|
-
questions: الأسئلة
|
401
394
|
mailer:
|
402
395
|
invite_join_meeting_mailer:
|
403
396
|
invite:
|
@@ -534,12 +527,9 @@ ar:
|
|
534
527
|
title: عنوان
|
535
528
|
polls:
|
536
529
|
questions:
|
537
|
-
closed_question:
|
538
|
-
question_results: نتائج السؤال
|
539
530
|
index:
|
540
531
|
empty_questions: خلال هذا الاجتماع، سيتم إرسال بعض الأسئلة وسوف تتمكن من الإجابة عليها. سيتم عرضها هنا.
|
541
532
|
index_admin:
|
542
|
-
admin_dashboard: لوحة المدراء
|
543
533
|
edit: تحرير في لوحة المدراء
|
544
534
|
question: سؤال
|
545
535
|
received_answer: الإجابة المتلقاة
|
data/config/locales/bg.yml
CHANGED
@@ -91,6 +91,11 @@ bg:
|
|
91
91
|
decidim:
|
92
92
|
admin:
|
93
93
|
filters:
|
94
|
+
accepted_at_not_null:
|
95
|
+
label: Прието
|
96
|
+
values:
|
97
|
+
'false': Не се приема
|
98
|
+
'true': Прието
|
94
99
|
meetings:
|
95
100
|
category_id_eq:
|
96
101
|
label: Категория
|
@@ -118,6 +123,18 @@ bg:
|
|
118
123
|
hybrid: Хибрид
|
119
124
|
in_person: Лично
|
120
125
|
online: Онлайн
|
126
|
+
rejected_at_not_null:
|
127
|
+
label: Отхвърлено
|
128
|
+
values:
|
129
|
+
'false': Не е отхвърлено
|
130
|
+
'true': Отхвърлено
|
131
|
+
search_placeholder:
|
132
|
+
user_name_or_user_email_cont: Търси по име или имейл
|
133
|
+
sent_at_not_null:
|
134
|
+
label: Изпратено
|
135
|
+
values:
|
136
|
+
'false': Не е изпратено
|
137
|
+
'true': Изпратено
|
121
138
|
meeting_copies:
|
122
139
|
create:
|
123
140
|
error: Възникна проблем при дублирането на тази среща.
|
@@ -130,6 +147,7 @@ bg:
|
|
130
147
|
actions:
|
131
148
|
comment: Коментар
|
132
149
|
join: Присъединяване
|
150
|
+
reply_poll: Отговор на анкета
|
133
151
|
name: Срещи
|
134
152
|
settings:
|
135
153
|
global:
|
@@ -282,15 +300,9 @@ bg:
|
|
282
300
|
non_user: Несъществуващ участник
|
283
301
|
select_user: Избор на участник
|
284
302
|
index:
|
285
|
-
filter:
|
286
|
-
accepted: Прието
|
287
|
-
all: Всички
|
288
|
-
rejected: Отхвърлено
|
289
|
-
sent: Изпратено
|
290
303
|
invite_attendee: Изпращане на покана на участника
|
291
304
|
invites: Покани
|
292
305
|
registrations_disabled: Не можете да поканите участник, защото регистрациите са изключени.
|
293
|
-
search: Търсене
|
294
306
|
meeting_closes:
|
295
307
|
edit:
|
296
308
|
close: Затвори
|
@@ -352,6 +364,13 @@ bg:
|
|
352
364
|
update:
|
353
365
|
invalid: Възникна проблем при актуализирането на тази анкета за среща.
|
354
366
|
success: Анкетата за среща бе актуализирана успешно.
|
367
|
+
poll:
|
368
|
+
form:
|
369
|
+
announcement_html:
|
370
|
+
- Когато даден въпрос получи отговори или бъде публикуван/затворен, той вече не може да бъде редактиран.
|
371
|
+
- Можете да добавите въпрос по всяко време.
|
372
|
+
- Анкетата ще бъде затворена, когато резултатите от всички създадени въпроси бъдат публикувани.
|
373
|
+
- Посетете <a href='%{admin_link}'>страницата за администриране на анкетата</a>, за да изпратите въпроси и да публикувате резултати.
|
355
374
|
registrations:
|
356
375
|
edit:
|
357
376
|
save: Запази
|
@@ -413,7 +432,7 @@ bg:
|
|
413
432
|
body: Срещата <a href="%{meeting_path}">"%{meeting_title}"</a> предстои да бъде затворена. Моля, добавете отчет за срещата, като използвате бутона "Затвори срещата".
|
414
433
|
greetings: Поздрав,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
415
434
|
hello: Здравейте %{username},
|
416
|
-
subject: Вече можете да затворите срещата
|
435
|
+
subject: Вече можете да затворите срещата „%{meeting_title}“ с доклад
|
417
436
|
conference_venues: Места за провеждане на конференции
|
418
437
|
content_blocks:
|
419
438
|
upcoming_meetings:
|
@@ -430,16 +449,14 @@ bg:
|
|
430
449
|
iframe_embed_type:
|
431
450
|
embed_in_meeting_page: Вграждане в страницата на срещата
|
432
451
|
none: Няма
|
433
|
-
open_in_live_event_page: Отваряне в страницата на събитието на живо
|
452
|
+
open_in_live_event_page: Отваряне в страницата на събитието на живо
|
434
453
|
open_in_new_tab: Отваряне в страницата на събитието на живо
|
435
454
|
last_activity:
|
436
455
|
meeting_updated: 'Срещата е актуализирана:'
|
437
456
|
new_meeting: 'Нова среща:'
|
438
457
|
layouts:
|
439
458
|
live_event:
|
440
|
-
administrate: Администриране
|
441
459
|
close: затваряне
|
442
|
-
questions: Въпроси
|
443
460
|
mailer:
|
444
461
|
invite_join_meeting_mailer:
|
445
462
|
invite:
|
@@ -520,6 +537,8 @@ bg:
|
|
520
537
|
edit_close_meeting: Редактиране на отчета за срещата
|
521
538
|
edit_meeting: Редактиране на срещата
|
522
539
|
join_meeting: Присъединяване към срещата
|
540
|
+
reply_poll: Отговор на анкета
|
541
|
+
view_poll: Вижте анкетата
|
523
542
|
meetings:
|
524
543
|
no_meetings_warning: Няма срещи, които отговарят на вашите критерии за търсене или няма насрочена среща.
|
525
544
|
upcoming_meetings_warning: Понастоящем няма насрочени срещи, но тук можете да намерите изброени всички минали срещи.
|
@@ -578,13 +597,22 @@ bg:
|
|
578
597
|
start_time: Начална дата
|
579
598
|
title: Заглавие
|
580
599
|
polls:
|
600
|
+
answers:
|
601
|
+
index:
|
602
|
+
administrate: Администриране
|
603
|
+
title: Анкета
|
604
|
+
index_admin:
|
605
|
+
back_to_meeting: Назад към срещата
|
606
|
+
title: Администриране на анкета
|
607
|
+
view_poll: Вижте анкетата
|
581
608
|
questions:
|
582
609
|
closed_question:
|
583
|
-
|
610
|
+
announcement: Отговорите на този въпрос са затворени.
|
611
|
+
question: Въпрос
|
612
|
+
question_results: Резултати
|
584
613
|
index:
|
585
614
|
empty_questions: По време на тази среща ще бъдат изпратени някои въпроси и вие ще можете да отговорите на тях. Те ще бъдат показани тук.
|
586
615
|
index_admin:
|
587
|
-
admin_dashboard: Администраторско табло
|
588
616
|
edit: Редактирайте в админ панела
|
589
617
|
question: Въпрос
|
590
618
|
received_answer: получен отговор
|
@@ -592,6 +620,10 @@ bg:
|
|
592
620
|
results: Резултати
|
593
621
|
send: Изпрати
|
594
622
|
sent: Изпратено
|
623
|
+
statuses:
|
624
|
+
closed: Резултатите са изпратени (затворено)
|
625
|
+
published: Изпратено (отворено)
|
626
|
+
unpublished: Чака изпращане
|
595
627
|
published_question:
|
596
628
|
max_choices_alert: Избрани са прекалено много варианти
|
597
629
|
question: Въпрос
|