decidim-meetings 0.11.2 → 0.12.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/admin/decidim_meetings_manifest.js +2 -0
- data/app/assets/javascripts/decidim/meetings/admin/agendas.js.es6 +158 -0
- data/app/assets/javascripts/decidim/meetings/admin/meetings_form.js.es6 +19 -0
- data/app/cells/decidim/meetings/join_meeting_button/registration_confirm.erb +15 -0
- data/app/cells/decidim/meetings/join_meeting_button/show.erb +27 -0
- data/app/cells/decidim/meetings/join_meeting_button_cell.rb +37 -0
- data/app/cells/decidim/meetings/meeting_cell.rb +2 -13
- data/app/cells/decidim/meetings/meeting_list_item_cell.rb +8 -0
- data/app/cells/decidim/meetings/meeting_m/address.erb +14 -0
- data/app/cells/decidim/meetings/meeting_m/data.erb +2 -0
- data/app/cells/decidim/meetings/meeting_m/date.erb +8 -0
- data/app/cells/decidim/meetings/meeting_m/footer.erb +9 -0
- data/app/cells/decidim/meetings/meeting_m/multiple_dates.erb +17 -0
- data/app/cells/decidim/meetings/meeting_m/single_date.erb +9 -0
- data/app/cells/decidim/meetings/meeting_m/tags.erb +1 -0
- data/app/cells/decidim/meetings/meeting_m_cell.rb +37 -4
- data/app/commands/decidim/meetings/admin/copy_meeting.rb +3 -0
- data/app/commands/decidim/meetings/admin/create_agenda.rb +93 -0
- data/app/commands/decidim/meetings/admin/create_meeting.rb +3 -0
- data/app/commands/decidim/meetings/admin/create_minutes.rb +55 -0
- data/app/commands/decidim/meetings/admin/update_agenda.rb +90 -0
- data/app/commands/decidim/meetings/admin/update_meeting.rb +4 -1
- data/app/commands/decidim/meetings/admin/update_minutes.rb +62 -0
- data/app/controllers/decidim/meetings/admin/agenda_controller.rb +75 -0
- data/app/controllers/decidim/meetings/admin/attachments_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/invites_controller.rb +4 -0
- data/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +4 -0
- data/app/controllers/decidim/meetings/admin/meeting_copies_controller.rb +4 -0
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +10 -0
- data/app/controllers/decidim/meetings/admin/minutes_controller.rb +69 -0
- data/app/controllers/decidim/meetings/admin/registrations_controller.rb +6 -0
- data/app/controllers/decidim/meetings/meetings_controller.rb +7 -1
- data/app/controllers/decidim/meetings/registrations_controller.rb +12 -6
- data/app/forms/decidim/meetings/admin/meeting_agenda_form.rb +54 -0
- data/app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb +33 -0
- data/app/forms/decidim/meetings/admin/meeting_copy_form.rb +8 -0
- data/app/forms/decidim/meetings/admin/meeting_form.rb +8 -0
- data/app/forms/decidim/meetings/admin/meeting_registration_invite_form.rb +2 -1
- data/app/forms/decidim/meetings/admin/minutes_form.rb +20 -0
- data/app/helpers/decidim/meetings/admin/application_helper.rb +13 -0
- data/{lib/decidim/meetings/view_model.rb → app/helpers/decidim/meetings/meeting_cells_helper.rb} +7 -1
- data/app/helpers/decidim/meetings/meetings_helper.rb +67 -0
- data/app/models/decidim/meetings/agenda.rb +19 -0
- data/app/models/decidim/meetings/agenda_item.rb +35 -0
- data/app/models/decidim/meetings/meeting.rb +52 -3
- data/app/models/decidim/meetings/minutes.rb +19 -0
- data/app/permissions/decidim/meetings/admin/permissions.rb +69 -0
- data/app/permissions/decidim/meetings/permissions.rb +41 -0
- data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +4 -1
- data/app/presenters/decidim/meetings/admin_log/minutes_presenter.rb +42 -0
- data/app/presenters/decidim/meetings/admin_log/value_types/organizer_presenter.rb +69 -0
- data/app/types/decidim/meetings/meeting_type.rb +4 -4
- data/app/views/decidim/meetings/admin/agenda/_agenda_item.html.erb +50 -0
- data/app/views/decidim/meetings/admin/agenda/_agenda_item_child.html.erb +26 -0
- data/app/views/decidim/meetings/admin/agenda/_agenda_item_fields.html.erb +19 -0
- data/app/views/decidim/meetings/admin/agenda/_form.html.erb +66 -0
- data/app/views/decidim/meetings/admin/agenda/edit.html.erb +7 -0
- data/app/views/decidim/meetings/admin/agenda/new.html.erb +8 -0
- data/app/views/decidim/meetings/admin/agenda/show.html.erb +0 -0
- data/app/views/decidim/meetings/admin/meeting_copies/_form.html.erb +15 -1
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +15 -0
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +9 -7
- data/app/views/decidim/meetings/admin/minutes/_form.html.erb +23 -0
- data/app/views/decidim/meetings/admin/minutes/edit.html.erb +7 -0
- data/app/views/decidim/meetings/admin/minutes/new.html.erb +7 -0
- data/app/views/decidim/meetings/admin/registrations/_form.html.erb +11 -9
- data/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +0 -1
- data/app/views/decidim/meetings/meetings/_meeting_agenda.html.erb +31 -0
- data/app/views/decidim/meetings/meetings/_meeting_minutes.html.erb +48 -0
- data/app/views/decidim/meetings/meetings/_meetings.html.erb +1 -1
- data/app/views/decidim/meetings/meetings/show.html.erb +23 -12
- data/app/views/decidim/participatory_spaces/_meeting.html.erb +1 -1
- data/app/views/decidim/participatory_spaces/_upcoming_meeting_for_card.html.erb +6 -0
- data/config/locales/ca.yml +106 -4
- data/config/locales/en.yml +106 -4
- data/config/locales/es.yml +106 -4
- data/config/locales/eu.yml +106 -4
- data/config/locales/fi.yml +106 -4
- data/config/locales/fr.yml +106 -4
- data/config/locales/gl.yml +106 -4
- data/config/locales/it.yml +106 -4
- data/config/locales/nl.yml +106 -4
- data/config/locales/pl.yml +112 -4
- data/config/locales/pt-BR.yml +106 -4
- data/config/locales/pt.yml +106 -4
- data/config/locales/ru.yml +97 -4
- data/config/locales/sv.yml +106 -4
- data/config/locales/uk.yml +112 -4
- data/db/migrate/20180403145218_add_meeting_types.rb +8 -0
- data/db/migrate/20180404075312_add_organizer_to_meetings.rb +7 -0
- data/db/migrate/20180406080619_create_meetings_minutes.rb +15 -0
- data/db/migrate/20180419131924_create_decidim_agendas.rb +13 -0
- data/db/migrate/20180419132104_create_decidim_agenda_items.rb +16 -0
- data/db/migrate/20180516102301_index_meetings_as_searchable_resources.rb +24 -0
- data/lib/decidim/meetings/admin_engine.rb +2 -0
- data/lib/decidim/meetings/component.rb +3 -2
- data/lib/decidim/meetings/engine.rb +16 -6
- data/lib/decidim/meetings/test/factories.rb +44 -0
- data/lib/decidim/meetings/version.rb +1 -1
- metadata +63 -21
- data/app/cells/decidim/meetings/meeting_m/header.erb +0 -5
- data/app/cells/decidim/meetings/meeting_m/show.erb +0 -21
- data/app/models/decidim/meetings/abilities/current_user_ability.rb +0 -43
- data/app/views/decidim/meetings/meetings/_registration_confirm.html.erb +0 -15
@@ -7,10 +7,10 @@ module Decidim
|
|
7
7
|
description "A meeting"
|
8
8
|
|
9
9
|
interfaces [
|
10
|
-
Decidim::Comments::CommentableInterface,
|
11
|
-
Decidim::Core::CategorizableInterface,
|
12
|
-
Decidim::Core::ScopableInterface,
|
13
|
-
Decidim::Core::AttachableInterface
|
10
|
+
-> { Decidim::Comments::CommentableInterface },
|
11
|
+
-> { Decidim::Core::CategorizableInterface },
|
12
|
+
-> { Decidim::Core::ScopableInterface },
|
13
|
+
-> { Decidim::Core::AttachableInterface }
|
14
14
|
]
|
15
15
|
|
16
16
|
field :id, !types.ID
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<% agenda_item = form.object %>
|
2
|
+
<div class="card meeting-agenda-item" id="<%= tabs_id %>-field">
|
3
|
+
<div class="card-divider agenda-item-divider">
|
4
|
+
<h2 class="card-title">
|
5
|
+
<span>
|
6
|
+
<%== "#{icon("move")} #{t(".agenda_item")}" %>
|
7
|
+
</span>
|
8
|
+
|
9
|
+
<button class="button small alert hollow move-up-agenda-item button--title">
|
10
|
+
<%== "#{icon("arrow-top")} #{t(".up")}" %>
|
11
|
+
</button>
|
12
|
+
|
13
|
+
<button class="button small alert hollow move-down-agenda-item button--title">
|
14
|
+
<%== "#{icon("arrow-bottom")} #{t(".down")}" %>
|
15
|
+
</button>
|
16
|
+
|
17
|
+
<button class="button small alert hollow remove-agenda-item button--title">
|
18
|
+
<%= t(".remove") %>
|
19
|
+
</button>
|
20
|
+
</h2>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div class="card-section">
|
24
|
+
<%= render "agenda_item_fields", tabs_id: tabs_id, form: form, agenda_item: agenda_item %>
|
25
|
+
|
26
|
+
<div class="card">
|
27
|
+
<div class="card-divider">
|
28
|
+
<h2 class="card-title"><%= t(".agenda_item_children") %></h2>
|
29
|
+
</div>
|
30
|
+
<div class="card-section">
|
31
|
+
<div class="meeting-agenda-item-childs">
|
32
|
+
<template>
|
33
|
+
<%= fields_for "meeting_agenda[agenda_items][#{agenda_item.to_param}][agenda_item_children][#{blank_agenda_item.to_param_child}]", blank_agenda_item do |agenda_item_child_form| %>
|
34
|
+
<%= render "agenda_item_child", form: agenda_item_child_form, tabs_id: tabs_id, tabs_id_child: tabs_id_for_agenda_item_child(blank_agenda_item), editable: true %>
|
35
|
+
<% end %>
|
36
|
+
</template>
|
37
|
+
|
38
|
+
<div class="meeting-agenda-item-childs-list">
|
39
|
+
<% agenda_item.agenda_item_children.each do |agenda_item_child| %>
|
40
|
+
<%= fields_for "meeting_agenda[agenda_items][#{agenda_item.to_param}][agenda_item_children][]", agenda_item_child do |agenda_item_child_form| %>
|
41
|
+
<%= render "agenda_item_child", form: agenda_item_child_form, tabs_id: tabs_id, tabs_id_child: tabs_id_for_agenda_item_child(agenda_item_child), editable: true %>
|
42
|
+
<% end %>
|
43
|
+
<% end %>
|
44
|
+
</div>
|
45
|
+
<button class="button add-agenda-item-child"><%= t(".add_agenda_item_child") %></button>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% agenda_item_child = form.object %>
|
2
|
+
<div class="card meeting-agenda-item-child" id="<%= tabs_id %>-child-<%= tabs_id_child %>-field">
|
3
|
+
<div class="card-divider agenda-item-child-divider">
|
4
|
+
<h2 class="card-title">
|
5
|
+
<span>
|
6
|
+
<%== "#{icon("move")} #{t(".agenda_item_child")}" %>
|
7
|
+
</span>
|
8
|
+
|
9
|
+
<button class="button small alert hollow move-up-agenda-item-child button--title">
|
10
|
+
<%== "#{icon("arrow-top")} #{t(".up")}" %>
|
11
|
+
</button>
|
12
|
+
|
13
|
+
<button class="button small alert hollow move-down-agenda-item-child button--title">
|
14
|
+
<%== "#{icon("arrow-bottom")} #{t(".down")}" %>
|
15
|
+
</button>
|
16
|
+
|
17
|
+
<button class="button small alert hollow remove-agenda-item-child button--title">
|
18
|
+
<%= t(".remove") %>
|
19
|
+
</button>
|
20
|
+
</h2>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div class="card-section">
|
24
|
+
<%= render "agenda_item_fields", tabs_id: tabs_id_child, form: form, agenda_item: agenda_item_child %>
|
25
|
+
</div>
|
26
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="grid-x">
|
2
|
+
<div class="cell auto">
|
3
|
+
<%= form.translated :text_field, :title, tabs_id: tabs_id %>
|
4
|
+
</div>
|
5
|
+
<div class="cell small-2">
|
6
|
+
<%= form.number_field :duration, tabs_id: tabs_id, min: 0 %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="grid-x">
|
11
|
+
<div class="cell auto">
|
12
|
+
<%= form.translated :editor, :description, tabs_id: tabs_id, rows: 6 %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<%= form.hidden_field :id %>
|
17
|
+
<%= form.hidden_field :parent_id %>
|
18
|
+
<%= form.hidden_field :position, value: agenda_item.position || 0 %>
|
19
|
+
<%= form.hidden_field :deleted %>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<div class="flex--sbc">
|
5
|
+
<div class="grid-x align-middle">
|
6
|
+
<u> <%= translated_attribute(meeting.title) %> </u> <%= icon "arrow-right" %> <%= title %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
</h2>
|
10
|
+
</div>
|
11
|
+
<div class="card-section">
|
12
|
+
<div class="grid-x card-title">
|
13
|
+
<div class="cell small-2"><strong><%= t(".start_date") %></strong></div>
|
14
|
+
<div class="cell small-2"><strong><%= t(".end_date") %></strong></div>
|
15
|
+
</div>
|
16
|
+
<div class="grid-x text-muted">
|
17
|
+
<div class="cell small-2"><%= meeting.start_time.strftime("%m/%d/%Y %R") %></div>
|
18
|
+
<div class="cell small-2"><%= meeting.end_time.strftime("%m/%d/%Y %R") %></div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div class="card">
|
24
|
+
<div class="card-divider">
|
25
|
+
<h2 class="card-title">
|
26
|
+
<%= title %>
|
27
|
+
</h2>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<div class="card-section">
|
31
|
+
<div class="row column">
|
32
|
+
<%= form.translated :text_field, :title, autofocus: true %>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="row column">
|
36
|
+
<%= form.check_box :visible %>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="card">
|
42
|
+
<div class="card-divider">
|
43
|
+
<h2 class="card-title"><%= t(".agenda_items") %></h2>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="card-section">
|
47
|
+
<div class="meeting-agenda-items">
|
48
|
+
<template>
|
49
|
+
<%= fields_for "meeting_agenda[agenda_items][#{blank_agenda_item.to_param}]", blank_agenda_item do |agenda_item_form| %>
|
50
|
+
<%= render "agenda_item", form: agenda_item_form, tabs_id: tabs_id_for_agenda_item(blank_agenda_item), editable: true %>
|
51
|
+
<% end %>
|
52
|
+
</template>
|
53
|
+
|
54
|
+
<div class="meeting-agenda-items-list">
|
55
|
+
<% @form.agenda_items.each do |agenda_item| %>
|
56
|
+
<%= fields_for "meeting_agenda[agenda_items][]", agenda_item do |agenda_item_form| %>
|
57
|
+
<%= render "agenda_item", form: agenda_item_form, tabs_id: tabs_id_for_agenda_item(agenda_item), editable: true %>
|
58
|
+
<% end %>
|
59
|
+
<% end %>
|
60
|
+
</div>
|
61
|
+
<button class="button add-agenda-item"><%= t(".add_agenda_item") %></button>
|
62
|
+
</div>
|
63
|
+
</div>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<%= javascript_include_tag "decidim/meetings/admin/agendas" %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: meeting_agenda_path(meeting, agenda), html: { class: "form edit_agenda" }) do |f| %>
|
2
|
+
<%= render partial: "form", object: f, locals: { title: t(".title") } %>
|
3
|
+
|
4
|
+
<div class="button--double form-general-submit">
|
5
|
+
<%= f.submit t(".update") %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: meeting_agenda_index_path(meeting), html: { method: :post, class: "form new_agenda" }) do |f| %>
|
2
|
+
|
3
|
+
<%= render partial: "form", object: f, locals: { title: t(".title") } %>
|
4
|
+
|
5
|
+
<div class="button--double form-general-submit">
|
6
|
+
<%= f.submit t(".create") %>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
File without changes
|
@@ -33,8 +33,22 @@
|
|
33
33
|
<%= form.datetime_field :end_time %>
|
34
34
|
</div>
|
35
35
|
</div>
|
36
|
-
</div>
|
37
36
|
|
37
|
+
<div class="row column">
|
38
|
+
<% prompt_options = { url: decidim_admin.users_organization_url, text: t(".select_organizer") } %>
|
39
|
+
<%= form.autocomplete_select(:organizer_id, form.object.organizer.presence, { multiple: false }, prompt_options) do |user|
|
40
|
+
{ value: user.id, label: "#{user.name} (@#{user.nickname})" }
|
41
|
+
end %>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="row column" id="private_meeting">
|
45
|
+
<%= form.check_box :private_meeting %>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div class="row column" id="transparent">
|
49
|
+
<%= form.check_box :transparent %>
|
50
|
+
</div>
|
51
|
+
</div>
|
38
52
|
</div>
|
39
53
|
|
40
54
|
<%= render "decidim/meetings/admin/meetings/services", form: form %>
|
@@ -44,6 +44,21 @@
|
|
44
44
|
<%= form.categories_select :decidim_category_id, current_participatory_space.categories, prompt: "", disable_parents: false %>
|
45
45
|
</div>
|
46
46
|
</div>
|
47
|
+
|
48
|
+
<div class="row column">
|
49
|
+
<% prompt_options = { url: decidim_admin.users_organization_url, text: t(".select_organizer") } %>
|
50
|
+
<%= form.autocomplete_select(:organizer_id, form.object.organizer.presence, { multiple: false }, prompt_options) do |user|
|
51
|
+
{ value: user.id, label: "#{user.name} (@#{user.nickname})" }
|
52
|
+
end %>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<div class="row column" id="private_meeting">
|
56
|
+
<%= form.check_box :private_meeting %>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<div class="row column" id="transparent">
|
60
|
+
<%= form.check_box :transparent %>
|
61
|
+
</div>
|
47
62
|
</div>
|
48
63
|
</div>
|
49
64
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title">
|
4
4
|
<%= t(".title") %>
|
5
|
-
<%= link_to t("actions.new", scope: "decidim.meetings", name: t("models.meeting.name", scope: "decidim.meetings.admin")), new_meeting_path, class: "button tiny button--title" if
|
5
|
+
<%= link_to t("actions.new", scope: "decidim.meetings", name: t("models.meeting.name", scope: "decidim.meetings.admin")), new_meeting_path, class: "button tiny button--title" if allowed_to? :create, :meeting %>
|
6
6
|
</h2>
|
7
7
|
</div>
|
8
8
|
|
@@ -48,28 +48,30 @@
|
|
48
48
|
<td class="table-list__actions">
|
49
49
|
<%= icon_link_to "eye", resource_locator(meeting).path, t("actions.preview", scope: "decidim.meetings"), class: "action-icon--preview", target: :blank %>
|
50
50
|
|
51
|
-
<% if
|
51
|
+
<% if allowed_to? :copy, :meeting, meeting: meeting %>
|
52
52
|
<%= icon_link_to "clipboard", new_meeting_copy_path(meeting), t("actions.duplicate", scope: "decidim.admin"), class: "action-icon--copy" %>
|
53
53
|
<% end %>
|
54
54
|
|
55
|
-
<% if
|
55
|
+
<% if allowed_to? :update, :meeting, meeting: meeting %>
|
56
56
|
<%= icon_link_to "pencil", edit_meeting_path(meeting), t("actions.edit", scope: "decidim.meetings"), class: "action-icon--edit" %>
|
57
57
|
<%= icon_link_to "people", edit_meeting_registrations_path(meeting), t("actions.registrations", scope: "decidim.meetings"), class: "action-icon--registrations" %>
|
58
|
+
<%= icon_link_to "clock", meeting.minutes.present? ? edit_meeting_minute_path(meeting, meeting.minutes) : new_meeting_minute_path(meeting), t("actions.minutes", scope: "decidim.meetings"), class: "action-icon--minutes" %>
|
59
|
+
<%= icon_link_to "calendar", meeting.agenda.present? ? edit_meeting_agenda_path(meeting, meeting.agenda) : new_meeting_agenda_path(meeting), t("actions.agenda", scope: "decidim.meetings"), class: "action-icon--agenda" %>
|
58
60
|
<% end %>
|
59
61
|
|
60
|
-
<% if
|
62
|
+
<% if allowed_to? :close, :meeting, meeting: meeting %>
|
61
63
|
<%= icon_link_to "lock-locked", edit_meeting_meeting_close_path(meeting_id: meeting.id, id: meeting.id), t("actions.close", scope: "decidim.meetings"), class: "action-icon--close" %>
|
62
64
|
<% end %>
|
63
65
|
|
64
|
-
<% if
|
66
|
+
<% if allowed_to? :update, :meeting, meeting: meeting %>
|
65
67
|
<%= icon_link_to "folder", meeting_attachment_collections_path(meeting), t("actions.attachment_collections", scope: "decidim.meetings"), class: "action-icon--attachment_collections" %>
|
66
68
|
<% end %>
|
67
69
|
|
68
|
-
<% if
|
70
|
+
<% if allowed_to? :update, :meeting, meeting: meeting %>
|
69
71
|
<%= icon_link_to "paperclip", meeting_attachments_path(meeting), t("actions.attachments", scope: "decidim.meetings"), class: "action-icon--attachments" %>
|
70
72
|
<% end %>
|
71
73
|
|
72
|
-
<% if
|
74
|
+
<% if allowed_to? :destroy, :meeting, meeting: meeting %>
|
73
75
|
<%= icon_link_to "circle-x", meeting_path(meeting), t("actions.destroy", scope: "decidim.meetings"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.meetings") } %>
|
74
76
|
<% end %>
|
75
77
|
</td>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title"><%= title %></h2>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="card-section">
|
7
|
+
<div class="row column">
|
8
|
+
<%= form.translated :editor, :description %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="row column">
|
12
|
+
<%= form.text_field :video_url %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="row column">
|
16
|
+
<%= form.text_field :audio_url %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="row column">
|
20
|
+
<%= form.check_box :visible %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: meeting_minute_path(@current_meeting, @minutes), html: { class: "form edit_minutes" }) do |f| %>
|
2
|
+
<%= render partial: "form", object: f %>
|
3
|
+
|
4
|
+
<div class="button--double form-general-submit">
|
5
|
+
<%= f.submit t(".update") %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: meeting_minutes_path(current_meeting), html: { method: :post, class: "form new_minutes" }) do |f| %>
|
2
|
+
<%= render partial: "form", object: f, locals: { title: t(".title") } %>
|
3
|
+
|
4
|
+
<div class="button--double form-general-submit">
|
5
|
+
<%= f.submit t(".create") %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
@@ -2,15 +2,17 @@
|
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title">
|
4
4
|
<%= title %>
|
5
|
-
<%= link_to t(".invite_user"), meeting.registrations_enabled ? new_meeting_registrations_invites_path(meeting) : "#", class: "button tiny button--title #{'disabled' unless meeting
|
6
|
-
|
7
|
-
|
8
|
-
<
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
5
|
+
<%= link_to t(".invite_user"), meeting.registrations_enabled ? new_meeting_registrations_invites_path(meeting) : "#", class: "button tiny button--title #{'disabled' unless allowed_to? :invite_user, :meeting, meeting: meeting}" %>
|
6
|
+
<% if allowed_to? :export_registrations, :meeting, meeting: meeting %>
|
7
|
+
<span class="exports dropdown tiny button button--simple button--title" data-toggle="export-dropdown"><%= t "actions.export", scope: "decidim.admin" %></span>
|
8
|
+
<div class="dropdown-pane" id="export-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
|
9
|
+
<ul class="vertical menu add-components">
|
10
|
+
<% %w{CSV JSON Excel}.each do |format| %>
|
11
|
+
<li class="exports--format--<%= format.downcase %> exports--registrations"><%= link_to t("decidim.admin.exports.export_as", name: t("decidim.#{current_component.manifest.name}.admin.exports.registrations"), export_format: format), export_meeting_registrations_path(meeting_id: meeting, format: format) %></li>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
14
16
|
</h2>
|
15
17
|
</div>
|
16
18
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class="section agenda-section">
|
2
|
+
<div class="flex--sbe">
|
3
|
+
<h2 class="section-heading"><%= translated_attribute(meeting.agenda.title) %></h2>
|
4
|
+
</div>
|
5
|
+
<div class="card">
|
6
|
+
<div class="card__content scroll">
|
7
|
+
<% agenda_items_times = calculate_start_and_end_time_of_agenda_items(meeting.agenda.agenda_items.first_class, meeting) %>
|
8
|
+
<% meeting.agenda.agenda_items.first_class.each_with_index do |agenda_item, index| %>
|
9
|
+
<h5 class="agenda-item--title heading5">
|
10
|
+
<strong class="text-uppercase"><%= translated_attribute(agenda_item.title) %></strong>
|
11
|
+
<span class="text-small"><%= display_duration_agenda_items(agenda_item.id, index, agenda_items_times) %></span>
|
12
|
+
</h5>
|
13
|
+
<hr class="reset m-none mb-s" />
|
14
|
+
<p><%= translated_attribute(agenda_item.description).html_safe %></p>
|
15
|
+
|
16
|
+
<% if agenda_item.agenda_item_children.presence %>
|
17
|
+
<% parent_start_time = agenda_items_times[index][:start_time] %>
|
18
|
+
<% agenda_item_children_times = calculate_start_and_end_time_of_agenda_items(agenda_item.agenda_item_children, meeting, parent_start_time) %>
|
19
|
+
|
20
|
+
<% agenda_item.agenda_item_children.each_with_index do |agenda_item_child, index_child| %>
|
21
|
+
<h6 class="heading6">
|
22
|
+
<strong class="text-uppercase"><%= translated_attribute(agenda_item_child.title) %></strong>
|
23
|
+
<span class="text-small"><%= display_duration_agenda_items(agenda_item_child.id, index_child, agenda_item_children_times) %></span>
|
24
|
+
</h6>
|
25
|
+
<p><%= translated_attribute(agenda_item_child.description).html_safe %></p>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<div class="section minutes-section">
|
2
|
+
<h3 class="section-heading"><%= t(".meeting_minutes") %></h3>
|
3
|
+
<% if translated_attribute(meeting.minutes.description).present? %>
|
4
|
+
<div class="card">
|
5
|
+
<div class="card-section">
|
6
|
+
<div class="row column">
|
7
|
+
<%= decidim_sanitize translated_attribute meeting.minutes.description %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<% if meeting.minutes.video_url.presence || meeting.minutes.audio_url.presence %>
|
14
|
+
<div class="section">
|
15
|
+
<h4 class="section-heading"><%= t(".related_information") %></h4>
|
16
|
+
<div class="card card--list">
|
17
|
+
<% if meeting.minutes.video_url.presence %>
|
18
|
+
<div class="card--list__item">
|
19
|
+
<div class="card--list__text">
|
20
|
+
<div>
|
21
|
+
<%= link_to meeting.minutes.video_url, meeting.minutes.video_url, target: "_blank" %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<div class="card--list__data">
|
25
|
+
<%= link_to meeting.minutes.video_url, target: "_blank", class: "card--list__data__icon" do %>
|
26
|
+
<%= icon "external-link" %>
|
27
|
+
<% end %>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
<% if meeting.minutes.video_url.presence %>
|
32
|
+
<div class="card--list__item">
|
33
|
+
<div class="card--list__text">
|
34
|
+
<div>
|
35
|
+
<%= link_to meeting.minutes.audio_url, meeting.minutes.audio_url, target: "_blank" %>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
<div class="card--list__data">
|
39
|
+
<%= link_to meeting.minutes.audio_url, target: "_blank", class: "card--list__data__icon" do %>
|
40
|
+
<%= icon "external-link" %>
|
41
|
+
<% end %>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
<% end %>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<% end %>
|
48
|
+
</div>
|