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
@@ -0,0 +1,126 @@
|
|
1
|
+
<% add_decidim_page_title(t("title", scope: "decidim.meetings.admin.registrations_attendees.index")) %>
|
2
|
+
<div class="item_show__header">
|
3
|
+
<h1 class="item_show__header-title">
|
4
|
+
<%= t("title", scope: "decidim.meetings.admin.registrations_attendees.index") %>
|
5
|
+
<div class="flex items-center gap-x-4 ml-auto">
|
6
|
+
<%= 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}" %>
|
7
|
+
|
8
|
+
<% if allowed_to? :export_registrations, :meeting, meeting: meeting %>
|
9
|
+
<div class="relative">
|
10
|
+
<button class="exports button button__sm button__transparent-secondary button--title" data-controller="dropdown" data-target="export-dropdown">
|
11
|
+
<%= t "actions.export", scope: "decidim.admin" %>
|
12
|
+
<%= icon "arrow-down-s-line" %>
|
13
|
+
<%= icon "arrow-down-s-line" %>
|
14
|
+
</button>
|
15
|
+
|
16
|
+
<ul class="dropdown dropdown__bottom" id="export-dropdown" aria-hidden="true">
|
17
|
+
<% %w(CSV JSON Excel).each do |format| %>
|
18
|
+
<li class="dropdown__item">
|
19
|
+
<%= link_to export_meeting_registrations_path(meeting_id: meeting, format:), class: "dropdown__button" do %>
|
20
|
+
<%= t("decidim.admin.exports.export_as", name: t("decidim.#{current_component.manifest.name}.admin.exports.registrations"), export_format: format) %>
|
21
|
+
<% end %>
|
22
|
+
</li>
|
23
|
+
<% end %>
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
<%= 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" %>
|
29
|
+
<%= 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" %>
|
30
|
+
</div>
|
31
|
+
</h1>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="item__edit item__edit-1col">
|
35
|
+
<div class="item__edit-form">
|
36
|
+
<% if meeting.component.settings.registration_code_enabled %>
|
37
|
+
<div class="card mb-4">
|
38
|
+
<div class="card-divider">
|
39
|
+
<h2 class="card-title">
|
40
|
+
<%= t(".validate_registration_code") %>
|
41
|
+
</h2>
|
42
|
+
</div>
|
43
|
+
<div class="card-section">
|
44
|
+
<%= decidim_form_for(@validation_form, url: validate_registration_code_meeting_registrations_attendees_path, html: { class: "form form-defaults validate_meeting_registration_code" }) do |f| %>
|
45
|
+
<div class="form__wrapper">
|
46
|
+
<div class="card-section">
|
47
|
+
<div class="row column">
|
48
|
+
<div>
|
49
|
+
<%= f.label :code %>
|
50
|
+
</div>
|
51
|
+
<%= f.text_field :code, label: false %>
|
52
|
+
</div>
|
53
|
+
<div class="row column">
|
54
|
+
<%= f.submit t(".validate"), class: "button button__sm button__transparent-secondary" %>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
<% end %>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
<% end %>
|
62
|
+
|
63
|
+
<div class="card" id="meeting-invites">
|
64
|
+
<div class="table-stacked">
|
65
|
+
<table class="table-list">
|
66
|
+
<thead>
|
67
|
+
<tr>
|
68
|
+
<th><%= t("models.registration.fields.name", scope: "decidim.meetings") %></th>
|
69
|
+
<th><%= t("models.registration.fields.email", scope: "decidim.meetings") %></th>
|
70
|
+
<th><%= t("models.registration.fields.status", scope: "decidim.meetings") %></th>
|
71
|
+
<th><%= t("models.registration.actions", scope: "decidim.meetings") %></th>
|
72
|
+
</tr>
|
73
|
+
</thead>
|
74
|
+
<tbody>
|
75
|
+
<% registrations.each do |registration| %>
|
76
|
+
<% presenter = registration.presenter %>
|
77
|
+
|
78
|
+
<tr data-id="<%= registration.id %>">
|
79
|
+
<td data-label="<%= t("models.registration.fields.name", scope: "decidim.meetings") %>">
|
80
|
+
<%= presenter.name %>
|
81
|
+
</td>
|
82
|
+
<td data-label="<%= t("models.registration.fields.email", scope: "decidim.meetings") %>">
|
83
|
+
<%= presenter.email %>
|
84
|
+
</td>
|
85
|
+
<td class="<%= presenter.status_html_class %>" data-label="<%= t("models.registration.fields.status", scope: "decidim.meetings") %>">
|
86
|
+
<strong class="label <%= presenter.status_html_class %>">
|
87
|
+
<%= presenter.status %>
|
88
|
+
</strong>
|
89
|
+
</td>
|
90
|
+
<td class="table-list__actions" data-label="<%= t("models.registration.actions", scope: "decidim.meetings") %>">
|
91
|
+
<% if allowed_to? :update, :meeting, meeting: meeting %>
|
92
|
+
<button type="button" data-controller="dropdown" data-target="actions-meeting-registration-<%= registration.id %>" aria-label="<%= t("actions.actions_label", scope: "decidim.admin", resource: translated_attribute(meeting.title)) %>">
|
93
|
+
<%= icon "more-fill", class: "text-secondary" %>
|
94
|
+
</button>
|
95
|
+
|
96
|
+
<div class="inline-block relative">
|
97
|
+
<ul id="actions-meeting-registration-<%= registration.id %>" class="dropdown dropdown__action" aria-hidden="true">
|
98
|
+
<li class="dropdown__item">
|
99
|
+
<% if presenter.validated? %>
|
100
|
+
<div class="dropdown__button-disabled">
|
101
|
+
<%= with_tooltip t("tooltips.cannot_mark_attendee", scope: "decidim.admin") do %>
|
102
|
+
<%= icon "user-follow-line", class: "text-gray" %>
|
103
|
+
<span>
|
104
|
+
<%= t("actions.mark_as_attendee", scope: "decidim.meetings") %>
|
105
|
+
</span>
|
106
|
+
<% end %>
|
107
|
+
</div>
|
108
|
+
<% else %>
|
109
|
+
<%= link_to mark_as_attendee_meeting_registrations_attendee_path(id: registration), method: :put, class: "dropdown__button" do %>
|
110
|
+
<%= icon "user-follow-line" %>
|
111
|
+
<%= t("actions.mark_as_attendee", scope: "decidim.meetings") %>
|
112
|
+
<% end %>
|
113
|
+
<% end %>
|
114
|
+
</li>
|
115
|
+
</ul>
|
116
|
+
</div>
|
117
|
+
<% end %>
|
118
|
+
</td>
|
119
|
+
</tr>
|
120
|
+
<% end %>
|
121
|
+
</tbody>
|
122
|
+
</table>
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
</div>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<header class="meeting-polls__header">
|
17
17
|
<div>
|
18
|
-
<strong class="text-secondary"><%= current_organization_name %></strong> / <strong><%= present(meeting).title(
|
18
|
+
<strong class="text-secondary"><%= current_organization_name %></strong> / <strong><%= present(meeting).title(html_escape: true) %></strong>
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div class="flex gap-10">
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<%= text_editor_for(form, :closing_report
|
1
|
+
<%= text_editor_for(form, :closing_report) %>
|
2
2
|
|
3
3
|
<%= form.number_field :attendees_count, min: 0, help_text: t("decidim.forms.meetings.attendees_count_help_text") %>
|
4
4
|
|
5
|
-
<% if Decidim
|
5
|
+
<% if Decidim.module_installed?(:proposals) %>
|
6
6
|
<%= render partial: "decidim/proposals/proposals/proposals_picker", locals: { form:, field: :proposals } %>
|
7
7
|
<% end %>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<div>
|
2
|
-
<%= form.text_field :title, autofocus: true
|
2
|
+
<%= form.text_field :title, autofocus: true %>
|
3
3
|
</div>
|
4
4
|
|
5
5
|
<div>
|
6
|
-
<%= text_editor_for(form, :description
|
6
|
+
<%= text_editor_for(form, :description) %>
|
7
7
|
</div>
|
8
8
|
|
9
9
|
<div>
|
@@ -79,13 +79,4 @@
|
|
79
79
|
<label><%= t(".disclaimer", organization: organization_name(current_component.organization)) %></label><br>
|
80
80
|
</div>
|
81
81
|
|
82
|
-
<div>
|
83
|
-
<%= form.select(
|
84
|
-
:user_group_id,
|
85
|
-
Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.map { |g| [g.name, g.id] },
|
86
|
-
prompt: current_user.name,
|
87
|
-
label: t(".create_as")
|
88
|
-
) %>
|
89
|
-
</div>
|
90
|
-
|
91
82
|
<%= append_javascript_pack_tag "decidim_meetings" %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%= render partial: "schema_org_event_meeting" %>
|
4
4
|
|
5
5
|
<section class="layout-main__section layout-main__heading">
|
6
|
-
<h1 class="h2 decorator"><%= present(meeting).title(
|
6
|
+
<h1 class="h2 decorator"><%= present(meeting).title(html_escape: true ) %></h1>
|
7
7
|
<%= cell "decidim/meetings/dates_and_map", meeting %>
|
8
8
|
<div class="block md:hidden">
|
9
9
|
<%= render partial: "meeting_aside", locals: { hide_modal: true } %>
|
@@ -34,7 +34,7 @@
|
|
34
34
|
<div class="layout-author <%= "has_status" if meeting.private_meeting? || meeting.withdrawn? %>">
|
35
35
|
<div class="relative flex items-center justify-center w-full">
|
36
36
|
<div class="w-10/12 flex items-center gap-4">
|
37
|
-
<%= cell "decidim/author", author_presenter_for(meeting.
|
37
|
+
<%= cell "decidim/author", author_presenter_for(meeting.author), from: meeting, context_actions: nil, layout: :compact %>
|
38
38
|
</div>
|
39
39
|
<%= render "decidim/shared/resource_actions", resource: meeting do %>
|
40
40
|
<%= render "decidim/meetings/meetings/meeting_actions" %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
2
2
|
<li role="menuitem">
|
3
|
-
<%= link_to edit_meeting_path(meeting), class: "
|
3
|
+
<%= link_to edit_meeting_path(meeting), class: "dropdown__button" do %>
|
4
4
|
<span><%= t("edit_meeting", scope: "decidim.meetings.meetings.meeting") %></span>
|
5
5
|
<%= icon "pencil-line" %>
|
6
6
|
<% end %>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<% if allowed_to?(:close, :meeting, meeting: meeting) %>
|
11
11
|
<% caption = meeting.closed? ? t("edit_close_meeting", scope: "decidim.meetings.meetings.meeting") : t("close_meeting", scope: "decidim.meetings.meetings.meeting") %>
|
12
12
|
<li role="menuitem">
|
13
|
-
<%= link_to edit_meeting_meeting_close_path(meeting_id: meeting.id, id: meeting.id), class: "
|
13
|
+
<%= link_to edit_meeting_meeting_close_path(meeting_id: meeting.id, id: meeting.id), class: "dropdown__button" do %>
|
14
14
|
<span><%= caption %></span>
|
15
15
|
<%= icon "lock-line" %>
|
16
16
|
<% end %>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
:withdraw,
|
24
24
|
withdraw_meeting_path(meeting),
|
25
25
|
method: :put,
|
26
|
-
class: "
|
26
|
+
class: "dropdown__button" ,
|
27
27
|
title: t("withdraw_btn_hint", scope: "decidim.meetings.meetings.show"),
|
28
28
|
data: { confirm: t("withdraw_confirmation_html", scope: "decidim.meetings.meetings.show") }
|
29
29
|
) do %>
|
@@ -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"><%= render_meeting_sanitize_field(agenda_item, :description) %></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"><%= render_meeting_sanitize_field(agenda_item_child, :description) %></div>
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= render partial: "meeting_poll_actions" %>
|
2
2
|
|
3
3
|
<% if meeting.can_be_joined_by?(current_user) || meeting.on_different_platform? %>
|
4
|
-
<section class="layout-aside__section layout-aside__buttons layout-aside__ctas-buttons" data-sticky-buttons>
|
4
|
+
<section class="layout-aside__section layout-aside__buttons layout-aside__ctas-buttons" data-controller="sticky-buttons">
|
5
5
|
<%= cell "decidim/meetings/join_meeting_button", meeting, show_remaining_slots: true, hide_modal: local_assigns[:hide_modal] %>
|
6
6
|
</section>
|
7
7
|
<% end %>
|
@@ -35,19 +35,20 @@
|
|
35
35
|
<% end %>
|
36
36
|
<% end %>
|
37
37
|
|
38
|
-
|
38
|
+
<% if registration.present? %>
|
39
|
+
<%= waitlist_status_block(registration) %>
|
40
|
+
|
41
|
+
<% if registration.meeting.component.settings.registration_code_enabled && registration.registered? %>
|
42
|
+
<%= render partial: "registration_code_modal" %>
|
39
43
|
<%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "coupon-line" } do %>
|
40
|
-
<
|
41
|
-
|
42
|
-
|
43
|
-
<div class="label success"><%= t("validated", scope: "decidim.meetings.meetings.show.registration_state") %></div>
|
44
|
-
<% else %>
|
45
|
-
<div class="label warning"><%= t("validation_pending", scope: "decidim.meetings.meetings.show.registration_state") %></div>
|
46
|
-
<% end %>
|
44
|
+
<a href="#" class="text-secondary underline font-semibold text-sm" data-dialog-open="RegistrationQRCodeDialog">
|
45
|
+
<%= registration_code_help_text %>
|
46
|
+
</a>
|
47
47
|
<% end %>
|
48
48
|
<% end %>
|
49
|
+
<% end %>
|
49
50
|
|
50
|
-
|
51
|
+
<% if meeting.services.any? %>
|
51
52
|
<% meeting.services.each do |service| %>
|
52
53
|
<%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "star-line" } do %>
|
53
54
|
<h3 class="meeting__aside-block__title"><%= translated_attribute(service["title"]) %></h3>
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<% if meeting.poll&.has_questions? %>
|
3
3
|
<section class="layout-aside__section layout-aside__buttons<%= extra_classes %>">
|
4
4
|
<% reply_text = meeting.poll.has_open_questions? ? t("reply_poll", scope: "decidim.meetings.meetings.meeting") : t("view_poll", scope: "decidim.meetings.meetings.meeting") %>
|
5
|
-
<%= action_authorized_link_to :reply_poll, reply_text,
|
5
|
+
<%= action_authorized_link_to :reply_poll, reply_text, meeting_polls_responses_path(meeting), class: "button button__xl button__secondary w-full", data: { "redirect_url" => meeting_polls_responses_path(meeting) }, resource: meeting %>
|
6
6
|
<% if !allowed_to?(:reply_poll, :meeting, meeting:) && allowed_to?(:update, :poll, meeting:) %>
|
7
|
-
<%= link_to
|
8
|
-
<span><%= t("administrate", scope: "decidim.meetings.polls.
|
7
|
+
<%= link_to admin_meeting_polls_responses_path(meeting), class: "button button__sm button__transparent-secondary w-full" do %>
|
8
|
+
<span><%= t("administrate", scope: "decidim.meetings.polls.responses.index") %></span>
|
9
9
|
<% end %>
|
10
10
|
<% end %>
|
11
11
|
</section>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= decidim_modal id: "RegistrationQRCodeDialog", class: "qr-modal" do %>
|
2
|
+
<div data-dialog-container>
|
3
|
+
<div data-dialog-title>
|
4
|
+
<%= icon "qr-code-line" %>
|
5
|
+
<h2 class="h4" tabindex="-1"><%= t("registration_and_qr_code", scope: "decidim.meetings.meetings.show") %></h2>
|
6
|
+
</div>
|
7
|
+
<div class="content">
|
8
|
+
<div>
|
9
|
+
<img src="data:;base64,<%= registration_qr_code_image %>" alt="<%= t("registration_and_qr_code", scope: "decidim.meetings.meetings.show") %>">
|
10
|
+
</div>
|
11
|
+
<div class="text-center">
|
12
|
+
<h2 class="h4"><%= t("registration_code", code: registration.code, scope: "decidim.meetings.meetings.show") %></h2>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<% if question.unpublished? %>
|
26
26
|
<button class="button button__sm button__secondary"><%= t(".send") %></button>
|
27
27
|
<% else %>
|
28
|
-
<div><%= pluralize(question.
|
28
|
+
<div><%= pluralize(question.responses_count, t(".received_response"), t(".received_responses")) %></div>
|
29
29
|
<% end %>
|
30
30
|
</div>
|
31
31
|
|
@@ -4,15 +4,15 @@
|
|
4
4
|
|
5
5
|
<div>
|
6
6
|
|
7
|
-
<% @form = form || Decidim::Meetings::
|
7
|
+
<% @form = form || Decidim::Meetings::ResponseForm.new(question_id: question.id, current_user:) %>
|
8
8
|
|
9
9
|
<p class="h3"><%= @form.label %></p>
|
10
10
|
|
11
|
-
<%= decidim_form_for(@form, url:
|
12
|
-
<div class="meeting-
|
11
|
+
<%= decidim_form_for(@form, url: meeting_polls_responses_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__response" data-max-choices="<%= question.max_choices %>">
|
13
13
|
<p class="form-error max-choices-alert mt-0 mb-4"><%= t(".max_choices_alert") %></p>
|
14
14
|
|
15
|
-
<%= render partial: "decidim/meetings/polls/
|
15
|
+
<%= render partial: "decidim/meetings/polls/responses/#{question.question_type}", locals: { response: @form.response, question:, response_form: form, disabled: question.responded_by?(current_user), field_id: question.id } %>
|
16
16
|
|
17
17
|
<%= form.hidden_field :question_id %>
|
18
18
|
|
@@ -20,7 +20,7 @@
|
|
20
20
|
<small class="form-error is-visible mt-1"><%= msg %></small>
|
21
21
|
<% end %>
|
22
22
|
|
23
|
-
<% if question.
|
23
|
+
<% if question.responded_by?(current_user) %>
|
24
24
|
<%= cell("decidim/announcement", t(".question_replied"), callout_class: "success" ) %>
|
25
25
|
<% else %>
|
26
26
|
<button class="ml-auto mt-8 button button__lg button__secondary"><%= t(".reply_question") %></button>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div class="response-questionnaire__single-option js-check-box-collection">
|
2
|
+
<% question.response_options.each_with_index do |response_option, idx| %>
|
3
|
+
<% choice = response.choices.find { |choice| choice.decidim_response_option_id == response_option.id } if response %>
|
4
|
+
|
5
|
+
<%= label_tag "response[choices][#{response_option.id}][response_option_id]", nil, class: "js-collection-input" do %>
|
6
|
+
<%= check_box_tag "response[choices][#{response_option.id}][response_option_id]",
|
7
|
+
response_option.id,
|
8
|
+
choice.present?, disabled: %>
|
9
|
+
|
10
|
+
<%= translated_attribute(response_option.body) %>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% choice = response.choices.first if response %>
|
2
|
+
|
3
|
+
<% question.response_options.each_with_index do |response_option, idx| %>
|
4
|
+
<% choice_id = "#{field_id}_choices_#{idx}" %>
|
5
|
+
|
6
|
+
<%= label_tag "#{choice_id}_response_option" do %>
|
7
|
+
<%= radio_button_tag "response[choices][#{question.id}][response_option_id]",
|
8
|
+
response_option.id,
|
9
|
+
response_option.id == choice.try(:decidim_response_option_id),
|
10
|
+
id: "#{choice_id}_response_option", disabled: %>
|
11
|
+
<%= translated_attribute(response_option.body) %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
@@ -14,17 +14,17 @@
|
|
14
14
|
<div class="meeting-polls__topbar is-admin">
|
15
15
|
<%= link_to meeting_path(meeting), class: "button button__sm button__text md:button__text-secondary" do %>
|
16
16
|
<%= icon "arrow-left-line" %>
|
17
|
-
<%= t("back_to_meeting", scope: "decidim.meetings.polls.
|
17
|
+
<%= t("back_to_meeting", scope: "decidim.meetings.polls.responses.index_admin") %>
|
18
18
|
<% end %>
|
19
19
|
|
20
|
-
<%= action_authorized_link_to :reply_poll,
|
21
|
-
<%= t("view_poll", scope: "decidim.meetings.polls.
|
20
|
+
<%= action_authorized_link_to :reply_poll, meeting_polls_responses_path(meeting), class: "button button__sm button__secondary", data: { "redirect_url" => meeting_polls_responses_path(meeting) }, resource: meeting do %>
|
21
|
+
<%= t("view_poll", scope: "decidim.meetings.polls.responses.index_admin") %>
|
22
22
|
<% end %>
|
23
23
|
</div>
|
24
24
|
|
25
25
|
<div class="text-center">
|
26
26
|
<h1 class="title-decorator inline-block text-left">
|
27
|
-
<%= t("title", scope: "decidim.meetings.polls.
|
27
|
+
<%= t("title", scope: "decidim.meetings.polls.responses.index_admin") %>
|
28
28
|
</h1>
|
29
29
|
</div>
|
30
30
|
|
@@ -14,19 +14,19 @@
|
|
14
14
|
<div class="meeting-polls__topbar">
|
15
15
|
<%= link_to meeting_path(meeting), class: "button button__sm button__text-secondary" do %>
|
16
16
|
<%= icon "arrow-left-line" %>
|
17
|
-
<%= t("back_to_meeting", scope: "decidim.meetings.polls.
|
17
|
+
<%= t("back_to_meeting", scope: "decidim.meetings.polls.responses.index_admin") %>
|
18
18
|
<% end %>
|
19
19
|
|
20
20
|
<% if admin_allowed_to?(:update, :poll, meeting: meeting, poll: poll) %>
|
21
|
-
<%= link_to
|
22
|
-
<%= t("administrate", scope: "decidim.meetings.polls.
|
21
|
+
<%= link_to admin_meeting_polls_responses_path(meeting), class: "button button__sm button__primary" do %>
|
22
|
+
<%= t("administrate", scope: "decidim.meetings.polls.responses.index") %>
|
23
23
|
<% end %>
|
24
24
|
<% end %>
|
25
25
|
</div>
|
26
26
|
|
27
27
|
<div class="text-center">
|
28
28
|
<h1 class="title-decorator inline-block text-left">
|
29
|
-
<%= t("title", scope: "decidim.meetings.polls.
|
29
|
+
<%= t("title", scope: "decidim.meetings.polls.responses.index") %>
|
30
30
|
</h1>
|
31
31
|
</div>
|
32
32
|
|
@@ -1,8 +1,13 @@
|
|
1
1
|
<p class="email-instructions"><%= t(".confirmed_html", title: present(@meeting).title, url: @locator.url) %></p>
|
2
2
|
|
3
|
-
<% if @
|
3
|
+
<% if @registration_code_enabled %>
|
4
4
|
<p><%= t(".registration_code", code: @registration.code) %></p>
|
5
|
+
|
6
|
+
<center>
|
7
|
+
<%= image_tag attachments[@qr_filename].url %>
|
8
|
+
</center>
|
5
9
|
<% end %>
|
10
|
+
|
6
11
|
<% if @meeting.customize_registration_email? %>
|
7
12
|
<p><%= present(@meeting).registration_email_custom_content %></p>
|
8
13
|
<% end %>
|
data/config/assets.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
base_path = File.expand_path("..", __dir__)
|
4
4
|
|
5
|
-
Decidim::
|
6
|
-
Decidim::
|
5
|
+
Decidim::Shakapacker.register_path("#{base_path}/app/packs")
|
6
|
+
Decidim::Shakapacker.register_entrypoints(
|
7
7
|
decidim_meetings: "#{base_path}/app/packs/entrypoints/decidim_meetings.js",
|
8
8
|
decidim_meetings_admin: "#{base_path}/app/packs/entrypoints/decidim_meetings_admin.js"
|
9
9
|
)
|
data/config/locales/ar.yml
CHANGED
@@ -17,7 +17,6 @@ ar:
|
|
17
17
|
customize_registration_email: تخصيص بريد التسجيل الإلكتروني
|
18
18
|
decidim_category_id: الفئة
|
19
19
|
decidim_scope_id: نطاق
|
20
|
-
decidim_user_group_id: مجموعة مستخدم
|
21
20
|
description: وصف
|
22
21
|
end_time: وقت الانتهاء
|
23
22
|
id: المعرف ID
|
@@ -100,7 +99,6 @@ ar:
|
|
100
99
|
values:
|
101
100
|
official: الرسمي
|
102
101
|
participants: المشارك
|
103
|
-
user_group: مجموعات المستخدمين
|
104
102
|
with_any_type:
|
105
103
|
label: نوع الاجتماع
|
106
104
|
values:
|
@@ -129,14 +127,12 @@ ar:
|
|
129
127
|
default_registration_terms: شروط التسجيل الافتراضية
|
130
128
|
enable_pads_creation: تمكين إنشاء منصات
|
131
129
|
maps_enabled: تم تمكين الخرائط
|
132
|
-
registration_code_enabled: تم تمكين رمز التسجيل
|
133
130
|
resources_permissions_enabled: يمكن تعيين أذونات الإجراءات لكل اجتماع
|
134
131
|
terms_and_conditions_url_for_meeting_creators: أحكام وشروط عناوين URL لمنشئي الاجتماع
|
135
132
|
step:
|
136
133
|
announcement: إعلان
|
137
134
|
comments_blocked: تم حظر التعليقات
|
138
135
|
creation_enabled_for_participants: تم تمكين إنشاء الاجتماع بواسطة المشاركين
|
139
|
-
creation_enabled_for_user_groups: تم تمكين إنشاء الاجتماع بواسطة مجموعات المستخدم
|
140
136
|
events:
|
141
137
|
meetings:
|
142
138
|
meeting_closed:
|
@@ -164,10 +160,8 @@ ar:
|
|
164
160
|
email_subject: الشقوق المخصصة للاجتماع "%{resource_title}" تتجاوز %{percentage}٪
|
165
161
|
notification_title: تتجاوز الفواصل المخصصة للاجتماع <a href="%{resource_path}">%{resource_title}</a> ٪ %{percentage}.
|
166
162
|
meeting_updated:
|
167
|
-
email_intro: 'تم تحديث الاجتماع "%{resource_title}". يمكنك قراءة الإصدار الجديد من صفحته:'
|
168
163
|
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع اجتماع "%{resource_title}". يمكنك إلغاء تتبعه من الرابط السابق.
|
169
164
|
email_subject: تم تحديث الاجتماع "%{resource_title}"
|
170
|
-
notification_title: تم تحديث الاجتماع <a href="%{resource_path}">%{resource_title}</a>.
|
171
165
|
registration_code_validated:
|
172
166
|
email_intro: تم التحقق من صحة رمز التسجيل "%{registration_code}" الخاص باجتماع "%{resource_title}".
|
173
167
|
email_outro: لقد تلقيت هذا الإشعار لأنه تم التحقق من صحة رمز التسجيل الخاص بالاجتماع "%{resource_title}".
|
@@ -178,11 +172,6 @@ ar:
|
|
178
172
|
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع اجتماع "%{resource_title}". يمكنك إلغاء تتبعه من الرابط السابق.
|
179
173
|
email_subject: لقد مكّن الاجتماع "%{resource_title}" التسجيلات.
|
180
174
|
notification_title: لقد مكّن الاجتماع <a href="%{resource_path}">%{resource_title}</a> التسجيلات.
|
181
|
-
upcoming_meeting:
|
182
|
-
email_intro: سيبدأ الاجتماع "%{resource_title}" في أقل من 48 ساعة.
|
183
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع اجتماع "%{resource_title}". يمكنك إلغاء تتبعه من الرابط السابق.
|
184
|
-
email_subject: سيبدأ الاجتماع "%{resource_title}" في أقل من 48 ساعة.
|
185
|
-
notification_title: سيبدأ الاجتماع <a href="%{resource_path}">%{resource_title}</a> في أقل من 48 ساعة.
|
186
175
|
gamification:
|
187
176
|
badges:
|
188
177
|
attended_meetings:
|
@@ -196,8 +185,6 @@ ar:
|
|
196
185
|
meetings:
|
197
186
|
actions:
|
198
187
|
agenda: جدول أعمال
|
199
|
-
attachment_collections: المجلدات
|
200
|
-
attachments: مرفقات
|
201
188
|
close: قريب
|
202
189
|
edit: تعديل
|
203
190
|
invalid_destroy:
|
@@ -238,7 +225,6 @@ ar:
|
|
238
225
|
create: إنشاء
|
239
226
|
title: جدول أعمال جديد
|
240
227
|
exports:
|
241
|
-
answers: الأجوبة
|
242
228
|
meeting_comments: التعليقات
|
243
229
|
meetings: اجتماعات
|
244
230
|
registrations: التسجيلات
|
@@ -317,6 +303,7 @@ ar:
|
|
317
303
|
form:
|
318
304
|
available_slots_help: اتركه إلى 0 إذا كان لديك فتحات غير محدودة المتاحة.
|
319
305
|
invites: دعوات
|
306
|
+
manage_questions: الأسئلة
|
320
307
|
recommendation_message: لأسباب تتعلق بالخصوصية، نوصي بحذف نموذج التسجيل هذا حالما انتهيت منه. ويكون هذا تلقائياً بعد ثلاثة أشهر من انتهاء الاجتماع.
|
321
308
|
registration_email_help: سيظهر هذا النص في منتصف البريد الإلكتروني الخاص بتأكيد التسجيل مباشرة بعد رمز التسجيل.
|
322
309
|
registration_form: إستمارة تسجيل
|
@@ -446,7 +433,6 @@ ar:
|
|
446
433
|
form:
|
447
434
|
address_help: 'العنوان: مستخدم من قبل Geocoder للعثور على الموقع'
|
448
435
|
available_slots_help: تركه على 0 إذا كان لديك أعدد غير محدود من الأماكن الشاغرة
|
449
|
-
create_as: إنشاء الاجتماع ك
|
450
436
|
location_help: 'الموقع: رسالة موجهة إلى المستخدمين تعني مكان للالتقاء به في'
|
451
437
|
location_hints_help: 'توضيح حول الموقع: معلومات إضافية. على سبيل المثال: إدراج طابق المبنى في حال كان الاجتماع شخصيا، أو كلمة مرور الاجتماع إذا كان اجتماعا على الإنترنت يحتوي على تقييد الدخول.'
|
452
438
|
online_meeting_url_help: 'الرابط: السماح للمشاركين بالاتصال مباشرة باجتماعك'
|
@@ -482,7 +468,6 @@ ar:
|
|
482
468
|
no_slots_available: لا فتحات المتاحة
|
483
469
|
organizations: حضور المنظمات
|
484
470
|
redirect_notice: هذا الاجتماع جزء من مساحة أخرى، لذلك تم نقلك إلى %{current_space_name}. <br>إذا كنت تفضل، يمكنك العودة إلى <a href="%{previous_space_url}">%{previous_space_name}</a>.
|
485
|
-
registration_code_help_text: رمز التسجيل الخاص بك
|
486
471
|
registration_state:
|
487
472
|
validated: التحقق من صحة
|
488
473
|
validation_pending: جاري التأكد
|
@@ -521,13 +506,9 @@ ar:
|
|
521
506
|
title: عنوان
|
522
507
|
polls:
|
523
508
|
questions:
|
524
|
-
index:
|
525
|
-
empty_questions: خلال هذا الاجتماع، سيتم إرسال بعض الأسئلة وسوف تتمكن من الإجابة عليها. سيتم عرضها هنا.
|
526
509
|
index_admin:
|
527
510
|
edit: تحرير في لوحة المدراء
|
528
511
|
question: سؤال
|
529
|
-
received_answer: الإجابة المتلقاة
|
530
|
-
received_answers: الإجابات المتلقاة
|
531
512
|
results: النتائج
|
532
513
|
send: إرسال
|
533
514
|
sent: تم الإرسال
|
@@ -550,7 +531,6 @@ ar:
|
|
550
531
|
confirmation:
|
551
532
|
confirmed_html: تم تأكيد تسجيلك للاجتماع <a href="%{url}">%{title}</a>.
|
552
533
|
details: ستجد تفاصيل الاجتماع في المرفق.
|
553
|
-
registration_code: رمز التسجيل الخاص بك هو %{code}.
|
554
534
|
registration_type:
|
555
535
|
on_different_platform: على منصة مختلفة
|
556
536
|
on_this_platform: على هذه المنصة
|
@@ -572,11 +552,6 @@ ar:
|
|
572
552
|
private_meeting: اجتماع خاص
|
573
553
|
transparent: شفاف
|
574
554
|
withdraw: تم السحب
|
575
|
-
metrics:
|
576
|
-
meetings:
|
577
|
-
description: عدد الاجتماعات التي تم إنشاؤها
|
578
|
-
object: اجتماعات
|
579
|
-
title: اجتماعات
|
580
555
|
participatory_spaces:
|
581
556
|
highlighted_meetings:
|
582
557
|
past_meetings: الاجتماعات السابقة
|