decidim-meetings 0.9.3 → 0.10.0
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/close_meeting.rb +13 -7
- data/app/commands/decidim/meetings/admin/create_meeting.rb +13 -1
- data/app/commands/decidim/meetings/admin/destroy_meeting.rb +43 -0
- data/app/commands/decidim/meetings/admin/update_meeting.rb +3 -1
- data/app/controllers/decidim/meetings/admin/attachment_collections_controller.rb +29 -0
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +6 -4
- data/app/events/decidim/meetings/create_meeting_event.rb +8 -0
- data/app/forms/decidim/meetings/admin/meeting_form.rb +10 -3
- data/app/mailers/decidim/meetings/admin/invite_join_meeting_mailer.rb +1 -1
- data/app/models/decidim/meetings/meeting.rb +11 -1
- data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +53 -0
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +4 -0
- data/app/views/decidim/meetings/meetings/show.html.erb +1 -1
- data/app/views/decidim/participatory_processes/participatory_process_groups/_highlighted_meetings.html.erb +15 -0
- data/app/views/decidim/participatory_processes/participatory_process_groups/_meeting.html.erb +10 -0
- data/app/views/decidim/participatory_spaces/_highlighted_meetings.html.erb +19 -0
- data/app/views/decidim/participatory_spaces/_meeting.html.erb +14 -0
- data/config/locales/ca.yml +23 -1
- data/config/locales/en.yml +22 -0
- data/config/locales/es.yml +22 -0
- data/config/locales/eu.yml +22 -0
- data/config/locales/fi.yml +22 -0
- data/config/locales/fr.yml +25 -3
- data/config/locales/gl.yml +22 -0
- data/config/locales/it.yml +22 -0
- data/config/locales/nl.yml +22 -0
- data/config/locales/pl.yml +22 -8
- data/config/locales/pt-BR.yml +22 -0
- data/config/locales/pt.yml +22 -0
- data/config/locales/sv.yml +22 -0
- data/config/locales/uk.yml +22 -3
- data/lib/decidim/meetings/admin_engine.rb +1 -0
- data/lib/decidim/meetings/engine.rb +34 -0
- data/lib/decidim/meetings/feature.rb +13 -0
- data/lib/decidim/meetings/test/factories.rb +9 -0
- data/lib/decidim/meetings/version.rb +1 -1
- metadata +23 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3493a74548421f55b6a89175eb56a4033ae876c525a0ca53fdc74ebf8a6937f2
|
4
|
+
data.tar.gz: c394ccff7f76d78b7cc4f95386effad8e4642842627b1e969c9f96e0ea9473fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27421ab6254ec7d9cbdfa9bba0f6f4489ccc5bde2521d44e04dd73e3213cc8d76832aec89448d3f9684c2f42d0d8d35806855a6617a4c30f61361783c0ea7c19
|
7
|
+
data.tar.gz: 62c9f79b113fea3964b51a619464b6110b90a7a439cad6c5671b0fcce113b2702979262b6f7d7eab1b9008f5d7f1904f9d5c09b8ee2b632ad08c95973768b34f
|
@@ -34,13 +34,19 @@ module Decidim
|
|
34
34
|
attr_reader :form, :meeting
|
35
35
|
|
36
36
|
def close_meeting
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
37
|
+
Decidim.traceability.perform_action!(
|
38
|
+
:close,
|
39
|
+
meeting,
|
40
|
+
form.current_user
|
41
|
+
) do
|
42
|
+
meeting.update!(
|
43
|
+
closing_report: form.closing_report,
|
44
|
+
attendees_count: form.attendees_count,
|
45
|
+
contributions_count: form.contributions_count,
|
46
|
+
attending_organizations: form.attending_organizations,
|
47
|
+
closed_at: form.closed_at
|
48
|
+
)
|
49
|
+
end
|
44
50
|
|
45
51
|
Decidim::EventsManager.publish(
|
46
52
|
event: "decidim.events.meetings.meeting_closed",
|
@@ -19,6 +19,7 @@ module Decidim
|
|
19
19
|
transaction do
|
20
20
|
create_meeting!
|
21
21
|
schedule_upcoming_meeting_notification
|
22
|
+
send_notification
|
22
23
|
end
|
23
24
|
|
24
25
|
broadcast(:ok, @meeting)
|
@@ -27,7 +28,9 @@ module Decidim
|
|
27
28
|
private
|
28
29
|
|
29
30
|
def create_meeting!
|
30
|
-
@meeting =
|
31
|
+
@meeting = Decidim.traceability.create!(
|
32
|
+
Meeting,
|
33
|
+
@form.current_user,
|
31
34
|
scope: @form.scope,
|
32
35
|
category: @form.category,
|
33
36
|
title: @form.title,
|
@@ -50,6 +53,15 @@ module Decidim
|
|
50
53
|
.set(wait_until: @meeting.start_time - 2.days)
|
51
54
|
.perform_later(@meeting.id, checksum)
|
52
55
|
end
|
56
|
+
|
57
|
+
def send_notification
|
58
|
+
Decidim::EventsManager.publish(
|
59
|
+
event: "decidim.events.meetings.meeting_created",
|
60
|
+
event_class: Decidim::Meetings::CreateMeetingEvent,
|
61
|
+
resource: @meeting,
|
62
|
+
recipient_ids: @meeting.participatory_space.followers.pluck(:id)
|
63
|
+
)
|
64
|
+
end
|
53
65
|
end
|
54
66
|
end
|
55
67
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Meetings
|
5
|
+
module Admin
|
6
|
+
# This command is executed when the user destroys a Meeting from the admin
|
7
|
+
# panel.
|
8
|
+
class DestroyMeeting < Rectify::Command
|
9
|
+
# Initializes a CloseMeeting Command.
|
10
|
+
#
|
11
|
+
# meeting - The current instance of the page to be closed.
|
12
|
+
# current_user - the user performing the action
|
13
|
+
def initialize(meeting, current_user)
|
14
|
+
@meeting = meeting
|
15
|
+
@current_user = current_user
|
16
|
+
end
|
17
|
+
|
18
|
+
# Destroys the meeting if valid.
|
19
|
+
#
|
20
|
+
# Broadcasts :ok if successful, :invalid otherwise.
|
21
|
+
def call
|
22
|
+
destroy_meeting
|
23
|
+
|
24
|
+
broadcast(:ok)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
attr_reader :current_user, :meeting
|
30
|
+
|
31
|
+
def destroy_meeting
|
32
|
+
Decidim.traceability.perform_action!(
|
33
|
+
:delete,
|
34
|
+
meeting,
|
35
|
+
current_user
|
36
|
+
) do
|
37
|
+
meeting.destroy!
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Meetings
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing all the attachment collections for an assembly.
|
7
|
+
#
|
8
|
+
class AttachmentCollectionsController < Admin::ApplicationController
|
9
|
+
include Decidim::Admin::Concerns::HasAttachmentCollections
|
10
|
+
|
11
|
+
def after_destroy_path
|
12
|
+
meeting_attachment_collections_path(meeting, meeting.feature, current_participatory_space)
|
13
|
+
end
|
14
|
+
|
15
|
+
def collection_for
|
16
|
+
meeting
|
17
|
+
end
|
18
|
+
|
19
|
+
def meeting
|
20
|
+
@meeting ||= meetings.find(params[:meeting_id])
|
21
|
+
end
|
22
|
+
|
23
|
+
def authorization_object
|
24
|
+
meeting.feature
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -46,11 +46,13 @@ module Decidim
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def destroy
|
49
|
-
meeting
|
50
|
-
|
51
|
-
|
49
|
+
DestroyMeeting.call(meeting, current_user) do
|
50
|
+
on(:ok) do
|
51
|
+
flash[:notice] = I18n.t("meetings.destroy.success", scope: "decidim.meetings.admin")
|
52
52
|
|
53
|
-
|
53
|
+
redirect_to meetings_path
|
54
|
+
end
|
55
|
+
end
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
@@ -11,6 +11,7 @@ module Decidim
|
|
11
11
|
translatable_attribute :description, String
|
12
12
|
translatable_attribute :location, String
|
13
13
|
translatable_attribute :location_hints, String
|
14
|
+
|
14
15
|
attribute :address, String
|
15
16
|
attribute :latitude, Float
|
16
17
|
attribute :longitude, Float
|
@@ -30,7 +31,8 @@ module Decidim
|
|
30
31
|
validates :current_feature, presence: true
|
31
32
|
validates :category, presence: true, if: ->(form) { form.decidim_category_id.present? }
|
32
33
|
validates :scope, presence: true, if: ->(form) { form.decidim_scope_id.present? }
|
33
|
-
|
34
|
+
|
35
|
+
validate :scope_belongs_to_participatory_space_scope
|
34
36
|
|
35
37
|
delegate :categories, to: :current_feature
|
36
38
|
|
@@ -46,8 +48,7 @@ module Decidim
|
|
46
48
|
#
|
47
49
|
# Returns a Decidim::Scope
|
48
50
|
def scope
|
49
|
-
|
50
|
-
@scope ||= @decidim_scope_id ? current_feature.scopes.find_by(id: @decidim_scope_id) : current_participatory_space&.scope
|
51
|
+
@scope ||= @decidim_scope_id ? current_participatory_space.scopes.find_by(id: @decidim_scope_id) : current_participatory_space.scope
|
51
52
|
end
|
52
53
|
|
53
54
|
# Scope identifier
|
@@ -61,6 +62,12 @@ module Decidim
|
|
61
62
|
return unless current_feature
|
62
63
|
@category ||= categories.find_by(id: decidim_category_id)
|
63
64
|
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def scope_belongs_to_participatory_space_scope
|
69
|
+
errors.add(:decidim_scope_id, :invalid) if current_participatory_space.out_of_scope?(scope)
|
70
|
+
end
|
64
71
|
end
|
65
72
|
end
|
66
73
|
end
|
@@ -7,12 +7,15 @@ module Decidim
|
|
7
7
|
class Meeting < Meetings::ApplicationRecord
|
8
8
|
include Decidim::Resourceable
|
9
9
|
include Decidim::HasAttachments
|
10
|
+
include Decidim::HasAttachmentCollections
|
10
11
|
include Decidim::HasFeature
|
11
12
|
include Decidim::HasReference
|
12
|
-
include Decidim::
|
13
|
+
include Decidim::ScopableFeature
|
13
14
|
include Decidim::HasCategory
|
14
15
|
include Decidim::Followable
|
15
16
|
include Decidim::Comments::Commentable
|
17
|
+
include Decidim::Traceable
|
18
|
+
include Decidim::Loggable
|
16
19
|
|
17
20
|
has_many :registrations, class_name: "Decidim::Meetings::Registration", foreign_key: "decidim_meeting_id", dependent: :destroy
|
18
21
|
|
@@ -22,6 +25,13 @@ module Decidim
|
|
22
25
|
|
23
26
|
geocoded_by :address, http_headers: ->(proposal) { { "Referer" => proposal.feature.organization.host } }
|
24
27
|
|
28
|
+
scope :past, -> { where(arel_table[:end_time].lteq(Time.current)) }
|
29
|
+
scope :upcoming, -> { where(arel_table[:start_time].gt(Time.current)) }
|
30
|
+
|
31
|
+
def self.log_presenter_class_for(_log)
|
32
|
+
Decidim::Meetings::AdminLog::MeetingPresenter
|
33
|
+
end
|
34
|
+
|
25
35
|
def closed?
|
26
36
|
closed_at.present?
|
27
37
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Meetings
|
5
|
+
module AdminLog
|
6
|
+
# This class holds the logic to present a `Decidim::Meetings::Meeting`
|
7
|
+
# for the `AdminLog` log.
|
8
|
+
#
|
9
|
+
# Usage should be automatic and you shouldn't need to call this class
|
10
|
+
# directly, but here's an example:
|
11
|
+
#
|
12
|
+
# action_log = Decidim::ActionLog.last
|
13
|
+
# view_helpers # => this comes from the views
|
14
|
+
# MeetingPresenter.new(action_log, view_helpers).present
|
15
|
+
class MeetingPresenter < Decidim::Log::BasePresenter
|
16
|
+
private
|
17
|
+
|
18
|
+
def diff_fields_mapping
|
19
|
+
{
|
20
|
+
address: :string,
|
21
|
+
attendees_count: :integer,
|
22
|
+
attending_organizations: :string,
|
23
|
+
closed_at: :date,
|
24
|
+
closing_report: :i18n,
|
25
|
+
description: :i18n,
|
26
|
+
end_date: :date,
|
27
|
+
location: :i18n,
|
28
|
+
location_hints: :i18n,
|
29
|
+
start_date: :date,
|
30
|
+
title: :i18n
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def action_string
|
35
|
+
case action
|
36
|
+
when "close", "create", "delete", "update"
|
37
|
+
"decidim.meetings.admin_log.meeting.#{action}"
|
38
|
+
else
|
39
|
+
super
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def i18n_labels_scope
|
44
|
+
"activemodel.attributes.meeting"
|
45
|
+
end
|
46
|
+
|
47
|
+
def has_diff?
|
48
|
+
action == "close" || super
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -57,6 +57,10 @@
|
|
57
57
|
<%= 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" %>
|
58
58
|
<% end %>
|
59
59
|
|
60
|
+
<% if can? :update, current_feature %>
|
61
|
+
<%= icon_link_to "folder", meeting_attachment_collections_path(meeting), t("actions.attachment_collections", scope: "decidim.meetings"), class: "action-icon--attachment_collections" %>
|
62
|
+
<% end %>
|
63
|
+
|
60
64
|
<% if can? :update, current_feature %>
|
61
65
|
<%= icon_link_to "paperclip", meeting_attachments_path(meeting), t("actions.attachments", scope: "decidim.meetings"), class: "action-icon--attachments" %>
|
62
66
|
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<% if upcoming_meetings.any? %>
|
2
|
+
<section class="section row collapse upcoming_meetings">
|
3
|
+
<h2 class="section-heading"><%= t(".upcoming_meetings") %></h2>
|
4
|
+
<div class="row small-up-1 medium-up-2 large-up-3 card-grid">
|
5
|
+
<%= render partial: 'decidim/participatory_processes/participatory_process_groups/meeting', collection: upcoming_meetings %>
|
6
|
+
</div>
|
7
|
+
</section>
|
8
|
+
<% elsif past_meetings.any? %>
|
9
|
+
<section class="section row collapse past_meetings">
|
10
|
+
<h2 class="section-heading"><%= t(".past_meetings") %></h2>
|
11
|
+
<div class="row small-up-1 medium-up-2 large-up-3 card-grid">
|
12
|
+
<%= render partial: 'decidim/participatory_processes/participatory_process_groups/meeting', collection: past_meetings %>
|
13
|
+
</div>
|
14
|
+
</section>
|
15
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="column">
|
2
|
+
<article class="card card--meeting">
|
3
|
+
<div class="card__content">
|
4
|
+
<%= link_to resource_locator(meeting).path, class: "card__link" do %>
|
5
|
+
<h5 class="card__title"><%= translated_attribute meeting.title %></h5>
|
6
|
+
<% end %>
|
7
|
+
<%= render partial: "decidim/meetings/meetings/datetime", locals: { meeting: meeting } %>
|
8
|
+
</div>
|
9
|
+
</article>
|
10
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% if upcoming_meetings.any? %>
|
2
|
+
<div class="section upcoming_meetings">
|
3
|
+
<h4 class="section-heading">
|
4
|
+
<%= t(".upcoming_meetings") %> <a href="<%= main_feature_path(upcoming_meetings.first.feature) %>" class="text-small"><%= t(".see_all_meetings") %></a>
|
5
|
+
</h4>
|
6
|
+
<div class="card card--list">
|
7
|
+
<%= render partial: 'decidim/participatory_spaces/meeting', collection: upcoming_meetings %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<% elsif past_meetings.any? %>
|
11
|
+
<div class="section past_meetings">
|
12
|
+
<h4 class="section-heading">
|
13
|
+
<%= t(".past_meetings") %> <a href="<%= main_feature_path(past_meetings.first.feature) %>" class="text-small"><%= t(".see_all_meetings") %></a>
|
14
|
+
</h4>
|
15
|
+
<div class="card card--list">
|
16
|
+
<%= render partial: 'decidim/participatory_spaces/meeting', collection: past_meetings %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="card--list__item">
|
2
|
+
<div class="card--list__text">
|
3
|
+
<div>
|
4
|
+
<a href="<%= resource_locator(meeting).path %>" class="card__link">
|
5
|
+
<h6 class="card--list__heading heading6">
|
6
|
+
<%= translated_attribute meeting.title %>
|
7
|
+
</h6>
|
8
|
+
<span class="text-medium">
|
9
|
+
<%= l meeting.start_time, format: :decidim_day_of_year %> - <%= l meeting.start_time, format: :time_of_day %> - <%= l meeting.end_time, format: :time_of_day %>
|
10
|
+
</span>
|
11
|
+
</a>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</div>
|
data/config/locales/ca.yml
CHANGED
@@ -19,7 +19,7 @@ ca:
|
|
19
19
|
registration_terms: Termes i condicions de l'inscripció
|
20
20
|
registrations_enabled: Inscripcions obertes
|
21
21
|
start_time: Hora d'inici
|
22
|
-
title:
|
22
|
+
title: Títol
|
23
23
|
decidim:
|
24
24
|
events:
|
25
25
|
meetings:
|
@@ -28,6 +28,11 @@ ca:
|
|
28
28
|
email_outro: Has rebut aquesta notificació perquè estàs seguint la trobada "%{resource_title}". Pots deixar-la de seguir des de l'enllaç anterior.
|
29
29
|
email_subject: S'ha tancat la trobada "%{resource_title}"
|
30
30
|
notification_title: La trobada de <a href="%{resource_path}">%{resource_title}</a> s'ha tancat.
|
31
|
+
meeting_created:
|
32
|
+
email_intro: S'ha afegit la trobada "%{resource_title}" a l'espai "%{participatory_space_title}" que estàs seguint.
|
33
|
+
email_outro: Has rebut aquesta notificació perquè estàs seguint "%{participatory_space_title}". Pots deixar de seguir-lo des de l'enllaç anterior.
|
34
|
+
email_subject: Nova trobada a %{participatory_space_title}
|
35
|
+
notification_title: S'ha afegit la trobada <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title}
|
31
36
|
meeting_registrations_over_percentage:
|
32
37
|
email_intro: La disponibilitat d'espais a la trobada "%{resource_title}" està per sobre del %{percentage}%.
|
33
38
|
email_outro: Has rebut aquesta notificació perquè ets un administrador de l'espai participatiu d'aquesta trobada.
|
@@ -62,6 +67,7 @@ ca:
|
|
62
67
|
comments_blocked: Comentaris bloquejats
|
63
68
|
meetings:
|
64
69
|
actions:
|
70
|
+
attachment_collections: Col·leccions
|
65
71
|
attachments: Adjunts
|
66
72
|
close: Tancar
|
67
73
|
confirm_destroy: Segur que vols suprimir aquesta trobada?
|
@@ -124,6 +130,12 @@ ca:
|
|
124
130
|
update:
|
125
131
|
invalid: S'ha produït un problema en desar la configuració de la inscripció.
|
126
132
|
success: La configuració de les inscripcions de la trobada s'ha desat correctament.
|
133
|
+
admin_log:
|
134
|
+
meeting:
|
135
|
+
close: "%{user_name} ha tancat la trobada %{resource_name} a l'espai %{space_name}"
|
136
|
+
create: "%{user_name} ha creat la trobada %{resource_name} a l'espai %{space_name}"
|
137
|
+
delete: "%{user_name} ha eliminat la trobada %{resource_name} a l'espai %{space_name}"
|
138
|
+
update: "%{user_name} ha actualitzat la trobada %{resource_name} a l'espai %{space_name}"
|
127
139
|
mailer:
|
128
140
|
invite_join_meeting_mailer:
|
129
141
|
invite:
|
@@ -183,6 +195,16 @@ ca:
|
|
183
195
|
destroy:
|
184
196
|
invalid: Hi ha hagut un problema en sortir d'aquesta trobada.
|
185
197
|
success: Heu deixat la trobada amb èxit.
|
198
|
+
participatory_processes:
|
199
|
+
participatory_process_groups:
|
200
|
+
highlighted_meetings:
|
201
|
+
past_meetings: Trobades anteriors
|
202
|
+
upcoming_meetings: Properes trobades
|
203
|
+
participatory_spaces:
|
204
|
+
highlighted_meetings:
|
205
|
+
past_meetings: Trobades anteriors
|
206
|
+
see_all_meetings: Veure totes les trobades
|
207
|
+
upcoming_meetings: Properes rrobades
|
186
208
|
resource_links:
|
187
209
|
meetings_through_proposals:
|
188
210
|
meeting_results: 'Resultats relacionats:'
|
data/config/locales/en.yml
CHANGED
@@ -29,6 +29,11 @@ en:
|
|
29
29
|
email_outro: You have received this notification because you are following the "%{resource_title}" meeting. You can unfollow it from the previous link.
|
30
30
|
email_subject: The "%{resource_title}" meeting was closed
|
31
31
|
notification_title: The <a href="%{resource_path}">%{resource_title}</a> meeting was closed.
|
32
|
+
meeting_created:
|
33
|
+
email_intro: The meeting "%{resource_title}" has been added to "%{participatory_space_title}" that you are following.
|
34
|
+
email_outro: You have received this notification because you are following "%{participatory_space_title}". You can unfollow it from the previous link.
|
35
|
+
email_subject: New meeting added to %{participatory_space_title}
|
36
|
+
notification_title: The meeting <a href="%{resource_path}">%{resource_title}</a> has been added to %{participatory_space_title}
|
32
37
|
meeting_registrations_over_percentage:
|
33
38
|
email_intro: The "%{resource_title}" meeting occupied slots are over %{percentage}%.
|
34
39
|
email_outro: You have received this notification because you are an admin of the meeting's participatory space.
|
@@ -63,6 +68,7 @@ en:
|
|
63
68
|
comments_blocked: Comments blocked
|
64
69
|
meetings:
|
65
70
|
actions:
|
71
|
+
attachment_collections: Collections
|
66
72
|
attachments: Attachments
|
67
73
|
close: Close
|
68
74
|
confirm_destroy: Are you sure you want to delete this meeting?
|
@@ -126,6 +132,12 @@ en:
|
|
126
132
|
update:
|
127
133
|
invalid: There's been a problem saving the registration settings.
|
128
134
|
success: Meeting registrations settings successfully saved.
|
135
|
+
admin_log:
|
136
|
+
meeting:
|
137
|
+
close: "%{user_name} closed the %{resource_name} meeting on the %{space_name} space"
|
138
|
+
create: "%{user_name} created the %{resource_name} meeting on the %{space_name} space"
|
139
|
+
delete: "%{user_name} deleted the %{resource_name} meeting on the %{space_name} space"
|
140
|
+
update: "%{user_name} updated the %{resource_name} meeting on the %{space_name} space"
|
129
141
|
mailer:
|
130
142
|
invite_join_meeting_mailer:
|
131
143
|
invite:
|
@@ -186,6 +198,16 @@ en:
|
|
186
198
|
destroy:
|
187
199
|
invalid: There's been a problem leaving this meeting.
|
188
200
|
success: You have left the meeting successfully.
|
201
|
+
participatory_processes:
|
202
|
+
participatory_process_groups:
|
203
|
+
highlighted_meetings:
|
204
|
+
past_meetings: Past meetings
|
205
|
+
upcoming_meetings: Upcoming meetings
|
206
|
+
participatory_spaces:
|
207
|
+
highlighted_meetings:
|
208
|
+
past_meetings: Past meetings
|
209
|
+
see_all_meetings: See all meetings
|
210
|
+
upcoming_meetings: Upcoming meetings
|
189
211
|
resource_links:
|
190
212
|
meetings_through_proposals:
|
191
213
|
meeting_results: 'Related results:'
|
data/config/locales/es.yml
CHANGED
@@ -28,6 +28,11 @@ es:
|
|
28
28
|
email_outro: Has recibido esta notificación porque sigues el encuentro "%{resource_title}". Puedes dejar de seguirlo en el enlace anterior.
|
29
29
|
email_subject: Se ha cerrado el encuentro "%{resource_title}"
|
30
30
|
notification_title: El encuentro <a href="%{resource_path}">%{resource_title}</a> ha sido cerrada.
|
31
|
+
meeting_created:
|
32
|
+
email_intro: Se ha añadido el encuentro "%{resource_title}" al espacio "%{participatory_space_title}" que estás siguiendo.
|
33
|
+
email_outro: Has recibido esta notificación porque sigues "%{participatory_space_title}". Puedes dejar de seguirlo en el enlace anterior.
|
34
|
+
email_subject: Nuevo encuentro añadido a %{participatory_space_title}
|
35
|
+
notification_title: Se ha añadido el encuentro <a href="%{resource_path}">%{resource_title}</a> a %{participatory_space_title}
|
31
36
|
meeting_registrations_over_percentage:
|
32
37
|
email_intro: Las inscripciones ocupadas en "%{resource_title}" son %{percentage}%.
|
33
38
|
email_outro: Has recibido esta notificación porque eres es un administrador del espacio participativo de la reunión.
|
@@ -62,6 +67,7 @@ es:
|
|
62
67
|
comments_blocked: Comentarios bloqueados
|
63
68
|
meetings:
|
64
69
|
actions:
|
70
|
+
attachment_collections: Colecciones
|
65
71
|
attachments: Archivos adjuntos
|
66
72
|
close: Cerrar
|
67
73
|
confirm_destroy: '¿Está seguro de que quiere eliminar este encuentro?'
|
@@ -124,6 +130,12 @@ es:
|
|
124
130
|
update:
|
125
131
|
invalid: Se ha producido un problema al guardar la configuración de la inscripción.
|
126
132
|
success: Se han guardado correctamente las configuraciones de inscripciones de encuentros.
|
133
|
+
admin_log:
|
134
|
+
meeting:
|
135
|
+
close: "%{user_name} cerró el encuentro %{resource_name} en el espacio %{space_name}"
|
136
|
+
create: "%{user_name} creó el encuentro %{resource_name} en el espacio %{space_name}"
|
137
|
+
delete: "%{user_name} eliminó el encuentro %{resource_name} en el espacio %{space_name}"
|
138
|
+
update: "%{user_name} actualizó el encuentro %{resource_name} en el espacio %{space_name}"
|
127
139
|
mailer:
|
128
140
|
invite_join_meeting_mailer:
|
129
141
|
invite:
|
@@ -183,6 +195,16 @@ es:
|
|
183
195
|
destroy:
|
184
196
|
invalid: Ha habido un problema al salir de esta encuentro.
|
185
197
|
success: Has salido del encuentro con éxito.
|
198
|
+
participatory_processes:
|
199
|
+
participatory_process_groups:
|
200
|
+
highlighted_meetings:
|
201
|
+
past_meetings: Encuentros pasados
|
202
|
+
upcoming_meetings: Próximos encuentros
|
203
|
+
participatory_spaces:
|
204
|
+
highlighted_meetings:
|
205
|
+
past_meetings: Encuentros pasados
|
206
|
+
see_all_meetings: Ver todos los encuentros
|
207
|
+
upcoming_meetings: Próximos encuentros
|
186
208
|
resource_links:
|
187
209
|
meetings_through_proposals:
|
188
210
|
meeting_results: 'Resultados relacionados:'
|
data/config/locales/eu.yml
CHANGED
@@ -28,6 +28,11 @@ eu:
|
|
28
28
|
email_outro: Jakinarazpen hori jaso duzu "%{resource_title}" bilera jarraitzen duzulako. Aurreko esteka estekan jarrai dezakezu.
|
29
29
|
email_subject: '"%{resource_title}" bilera itxita zegoen'
|
30
30
|
notification_title: <a href="%{resource_path}">%{resource_title}</a> bilera itxita zegoen.
|
31
|
+
meeting_created:
|
32
|
+
email_intro: Bilera "%{resource_title}" | gehitu da "%{participatory_space_title}" " jarraitzen ari zarela.
|
33
|
+
email_outro: Jakinarazpena jaso duzu "%{participatory_space_title}" jarraitzen ari zarenagatik. Aurreko esteka estekan jarrai dezakezu.
|
34
|
+
email_subject: Bilera berria %{participatory_space_title}
|
35
|
+
notification_title: Bilera <a href="%{resource_path}">%{resource_title}</a> gehitu da %{participatory_space_title}
|
31
36
|
meeting_registrations_over_percentage:
|
32
37
|
email_intro: '"%{resource_title}" bilera okupatutako zirrikituak %{percentage} baino gehiagokoak dira.'
|
33
38
|
email_outro: Jakinarazpen hau jaso duzu bileraren parte hartzaileen gunea delako.
|
@@ -62,6 +67,7 @@ eu:
|
|
62
67
|
comments_blocked: Iruzkinak blokeatuta
|
63
68
|
meetings:
|
64
69
|
actions:
|
70
|
+
attachment_collections: Bilduma
|
65
71
|
attachments: Eranskinak
|
66
72
|
close: Itxi
|
67
73
|
confirm_destroy: Ziur zaude topaketa hau ezabatu nahi duzula?
|
@@ -124,6 +130,12 @@ eu:
|
|
124
130
|
update:
|
125
131
|
invalid: Arazo bat izan da izen-ematearen konfigurazioa gordetzean.
|
126
132
|
success: Topaketen izen-emateen konfigurazioak zuzen gorde dira.
|
133
|
+
admin_log:
|
134
|
+
meeting:
|
135
|
+
close: "%{user_name} %{resource_name} bilera %{space_name} espazioan itxi zen"
|
136
|
+
create: "%{user_name} %{resource_name} bilera sortu zen %{space_name} espazioan"
|
137
|
+
delete: "%{user_name} %{resource_name} topaketa ezabatu da %{space_name} espazioan"
|
138
|
+
update: "%{user_name} %{resource_name} topaketa %{space_name} espazioan eguneratu zen"
|
127
139
|
mailer:
|
128
140
|
invite_join_meeting_mailer:
|
129
141
|
invite:
|
@@ -183,6 +195,16 @@ eu:
|
|
183
195
|
destroy:
|
184
196
|
invalid: Arazo bat izan da topaketa honetatik ateratzean.
|
185
197
|
success: Topaketatik ongi atera zara.
|
198
|
+
participatory_processes:
|
199
|
+
participatory_process_groups:
|
200
|
+
highlighted_meetings:
|
201
|
+
past_meetings: Azken bilerak
|
202
|
+
upcoming_meetings: Hurrengo topaketak
|
203
|
+
participatory_spaces:
|
204
|
+
highlighted_meetings:
|
205
|
+
past_meetings: Azken bilerak
|
206
|
+
see_all_meetings: Ikusi bilera guztiak
|
207
|
+
upcoming_meetings: Hurrengo topaketak
|
186
208
|
resource_links:
|
187
209
|
meetings_through_proposals:
|
188
210
|
meeting_results: 'Topaketaren emaitzak:'
|