decidim-meetings 0.26.1 → 0.26.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/commands/decidim/meetings/admin/create_meeting.rb +1 -1
- data/app/commands/decidim/meetings/admin/update_meeting.rb +1 -1
- data/app/commands/decidim/meetings/create_meeting.rb +2 -1
- data/app/commands/decidim/meetings/join_meeting.rb +11 -2
- data/app/commands/decidim/meetings/update_meeting.rb +1 -1
- data/app/controllers/decidim/meetings/directory/meetings_controller.rb +2 -1
- data/app/controllers/decidim/meetings/meetings_controller.rb +4 -3
- data/app/forms/decidim/meetings/admin/meeting_form.rb +0 -4
- data/app/helpers/decidim/meetings/application_helper.rb +24 -8
- data/app/helpers/decidim/meetings/directory/application_helper.rb +5 -7
- data/app/jobs/decidim/meetings/upcoming_meeting_notification_job.rb +4 -1
- data/app/models/decidim/meetings/agenda_item.rb +1 -1
- data/app/models/decidim/meetings/meeting.rb +5 -2
- data/app/packs/src/decidim/meetings/admin/meetings_form.js +1 -1
- data/app/presenters/decidim/meetings/meeting_presenter.rb +9 -0
- data/app/views/decidim/meetings/directory/meetings/_filters.html.erb +1 -1
- data/app/views/decidim/meetings/layouts/live_event.html.erb +1 -0
- data/app/views/decidim/meetings/meetings/_filters.html.erb +1 -1
- data/app/views/decidim/meetings/meetings/index.js.erb +6 -0
- data/config/locales/ar.yml +12 -0
- data/config/locales/ca.yml +7 -7
- data/config/locales/cs.yml +9 -9
- data/config/locales/de.yml +59 -3
- data/config/locales/en.yml +6 -6
- data/config/locales/es-MX.yml +7 -7
- data/config/locales/es-PY.yml +5 -5
- data/config/locales/es.yml +7 -7
- data/config/locales/eu.yml +0 -8
- data/config/locales/fi-plain.yml +5 -5
- data/config/locales/fi.yml +5 -5
- data/config/locales/fr-CA.yml +3 -3
- data/config/locales/fr.yml +11 -11
- data/config/locales/ga-IE.yml +0 -4
- data/config/locales/hu.yml +145 -0
- data/config/locales/it.yml +0 -8
- data/config/locales/ja.yml +1 -1
- data/config/locales/lb.yml +0 -1
- data/config/locales/lt.yml +674 -0
- data/config/locales/nl.yml +78 -53
- data/config/locales/no.yml +0 -6
- data/config/locales/oc-FR.yml +1 -0
- data/config/locales/pl.yml +3 -4
- data/config/locales/pt-BR.yml +0 -4
- data/config/locales/pt.yml +0 -8
- data/config/locales/ro-RO.yml +0 -8
- data/config/locales/sv.yml +4 -8
- data/config/locales/tr-TR.yml +0 -3
- data/db/migrate/20210512100333_drop_decidim_meetings_minutes_table.rb +1 -0
- data/lib/decidim/content_parsers/meeting_parser.rb +20 -0
- data/lib/decidim/content_renderers/meeting_renderer.rb +17 -0
- data/lib/decidim/meetings/component.rb +4 -4
- data/lib/decidim/meetings/engine.rb +6 -0
- data/lib/decidim/meetings/version.rb +1 -1
- data/lib/decidim/meetings.rb +8 -0
- metadata +17 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b48196f783869c2445a9a77fb0165993387afdedc39f68810e2e283b0ac7b6ec
|
4
|
+
data.tar.gz: 6a1a0aa182b12070721adf374b69cd60bfd5bb26ee6b414f17091f99f079a145
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a29b8d8ab0101382536ac4c65b1d9e7c40723c5ba29c18a5817bfe60e394b5fc192ed1ce7e119414c67f04e77f4b5de62424e078282af0aa1c5aba04c5a5970
|
7
|
+
data.tar.gz: 66e260950f4d2c55964d424c93a97646d534fb12d135afceacefb5523a32718b7f471a145b2f8a2f56f0919ba8b45e5dd23e4333ca632e7fa0fa5dda2b0528d3
|
@@ -31,7 +31,7 @@ module Decidim
|
|
31
31
|
|
32
32
|
def create_meeting!
|
33
33
|
parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
|
34
|
-
parsed_description = Decidim::ContentProcessor.
|
34
|
+
parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
|
35
35
|
params = {
|
36
36
|
scope: form.scope,
|
37
37
|
category: form.category,
|
@@ -37,7 +37,7 @@ module Decidim
|
|
37
37
|
|
38
38
|
def update_meeting!
|
39
39
|
parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
|
40
|
-
parsed_description = Decidim::ContentProcessor.
|
40
|
+
parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
|
41
41
|
|
42
42
|
Decidim.traceability.update!(
|
43
43
|
meeting,
|
@@ -31,7 +31,8 @@ module Decidim
|
|
31
31
|
|
32
32
|
def create_meeting!
|
33
33
|
parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
|
34
|
-
parsed_description = Decidim::ContentProcessor.
|
34
|
+
parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
|
35
|
+
|
35
36
|
params = {
|
36
37
|
scope: form.scope,
|
37
38
|
category: form.category,
|
@@ -25,7 +25,8 @@ module Decidim
|
|
25
25
|
return broadcast(:invalid) unless can_join_meeting?
|
26
26
|
return broadcast(:invalid_form) unless registration_form.valid?
|
27
27
|
|
28
|
-
answer_questionnaire
|
28
|
+
return broadcast(:invalid) if answer_questionnaire == :invalid
|
29
|
+
|
29
30
|
create_registration
|
30
31
|
accept_invitation
|
31
32
|
send_email_confirmation
|
@@ -48,7 +49,15 @@ module Decidim
|
|
48
49
|
def answer_questionnaire
|
49
50
|
return unless questionnaire?
|
50
51
|
|
51
|
-
Decidim::Forms::AnswerQuestionnaire.call(registration_form, user, meeting.questionnaire)
|
52
|
+
Decidim::Forms::AnswerQuestionnaire.call(registration_form, user, meeting.questionnaire) do
|
53
|
+
on(:ok) do
|
54
|
+
return :valid
|
55
|
+
end
|
56
|
+
|
57
|
+
on(:invalid) do
|
58
|
+
return :invalid
|
59
|
+
end
|
60
|
+
end
|
52
61
|
end
|
53
62
|
|
54
63
|
def create_registration
|
@@ -37,7 +37,7 @@ module Decidim
|
|
37
37
|
|
38
38
|
def update_meeting!
|
39
39
|
parsed_title = Decidim::ContentProcessor.parse_with_processor(:hashtag, form.title, current_organization: form.current_organization).rewrite
|
40
|
-
parsed_description = Decidim::ContentProcessor.
|
40
|
+
parsed_description = Decidim::ContentProcessor.parse(form.description, current_organization: form.current_organization).rewrite
|
41
41
|
|
42
42
|
Decidim.traceability.update!(
|
43
43
|
meeting,
|
@@ -25,7 +25,8 @@ module Decidim
|
|
25
25
|
private
|
26
26
|
|
27
27
|
def meetings
|
28
|
-
|
28
|
+
is_past_meetings = params.dig("filter", "date")&.include?("past")
|
29
|
+
@meetings ||= paginate(search.results.order(start_time: is_past_meetings ? :desc : :asc))
|
29
30
|
end
|
30
31
|
|
31
32
|
def search_klass
|
@@ -104,11 +104,12 @@ module Decidim
|
|
104
104
|
private
|
105
105
|
|
106
106
|
def meeting
|
107
|
-
@meeting ||= Meeting.not_hidden.where(component: current_component).
|
107
|
+
@meeting ||= Meeting.not_hidden.where(component: current_component).find_by(id: params[:id])
|
108
108
|
end
|
109
109
|
|
110
110
|
def meetings
|
111
|
-
|
111
|
+
is_past_meetings = params.dig("filter", "date")&.include?("past")
|
112
|
+
@meetings ||= paginate(search.results.order(start_time: is_past_meetings ? :desc : :asc))
|
112
113
|
end
|
113
114
|
|
114
115
|
def registration
|
@@ -126,7 +127,7 @@ module Decidim
|
|
126
127
|
def default_filter_params
|
127
128
|
{
|
128
129
|
search_text: "",
|
129
|
-
date:
|
130
|
+
date: "upcoming",
|
130
131
|
activity: "all",
|
131
132
|
scope_id: default_filter_scope_params,
|
132
133
|
category_id: default_filter_category_params,
|
@@ -58,10 +58,6 @@ module Decidim
|
|
58
58
|
end
|
59
59
|
|
60
60
|
self.decidim_category_id = model.categorization.decidim_category_id if model.categorization
|
61
|
-
presenter = MeetingPresenter.new(model)
|
62
|
-
|
63
|
-
self.title = presenter.title(all_locales: title.is_a?(Hash))
|
64
|
-
self.description = presenter.description(all_locales: description.is_a?(Hash))
|
65
61
|
self.type_of_meeting = model.type_of_meeting
|
66
62
|
end
|
67
63
|
|
@@ -41,13 +41,11 @@ module Decidim
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def filter_date_values
|
44
|
-
|
45
|
-
|
46
|
-
[
|
47
|
-
|
48
|
-
|
49
|
-
]
|
50
|
-
)
|
44
|
+
[
|
45
|
+
["all", t("decidim.meetings.meetings.filters.date_values.all")],
|
46
|
+
["upcoming", t("decidim.meetings.meetings.filters.date_values.upcoming")],
|
47
|
+
["past", t("decidim.meetings.meetings.filters.date_values.past")]
|
48
|
+
]
|
51
49
|
end
|
52
50
|
|
53
51
|
# Options to filter meetings by activity.
|
@@ -67,7 +65,25 @@ module Decidim
|
|
67
65
|
|
68
66
|
# If the content is safe, HTML tags are sanitized, otherwise, they are stripped.
|
69
67
|
def render_meeting_body(meeting)
|
70
|
-
render_sanitized_content(meeting, :description)
|
68
|
+
Decidim::ContentProcessor.render(render_sanitized_content(meeting, :description), "div")
|
69
|
+
end
|
70
|
+
|
71
|
+
def prevent_timeout_seconds
|
72
|
+
return 0 unless respond_to?(:meeting)
|
73
|
+
return 0 if !current_user || !meeting || !meeting.live?
|
74
|
+
return 0 unless online_or_hybrid_meeting?(meeting)
|
75
|
+
return 0 unless iframe_embed_or_live_event_page?(meeting)
|
76
|
+
return 0 unless meeting.iframe_access_level_allowed_for_user?(current_user)
|
77
|
+
|
78
|
+
(meeting.end_time - Time.current).to_i
|
79
|
+
end
|
80
|
+
|
81
|
+
def online_or_hybrid_meeting?(meeting)
|
82
|
+
meeting.online_meeting? || meeting.hybrid_meeting?
|
83
|
+
end
|
84
|
+
|
85
|
+
def iframe_embed_or_live_event_page?(meeting)
|
86
|
+
%w(embed_in_meeting_page open_in_live_event_page).include? meeting.iframe_embed_type
|
71
87
|
end
|
72
88
|
end
|
73
89
|
end
|
@@ -27,13 +27,11 @@ module Decidim
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def filter_date_values
|
30
|
-
|
31
|
-
|
32
|
-
[
|
33
|
-
|
34
|
-
|
35
|
-
]
|
36
|
-
)
|
30
|
+
[
|
31
|
+
["all", t("decidim.meetings.meetings.filters.date_values.all")],
|
32
|
+
["upcoming", t("decidim.meetings.meetings.filters.date_values.upcoming")],
|
33
|
+
["past", t("decidim.meetings.meetings.filters.date_values.past")]
|
34
|
+
]
|
37
35
|
end
|
38
36
|
|
39
37
|
def directory_filter_scopes_values
|
@@ -7,7 +7,10 @@ module Decidim
|
|
7
7
|
|
8
8
|
def perform(meeting_id, checksum)
|
9
9
|
meeting = Decidim::Meetings::Meeting.find(meeting_id)
|
10
|
-
|
10
|
+
return if meeting.hidden? || meeting.withdrawn?
|
11
|
+
return unless verify_checksum(meeting, checksum)
|
12
|
+
|
13
|
+
send_notification(meeting)
|
11
14
|
end
|
12
15
|
|
13
16
|
def self.generate_checksum(meeting)
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
|
12
12
|
translatable_fields :title, :description
|
13
13
|
|
14
|
-
belongs_to :agenda,
|
14
|
+
belongs_to :agenda, foreign_key: "decidim_agenda_id", class_name: "Decidim::Meetings::Agenda"
|
15
15
|
|
16
16
|
has_many :agenda_item_children, foreign_key: "parent_id", class_name: "Decidim::Meetings::AgendaItem", inverse_of: :parent, dependent: :destroy
|
17
17
|
belongs_to :parent, class_name: "Decidim::Meetings::AgendaItem", inverse_of: :agenda_item_children, optional: true
|
@@ -63,9 +63,12 @@ module Decidim
|
|
63
63
|
scope :visible_meeting_for, lambda { |user|
|
64
64
|
(all.distinct if user&.admin?) ||
|
65
65
|
if user.present?
|
66
|
-
spaces = Decidim.participatory_space_registry.manifests.
|
66
|
+
spaces = Decidim.participatory_space_registry.manifests.filter_map do |manifest|
|
67
|
+
table_name = manifest.model_class_name.constantize.try(:table_name)
|
68
|
+
next if table_name.blank?
|
69
|
+
|
67
70
|
{
|
68
|
-
name:
|
71
|
+
name: table_name.singularize,
|
69
72
|
class_name: manifest.model_class_name
|
70
73
|
}
|
71
74
|
end
|
@@ -118,7 +118,7 @@ $(() => {
|
|
118
118
|
toggleDependsOnSelect($target, $meetingRegistrationUrl, "on_different_platform");
|
119
119
|
});
|
120
120
|
|
121
|
-
$meetingRegistrationType
|
121
|
+
toggleDependsOnSelect($meetingRegistrationType, $meetingRegistrationUrl, "on_different_platform");
|
122
122
|
|
123
123
|
const $meetingTypeOfMeeting = $form.find("#meeting_type_of_meeting");
|
124
124
|
const $meetingOnlineFields = $form.find(".field[data-meeting-type='online']");
|
@@ -7,12 +7,21 @@ module Decidim
|
|
7
7
|
#
|
8
8
|
class MeetingPresenter < Decidim::ResourcePresenter
|
9
9
|
include Decidim::ResourceHelper
|
10
|
+
include ActionView::Helpers::UrlHelper
|
10
11
|
include Decidim::SanitizeHelper
|
11
12
|
|
12
13
|
def meeting
|
13
14
|
__getobj__
|
14
15
|
end
|
15
16
|
|
17
|
+
def meeting_path
|
18
|
+
Decidim::ResourceLocatorPresenter.new(meeting).path
|
19
|
+
end
|
20
|
+
|
21
|
+
def display_mention
|
22
|
+
link_to title, meeting_path
|
23
|
+
end
|
24
|
+
|
16
25
|
def title(links: false, html_escape: false, all_locales: false)
|
17
26
|
return unless meeting
|
18
27
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
</div>
|
16
16
|
|
17
17
|
<% unless @forced_past_meetings %>
|
18
|
-
<%= form.
|
18
|
+
<%= form.collection_radio_buttons :date, filter_date_values, :first, :last, legend_title: t("decidim.meetings.meetings.filters.date") %>
|
19
19
|
<% end %>
|
20
20
|
|
21
21
|
<%= form.check_boxes_tree :type, filter_type_values, legend_title: t("decidim.meetings.meetings.filters.type") %>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<%= form.hidden_field "state", value: params.dig("filter", "state") %>
|
18
18
|
|
19
19
|
<% unless @forced_past_meetings %>
|
20
|
-
<%= form.
|
20
|
+
<%= form.collection_radio_buttons :date, filter_date_values, :first, :last, legend_title: t(".date") %>
|
21
21
|
<% end %>
|
22
22
|
|
23
23
|
<%= form.check_boxes_tree :type, filter_type_values, legend_title: t(".type") %>
|
@@ -1,12 +1,18 @@
|
|
1
1
|
var $meetings = $('#meetings');
|
2
2
|
var $meetingsCount = $('#meetings-count');
|
3
3
|
|
4
|
+
// make sure that calendar modal will use the updated filter values
|
5
|
+
var $calendarShare = $('#calendarShare');
|
6
|
+
$calendarShare.remove();
|
7
|
+
|
4
8
|
$meetings.html('<%= j(render partial: "meetings").strip.html_safe %>');
|
5
9
|
$meetingsCount.html('<%= j(render partial: "count").strip.html_safe %>');
|
6
10
|
|
7
11
|
var $dropdownMenu = $('.dropdown.menu', $meetings);
|
8
12
|
$dropdownMenu.foundation();
|
9
13
|
|
14
|
+
$("#calendarShare").foundation(); // initialize export calendar on the page
|
15
|
+
|
10
16
|
var markerData = JSON.parse('<%= escape_javascript meetings_data_for_map(search.results.select(&:geocoded_and_valid?)).to_json.html_safe %>');
|
11
17
|
|
12
18
|
var $map = $("#map");
|
data/config/locales/ar.yml
CHANGED
@@ -76,6 +76,14 @@ ar:
|
|
76
76
|
meetings:
|
77
77
|
category_id_eq:
|
78
78
|
label: الفئة
|
79
|
+
origin_eq:
|
80
|
+
values:
|
81
|
+
citizen: المواطن
|
82
|
+
user_group: مجموعات المستخدمين
|
83
|
+
type_eq:
|
84
|
+
label: نوع الاجتماع
|
85
|
+
values:
|
86
|
+
in_person: وجهًا لوجه
|
79
87
|
meeting_copies:
|
80
88
|
create:
|
81
89
|
error: كانت هناك مشكلة في تكرار هذا الاجتماع.
|
@@ -243,6 +251,8 @@ ar:
|
|
243
251
|
success: تم حذف الاجتماع بنجاح
|
244
252
|
edit:
|
245
253
|
update: تحديث
|
254
|
+
form:
|
255
|
+
registration_email_help: سيظهر هذا النص في منتصف البريد الإلكتروني الخاص بتأكيد التسجيل مباشرة بعد رمز التسجيل.
|
246
256
|
index:
|
247
257
|
title: اجتماعات
|
248
258
|
new:
|
@@ -334,6 +344,8 @@ ar:
|
|
334
344
|
filters:
|
335
345
|
category: الفئة
|
336
346
|
date: تاريخ
|
347
|
+
origin_values:
|
348
|
+
citizens: المواطنون
|
337
349
|
search: بحث
|
338
350
|
filters_small_view:
|
339
351
|
close_modal: إغلاق مشروط
|
data/config/locales/ca.yml
CHANGED
@@ -100,7 +100,7 @@ ca:
|
|
100
100
|
type_eq:
|
101
101
|
label: Tipus de trobada
|
102
102
|
values:
|
103
|
-
hybrid:
|
103
|
+
hybrid: Híbrida
|
104
104
|
in_person: Presencial
|
105
105
|
online: En línia
|
106
106
|
meeting_copies:
|
@@ -184,7 +184,7 @@ ca:
|
|
184
184
|
notification_title: La trobada <a href="%{resource_path}">%{resource_title}</a> començarà en menys de 48 hores.
|
185
185
|
forms:
|
186
186
|
meetings:
|
187
|
-
attendees_count_help_text: No oblidis
|
187
|
+
attendees_count_help_text: No t'oblidis d'afegir el número total d'assistents a la trobada, sigui presencial, en línia o híbrida.
|
188
188
|
gamification:
|
189
189
|
badges:
|
190
190
|
attended_meetings:
|
@@ -476,7 +476,7 @@ ca:
|
|
476
476
|
type: Tipus
|
477
477
|
type_values:
|
478
478
|
all: Totes
|
479
|
-
hybrid:
|
479
|
+
hybrid: Híbrida
|
480
480
|
in_person: Presencial
|
481
481
|
online: En línia
|
482
482
|
filters_small_view:
|
@@ -525,11 +525,11 @@ ca:
|
|
525
525
|
edit_close_meeting: Editeu l'informe de la reunió
|
526
526
|
edit_meeting: Editar la trobada
|
527
527
|
going: T'has inscrit en aquesta trobada
|
528
|
-
join:
|
528
|
+
join: Unir-se a la trobada
|
529
529
|
leave: Cancel·la la teva inscripció
|
530
530
|
leave_confirmation: Segur que vols cancel·lar la teva inscripció a aquesta trobada?
|
531
531
|
link_available_soon: Enllaç disponible pròximament
|
532
|
-
link_closed: L'enllaç a la
|
532
|
+
link_closed: L'enllaç a la sala de videoconferència estarà disponible uns minuts abans que comenci
|
533
533
|
live_event: Aquesta trobada està succeint ara mateix
|
534
534
|
meeting_minutes: Acta de la trobada
|
535
535
|
micro_camera_permissions_warning: Quan facis clic en el botó de sota, se't demanaran permisos per al micròfon i/o la càmera, i t'uniràs a la videoconferència
|
@@ -567,7 +567,7 @@ ca:
|
|
567
567
|
fields:
|
568
568
|
closed: Tancada
|
569
569
|
end_time: Data de finalització
|
570
|
-
id:
|
570
|
+
id: ID
|
571
571
|
map: Mapa
|
572
572
|
official_meeting: Trobada oficial
|
573
573
|
start_time: Data d'inici
|
@@ -618,7 +618,7 @@ ca:
|
|
618
618
|
invalid: S'ha produït un error en abandonar aquesta trobada.
|
619
619
|
success: Has abandonat la trobada amb èxit.
|
620
620
|
type_of_meeting:
|
621
|
-
hybrid:
|
621
|
+
hybrid: Híbrida
|
622
622
|
in_person: Presencial
|
623
623
|
online: Online
|
624
624
|
types:
|
data/config/locales/cs.yml
CHANGED
@@ -35,7 +35,7 @@ cs:
|
|
35
35
|
registration_terms: Podmínky registrace
|
36
36
|
registration_url: URL registrace
|
37
37
|
registrations_enabled: Registrace povoleny
|
38
|
-
show_embedded_iframe: Zobrazit
|
38
|
+
show_embedded_iframe: Zobrazit vložený iframe pro tuto URL
|
39
39
|
start_time: Čas zahájení
|
40
40
|
title: Název
|
41
41
|
transparent: Transparentní
|
@@ -106,7 +106,7 @@ cs:
|
|
106
106
|
type_eq:
|
107
107
|
label: Typ schůzky
|
108
108
|
values:
|
109
|
-
hybrid:
|
109
|
+
hybrid: Hybridní
|
110
110
|
in_person: Osobně
|
111
111
|
online: Online
|
112
112
|
meeting_copies:
|
@@ -164,7 +164,7 @@ cs:
|
|
164
164
|
meeting_registration_confirmed:
|
165
165
|
notification_title: Vaše registrace pro schůzku <a href="%{resource_url}">%{resource_title}</a> byla potvrzena. Váš registrační kód je %{registration_code}.
|
166
166
|
meeting_registrations_over_percentage:
|
167
|
-
email_intro:
|
167
|
+
email_intro: Přidělených míst pro schůzku "%{resource_title}" je více než %{percentage}%.
|
168
168
|
email_outro: Toto oznámení jste obdrželi, protože jste administrátor participačního prostoru schůzky.
|
169
169
|
email_subject: Schůzky obsazené schůzkou "%{resource_title}" jsou nad %{percentage}%
|
170
170
|
notification_title: Počet obsazených slotů <a href="%{resource_path}">%{resource_title}</a> je vyšší než %{percentage}%.
|
@@ -190,7 +190,7 @@ cs:
|
|
190
190
|
notification_title: Setkání <a href="%{resource_path}">%{resource_title}</a> bude zahájeno za méně než 48 hodin.
|
191
191
|
forms:
|
192
192
|
meetings:
|
193
|
-
attendees_count_help_text: Nezapomeňte uvést celkový počet účastníků vaší
|
193
|
+
attendees_count_help_text: Nezapomeňte uvést celkový počet účastníků na vaší schůzce, ať už osobní, online nebo smíšené.
|
194
194
|
gamification:
|
195
195
|
badges:
|
196
196
|
attended_meetings:
|
@@ -228,7 +228,7 @@ cs:
|
|
228
228
|
agenda_item:
|
229
229
|
add_agenda_item_child: Přidání položky agendy dítěte
|
230
230
|
agenda_item: Položka agendy
|
231
|
-
agenda_item_children:
|
231
|
+
agenda_item_children: Dílčí body programu
|
232
232
|
down: Dolů
|
233
233
|
remove: Odstranit
|
234
234
|
up: Nahoru
|
@@ -490,7 +490,7 @@ cs:
|
|
490
490
|
type: Typ
|
491
491
|
type_values:
|
492
492
|
all: Vše
|
493
|
-
hybrid:
|
493
|
+
hybrid: Hybridní
|
494
494
|
in_person: Osobně
|
495
495
|
online: Online
|
496
496
|
filters_small_view:
|
@@ -583,7 +583,7 @@ cs:
|
|
583
583
|
fields:
|
584
584
|
closed: Zavřeno
|
585
585
|
end_time: Datum ukončení
|
586
|
-
id:
|
586
|
+
id: ID
|
587
587
|
map: Mapa
|
588
588
|
official_meeting: Oficiální schůzka
|
589
589
|
start_time: Datum zahájení
|
@@ -596,7 +596,7 @@ cs:
|
|
596
596
|
empty_questions: Během této schůzky budou zaslány některé dotazy a vy na ně budete moci odpovědět. Zobrazí se zde.
|
597
597
|
index_admin:
|
598
598
|
admin_dashboard: Řídicí panel administrace
|
599
|
-
edit: Upravit v
|
599
|
+
edit: Upravit v panelu administrace
|
600
600
|
question: Otázka
|
601
601
|
received_answer: přijatá odpověď
|
602
602
|
received_answers: přijaté odpovědi
|
@@ -636,7 +636,7 @@ cs:
|
|
636
636
|
invalid: Při setkání došlo k problému.
|
637
637
|
success: Zasedání jste úspěšně opustili.
|
638
638
|
type_of_meeting:
|
639
|
-
hybrid:
|
639
|
+
hybrid: Hybridní
|
640
640
|
in_person: Osobně
|
641
641
|
online: Online
|
642
642
|
types:
|