decidim-conferences 0.23.6 → 0.24.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/conferences/conference_speaker/show.erb +1 -1
- data/app/cells/decidim/conferences/media_link/show.erb +1 -1
- data/app/cells/decidim/conferences/media_link_cell.rb +1 -0
- data/app/commands/decidim/conferences/admin/create_conference_speaker.rb +40 -18
- data/app/commands/decidim/conferences/admin/create_partner.rb +33 -14
- data/app/commands/decidim/conferences/admin/invite_user_to_join_conference.rb +1 -1
- data/app/commands/decidim/conferences/admin/update_conference_speaker.rb +41 -17
- data/app/commands/decidim/conferences/admin/update_partner.rb +30 -10
- data/app/controllers/decidim/conferences/admin/imports_controller.rb +14 -0
- data/app/controllers/decidim/conferences/admin/moderations/reports_controller.rb +14 -0
- data/app/forms/decidim/conferences/admin/conference_speaker_form.rb +1 -1
- data/app/forms/decidim/conferences/admin/media_link_form.rb +1 -1
- data/app/forms/decidim/conferences/admin/partner_form.rb +2 -1
- data/app/models/decidim/conference_meeting.rb +1 -1
- data/app/models/decidim/conference_speaker.rb +1 -1
- data/app/models/decidim/conference_speaker_conference_meeting.rb +2 -2
- data/app/models/decidim/conferences/conference_meeting_registration_type.rb +2 -2
- data/app/models/decidim/conferences/registration_type.rb +1 -1
- data/app/permissions/decidim/conferences/permissions.rb +1 -1
- data/app/presenters/decidim/conferences/conference_stats_presenter.rb +1 -1
- data/app/views/decidim/conferences/admin/partners/_form.html.erb +1 -1
- data/app/views/layouts/decidim/admin/conference.html.erb +2 -1
- data/config/locales/ar.yml +0 -4
- data/config/locales/ca.yml +7 -4
- data/config/locales/cs.yml +12 -5
- data/config/locales/de.yml +10 -3
- data/config/locales/el.yml +0 -4
- data/config/locales/en.yml +10 -3
- data/config/locales/es-MX.yml +7 -4
- data/config/locales/es-PY.yml +7 -4
- data/config/locales/es.yml +8 -5
- data/config/locales/eu.yml +0 -4
- data/config/locales/fi-plain.yml +11 -4
- data/config/locales/fi.yml +11 -4
- data/config/locales/fr-CA.yml +10 -3
- data/config/locales/fr.yml +10 -3
- data/config/locales/gl.yml +0 -4
- data/config/locales/hu.yml +0 -4
- data/config/locales/id-ID.yml +0 -4
- data/config/locales/it.yml +1 -5
- data/config/locales/ja.yml +6 -4
- data/config/locales/lv.yml +0 -4
- data/config/locales/nl.yml +130 -129
- data/config/locales/no.yml +0 -4
- data/config/locales/pl.yml +12 -5
- data/config/locales/pt-BR.yml +0 -4
- data/config/locales/pt.yml +0 -4
- data/config/locales/ro-RO.yml +0 -54
- data/config/locales/sk.yml +0 -4
- data/config/locales/sv.yml +6 -4
- data/config/locales/tr-TR.yml +7 -4
- data/config/locales/zh-CN.yml +0 -4
- data/lib/decidim/api/conference_media_link_type.rb +18 -0
- data/lib/decidim/api/conference_partner_type.rb +19 -0
- data/lib/decidim/api/conference_speaker_type.rb +23 -0
- data/lib/decidim/api/conference_type.rb +42 -0
- data/lib/decidim/conferences/admin_engine.rb +3 -1
- data/lib/decidim/conferences/api.rb +10 -0
- data/lib/decidim/conferences/engine.rb +7 -1
- data/lib/decidim/conferences/participatory_space.rb +25 -25
- data/lib/decidim/conferences/query_extensions.rb +43 -0
- data/lib/decidim/conferences/test/factories.rb +6 -6
- data/lib/decidim/conferences/version.rb +1 -1
- data/lib/decidim/conferences.rb +1 -0
- metadata +22 -18
- data/app/types/decidim/conferences/conference_media_link_type.rb +0 -19
- data/app/types/decidim/conferences/conference_partner_type.rb +0 -20
- data/app/types/decidim/conferences/conference_speaker_type.rb +0 -24
- data/app/types/decidim/conferences/conference_type.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7067bdca600b96ce7d27aa7efdd85416c140cd84dbf050a381c0fbb1bc799ea4
|
4
|
+
data.tar.gz: 508e299dff1426f7d4485ce803fa8ecdbc71d39978ebe624d37e10db4f26747e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12cb8ede1e06dce01b7c33c6b7ec470c1ff8f4e9f9d4ef3a5cd3bb5759643660b37dabcb415db0b0e22f89881deaea6170c74a5ad50935330e275859f17ee833
|
7
|
+
data.tar.gz: a14098ba7b5452ddc42697cecdf72bb0182013a56010a13d808786eb524392749b012542049442a1e79fa48ef92130bde6ee4261701dd3629072d49c095581d2
|
@@ -70,7 +70,7 @@
|
|
70
70
|
<hr class="reset mt-none mb-s">
|
71
71
|
<div class="row">
|
72
72
|
<div class="column medium-12">
|
73
|
-
<div class="bio-acts"
|
73
|
+
<div class="bio-acts"><%= t("conferences.conference_speaker.show.speaking_at", scope: "decidim") %></div>
|
74
74
|
|
75
75
|
<ul class="list-reset">
|
76
76
|
<% meetings.each do |meeting| %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= icon "external-link", role: "img", "aria-hidden": true %>
|
3
3
|
<div>
|
4
4
|
<%= link_to model.link, target: "_blank" do %>
|
5
|
-
<strong><%= translated_attribute(model.title) %> </strong>
|
5
|
+
<strong><%= decidim_html_escape translated_attribute(model.title) %> </strong>
|
6
6
|
<% end %>
|
7
7
|
<div class="text-small"><%= l(model.date, format: :decidim_short_with_month_name_short) %> · <%= model.link %></div>
|
8
8
|
</div>
|
@@ -25,18 +25,52 @@ module Decidim
|
|
25
25
|
def call
|
26
26
|
return broadcast(:invalid) if form.invalid?
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
# We are going to assign the attributes only to handle the validation of the avatar before accessing
|
29
|
+
# `create_conference_speaker!` which uses `create!`, and this will render an ActiveRecord::RecordInvalid error
|
30
|
+
# After we assign and check if the object is valid, we will not save the model to let it be handled the old way
|
31
|
+
# If there is an error we add the error to the form
|
32
|
+
# We are using this method to assign the conference because if we are trying to assign all at once, there will be thrown a
|
33
|
+
# Delegation error
|
34
|
+
|
35
|
+
if conference_speaker_with_attributes.valid?
|
32
36
|
|
33
|
-
|
37
|
+
transaction do
|
38
|
+
create_conference_speaker!
|
39
|
+
link_meetings(@conference_speaker)
|
40
|
+
end
|
41
|
+
broadcast(:ok)
|
42
|
+
else
|
43
|
+
form.errors.add(:avatar, conference_speaker_with_attributes.errors[:avatar]) if conference_speaker_with_attributes.errors.include? :avatar
|
44
|
+
|
45
|
+
broadcast(:invalid)
|
46
|
+
end
|
34
47
|
end
|
35
48
|
|
36
49
|
private
|
37
50
|
|
38
51
|
attr_reader :form, :conference, :current_user
|
39
52
|
|
53
|
+
def conference_speaker_with_attributes
|
54
|
+
attrs = form.attributes.slice(
|
55
|
+
:full_name,
|
56
|
+
:twitter_handle,
|
57
|
+
:personal_url,
|
58
|
+
:avatar,
|
59
|
+
:remove_avatar,
|
60
|
+
:position,
|
61
|
+
:affiliation,
|
62
|
+
:short_bio
|
63
|
+
).merge(
|
64
|
+
decidim_conference_id: conference.id,
|
65
|
+
conference: conference,
|
66
|
+
user: form.user
|
67
|
+
)
|
68
|
+
conference_speaker = conference.speakers.build
|
69
|
+
conference_speaker.conference = conference
|
70
|
+
conference_speaker.assign_attributes(attrs)
|
71
|
+
conference_speaker
|
72
|
+
end
|
73
|
+
|
40
74
|
def create_conference_speaker!
|
41
75
|
log_info = {
|
42
76
|
resource: {
|
@@ -50,19 +84,7 @@ module Decidim
|
|
50
84
|
@conference_speaker = Decidim.traceability.create!(
|
51
85
|
Decidim::ConferenceSpeaker,
|
52
86
|
current_user,
|
53
|
-
|
54
|
-
:full_name,
|
55
|
-
:position,
|
56
|
-
:affiliation,
|
57
|
-
:short_bio,
|
58
|
-
:twitter_handle,
|
59
|
-
:personal_url,
|
60
|
-
:avatar,
|
61
|
-
:remove_avatar
|
62
|
-
).merge(
|
63
|
-
conference: conference,
|
64
|
-
user: form.user
|
65
|
-
),
|
87
|
+
conference_speaker_with_attributes.attributes,
|
66
88
|
log_info
|
67
89
|
)
|
68
90
|
end
|
@@ -25,11 +25,17 @@ module Decidim
|
|
25
25
|
def call
|
26
26
|
return broadcast(:invalid) if form.invalid?
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
if conference_partner.valid?
|
29
|
+
transaction do
|
30
|
+
create_partner!
|
31
|
+
end
|
32
|
+
|
33
|
+
broadcast(:ok)
|
34
|
+
else
|
35
|
+
form.errors.add(:logo, conference_partner.errors[:logo]) if conference_partner.errors.include? :logo
|
31
36
|
|
32
|
-
|
37
|
+
broadcast(:invalid)
|
38
|
+
end
|
33
39
|
end
|
34
40
|
|
35
41
|
private
|
@@ -49,19 +55,32 @@ module Decidim
|
|
49
55
|
@partner = Decidim.traceability.create!(
|
50
56
|
Decidim::Conferences::Partner,
|
51
57
|
form.current_user,
|
52
|
-
|
53
|
-
form.attributes.slice(
|
54
|
-
:name,
|
55
|
-
:weight,
|
56
|
-
:link,
|
57
|
-
:partner_type,
|
58
|
-
:logo,
|
59
|
-
:remove_avatar
|
60
|
-
)
|
61
|
-
),
|
58
|
+
attributes,
|
62
59
|
log_info
|
63
60
|
)
|
64
61
|
end
|
62
|
+
|
63
|
+
def conference_partner
|
64
|
+
return @conference_partner if defined?(@conference_partner)
|
65
|
+
|
66
|
+
@conference_partner = conference.partners.build
|
67
|
+
@conference_partner.conference = conference
|
68
|
+
@conference_partner.assign_attributes(attributes)
|
69
|
+
@conference_partner
|
70
|
+
end
|
71
|
+
|
72
|
+
def attributes
|
73
|
+
{ conference: conference }.merge(
|
74
|
+
form.attributes.slice(
|
75
|
+
:name,
|
76
|
+
:weight,
|
77
|
+
:link,
|
78
|
+
:partner_type,
|
79
|
+
:logo,
|
80
|
+
:remove_avatar
|
81
|
+
)
|
82
|
+
)
|
83
|
+
end
|
65
84
|
end
|
66
85
|
end
|
67
86
|
end
|
@@ -37,7 +37,7 @@ module Decidim
|
|
37
37
|
|
38
38
|
def already_invited?
|
39
39
|
return false unless user.persisted?
|
40
|
-
return false unless conference.conference_invites.
|
40
|
+
return false unless conference.conference_invites.exists?(user: user)
|
41
41
|
|
42
42
|
form.errors.add(:email, :already_invited)
|
43
43
|
true
|
@@ -11,6 +11,7 @@ module Decidim
|
|
11
11
|
# form - A form object with the params.
|
12
12
|
# conference_speaker - The ConferenceSpeaker to update
|
13
13
|
def initialize(form, conference_speaker)
|
14
|
+
form.avatar = conference_speaker.avatar if form.avatar.blank?
|
14
15
|
@form = form
|
15
16
|
@conference_speaker = conference_speaker
|
16
17
|
end
|
@@ -25,18 +26,52 @@ module Decidim
|
|
25
26
|
return broadcast(:invalid) if form.invalid?
|
26
27
|
return broadcast(:invalid) unless conference_speaker
|
27
28
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
# We are going to assign the attributes only to handle the validation of the avatar before accessing
|
30
|
+
# `update_conference_speaker!` which uses `update!`. Without this step, the image validation may render
|
31
|
+
# an ActiveRecord::RecordInvalid error
|
32
|
+
# After we assign and check if the object is valid, we reload the model to let it be handled the old way
|
33
|
+
# If there is an error we add the error to the form
|
34
|
+
conference_speaker.assign_attributes(attributes)
|
35
|
+
|
36
|
+
if conference_speaker.valid?
|
37
|
+
conference_speaker.reload
|
32
38
|
|
33
|
-
|
39
|
+
transaction do
|
40
|
+
update_conference_speaker!
|
41
|
+
link_meetings(@conference_speaker)
|
42
|
+
end
|
43
|
+
broadcast(:ok)
|
44
|
+
else
|
45
|
+
form.errors.add(:avatar, conference_speaker.errors[:avatar]) if conference_speaker.errors.include? :avatar
|
46
|
+
|
47
|
+
broadcast(:invalid)
|
48
|
+
end
|
34
49
|
end
|
35
50
|
|
36
51
|
private
|
37
52
|
|
38
53
|
attr_reader :form, :conference_speaker
|
39
54
|
|
55
|
+
def attributes
|
56
|
+
form.attributes.slice(
|
57
|
+
:full_name,
|
58
|
+
:twitter_handle,
|
59
|
+
:personal_url,
|
60
|
+
:position,
|
61
|
+
:affiliation,
|
62
|
+
:short_bio
|
63
|
+
).merge(
|
64
|
+
user: form.user
|
65
|
+
).merge(uploader_attributes)
|
66
|
+
end
|
67
|
+
|
68
|
+
def uploader_attributes
|
69
|
+
{
|
70
|
+
avatar: form.avatar,
|
71
|
+
remove_avatar: form.remove_avatar
|
72
|
+
}.delete_if { |_k, val| val.is_a?(Decidim::ApplicationUploader) }
|
73
|
+
end
|
74
|
+
|
40
75
|
def update_conference_speaker!
|
41
76
|
log_info = {
|
42
77
|
resource: {
|
@@ -50,18 +85,7 @@ module Decidim
|
|
50
85
|
Decidim.traceability.update!(
|
51
86
|
conference_speaker,
|
52
87
|
form.current_user,
|
53
|
-
|
54
|
-
:full_name,
|
55
|
-
:position,
|
56
|
-
:affiliation,
|
57
|
-
:short_bio,
|
58
|
-
:twitter_handle,
|
59
|
-
:personal_url,
|
60
|
-
:avatar,
|
61
|
-
:remove_avatar
|
62
|
-
).merge(
|
63
|
-
user: form.user
|
64
|
-
),
|
88
|
+
attributes,
|
65
89
|
log_info
|
66
90
|
)
|
67
91
|
end
|
@@ -11,6 +11,8 @@ module Decidim
|
|
11
11
|
# form - A form object with the params.
|
12
12
|
# conference_partner - The ConferencePartner to update
|
13
13
|
def initialize(form, conference_partner)
|
14
|
+
form.logo = conference_partner.logo if form.logo.blank?
|
15
|
+
|
14
16
|
@form = form
|
15
17
|
@conference_partner = conference_partner
|
16
18
|
end
|
@@ -25,14 +27,39 @@ module Decidim
|
|
25
27
|
return broadcast(:invalid) if form.invalid?
|
26
28
|
return broadcast(:invalid) unless conference_partner
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
+
# We are going to assign the attributes only to handle the validation of the avatar before accessing
|
31
|
+
# `update_conference_partner!` which uses `update!`. Without this step, the image validation may render
|
32
|
+
# an ActiveRecord::RecordInvalid error
|
33
|
+
# After we assign and check if the object is valid, we reload the model to let it be handled the old way
|
34
|
+
# If there is an error we add the error to the form
|
35
|
+
conference_partner.assign_attributes(attributes)
|
36
|
+
if conference_partner.valid?
|
37
|
+
conference_partner.reload
|
38
|
+
|
39
|
+
update_conference_partner!
|
40
|
+
broadcast(:ok)
|
41
|
+
else
|
42
|
+
form.errors.add(:logo, conference_partner.errors[:logo]) if conference_partner.errors.include? :logo
|
43
|
+
|
44
|
+
broadcast(:invalid)
|
45
|
+
end
|
30
46
|
end
|
31
47
|
|
32
48
|
private
|
33
49
|
|
34
50
|
attr_reader :form, :conference_partner
|
35
51
|
|
52
|
+
def attributes
|
53
|
+
form.attributes.slice(
|
54
|
+
:name,
|
55
|
+
:weight,
|
56
|
+
:partner_type,
|
57
|
+
:link,
|
58
|
+
:logo,
|
59
|
+
:remove_logo
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
36
63
|
def update_conference_partner!
|
37
64
|
log_info = {
|
38
65
|
resource: {
|
@@ -46,14 +73,7 @@ module Decidim
|
|
46
73
|
Decidim.traceability.update!(
|
47
74
|
conference_partner,
|
48
75
|
form.current_user,
|
49
|
-
|
50
|
-
:name,
|
51
|
-
:weight,
|
52
|
-
:partner_type,
|
53
|
-
:link,
|
54
|
-
:logo,
|
55
|
-
:remove_logo
|
56
|
-
),
|
76
|
+
attributes,
|
57
77
|
log_info
|
58
78
|
)
|
59
79
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
module Admin
|
6
|
+
# This controller allows importing things.
|
7
|
+
# It is targeted for customizations for importing things that lives under
|
8
|
+
# an conference.
|
9
|
+
class ImportsController < Decidim::Admin::ImportsController
|
10
|
+
include Concerns::ConferenceAdmin
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
module Admin
|
6
|
+
module Moderations
|
7
|
+
# This controller allows admins to manage moderation reports in an conference.
|
8
|
+
class ReportsController < Decidim::Admin::Moderations::ReportsController
|
9
|
+
include Concerns::ConferenceAdmin
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -17,6 +17,7 @@ module Decidim
|
|
17
17
|
attribute :remove_logo
|
18
18
|
|
19
19
|
validates :name, :partner_type, presence: true, if: ->(form) { form.logo.present? }
|
20
|
+
validates :logo, presence: true, unless: ->(form) { form.logo.present? }
|
20
21
|
validates :logo, passthru: {
|
21
22
|
to: Decidim::Conferences::Partner,
|
22
23
|
with: {
|
@@ -38,7 +39,7 @@ module Decidim
|
|
38
39
|
def link
|
39
40
|
return if super.blank?
|
40
41
|
|
41
|
-
return "http
|
42
|
+
return "http://#{super}" unless super.match?(%r{\A(http|https)://}i)
|
42
43
|
|
43
44
|
super
|
44
45
|
end
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
# It represents a meeting of the conference
|
5
5
|
class ConferenceMeeting < Decidim::Meetings::Meeting
|
6
6
|
has_many :conference_speaker_conference_meetings, dependent: :destroy
|
7
|
-
has_many :conference_speakers, through: :conference_speaker_conference_meetings,
|
7
|
+
has_many :conference_speakers, through: :conference_speaker_conference_meetings, class_name: "Decidim::ConferenceSpeaker"
|
8
8
|
has_many :conference_meeting_registration_types, dependent: :destroy
|
9
9
|
has_many :registration_types, through: :conference_meeting_registration_types, foreign_key: "registration_type_id", class_name: "Decidim::Conferences::RegistrationType"
|
10
10
|
end
|
@@ -14,7 +14,7 @@ module Decidim
|
|
14
14
|
belongs_to :user, foreign_key: "decidim_user_id", class_name: "Decidim::User", optional: true
|
15
15
|
belongs_to :conference, foreign_key: "decidim_conference_id", class_name: "Decidim::Conference"
|
16
16
|
has_many :conference_speaker_conference_meetings, dependent: :destroy
|
17
|
-
has_many :conference_meetings, through: :conference_speaker_conference_meetings,
|
17
|
+
has_many :conference_meetings, through: :conference_speaker_conference_meetings, class_name: "Decidim::ConferenceMeeting"
|
18
18
|
|
19
19
|
default_scope { order(full_name: :asc, created_at: :asc) }
|
20
20
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
class ConferenceSpeakerConferenceMeeting < ApplicationRecord
|
5
|
-
belongs_to :conference_speaker,
|
6
|
-
belongs_to :conference_meeting,
|
5
|
+
belongs_to :conference_speaker, class_name: "Decidim::ConferenceSpeaker"
|
6
|
+
belongs_to :conference_meeting, class_name: "Decidim::ConferenceMeeting"
|
7
7
|
end
|
8
8
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Conferences
|
5
5
|
class ConferenceMeetingRegistrationType < ApplicationRecord
|
6
|
-
belongs_to :conference_meeting,
|
7
|
-
belongs_to :registration_type,
|
6
|
+
belongs_to :conference_meeting, class_name: "Decidim::ConferenceMeeting"
|
7
|
+
belongs_to :registration_type, class_name: "Decidim::Conferences::RegistrationType"
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -13,7 +13,7 @@ module Decidim
|
|
13
13
|
|
14
14
|
belongs_to :conference, foreign_key: "decidim_conference_id", class_name: "Decidim::Conference"
|
15
15
|
has_many :conference_meeting_registration_types, dependent: :destroy
|
16
|
-
has_many :conference_meetings, through: :conference_meeting_registration_types,
|
16
|
+
has_many :conference_meetings, through: :conference_meeting_registration_types, class_name: "Decidim::ConferenceMeeting"
|
17
17
|
has_many :conference_registrations, foreign_key: "decidim_conference_registration_type_id", class_name: "Decidim::Conferences::ConferenceRegistration", dependent: :destroy
|
18
18
|
|
19
19
|
default_scope { order(weight: :asc) }
|
@@ -80,7 +80,7 @@ module Decidim
|
|
80
80
|
def can_decline_invitation?
|
81
81
|
return unless conference.presence
|
82
82
|
return unless conference.registrations_enabled? &&
|
83
|
-
conference.conference_invites.
|
83
|
+
conference.conference_invites.exists?(user: user) &&
|
84
84
|
permission_action.action == :decline_invitation &&
|
85
85
|
permission_action.subject == :conference
|
86
86
|
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
# Public: Render a collection of primary stats.
|
11
11
|
def highlighted
|
12
12
|
highlighted_stats = component_stats(priority: StatsRegistry::HIGH_PRIORITY)
|
13
|
-
highlighted_stats
|
13
|
+
highlighted_stats.concat(component_stats(priority: StatsRegistry::MEDIUM_PRIORITY))
|
14
14
|
highlighted_stats = highlighted_stats.reject(&:empty?)
|
15
15
|
highlighted_stats = highlighted_stats.reject { |_manifest, _name, data| data.zero? }
|
16
16
|
grouped_highlighted_stats = highlighted_stats.group_by { |stats| stats.first.name }
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<ul id="components-list">
|
14
14
|
<% current_participatory_space.components.each do |component| %>
|
15
15
|
<% if component.manifest.admin_engine && user_role_config.component_is_accessible?(component.manifest_name) %>
|
16
|
-
<li <% if is_active_link?(manage_component_path(component)) || is_active_link?(decidim_admin_conferences.edit_component_path(current_participatory_space, component)) || is_active_link?(decidim_admin_conferences.edit_component_permissions_path(current_participatory_space, component)) %> class="is-active" <% end %>>
|
16
|
+
<li <% if is_active_link?(manage_component_path(component)) || is_active_link?(decidim_admin_conferences.edit_component_path(current_participatory_space, component)) || is_active_link?(decidim_admin_conferences.edit_component_permissions_path(current_participatory_space, component)) || participatory_space_active_link?(component) %> class="is-active" <% end %>>
|
17
17
|
<%= link_to manage_component_path(component) do %>
|
18
18
|
<%= translated_attribute component.name %>
|
19
19
|
<% if component.primary_stat.present? %>
|
@@ -101,6 +101,7 @@
|
|
101
101
|
<%= aria_selected_link_to t("moderations", scope: "decidim.admin.menu.conferences_submenu"), decidim_admin_conferences.moderations_path(current_participatory_space) %>
|
102
102
|
</li>
|
103
103
|
<% end %>
|
104
|
+
<%= Decidim::Admin.view_hooks.render(:admin_secondary_nav, deep_dup) %>
|
104
105
|
</ul>
|
105
106
|
</div>
|
106
107
|
<% end %>
|
data/config/locales/ar.yml
CHANGED
@@ -277,10 +277,6 @@ ar:
|
|
277
277
|
conferences:
|
278
278
|
conference_registration:
|
279
279
|
confirm: "%{user_name} أكد تسجيل مؤتمر في مؤتمر %{resource_name}"
|
280
|
-
partner:
|
281
|
-
create: "%{user_name} أنشأ %{resource_name} إلى %{space_name} المؤتمر"
|
282
|
-
delete: "%{user_name} أزال المشرف %{resource_name} من المؤتمر %{space_name}"
|
283
|
-
update: "%{user_name} محدث %{resource_name} في المؤتمر %{space_name}"
|
284
280
|
registration_type:
|
285
281
|
create: "%{user_name} أنشأ نوع التسجيل %{resource_name} في المؤتمر %{space_name}"
|
286
282
|
publish: "%{user_name} نشر نوع التسجيل %{resource_name} في المؤتمر %{space_name}"
|
data/config/locales/ca.yml
CHANGED
@@ -266,10 +266,6 @@ ca:
|
|
266
266
|
conferences:
|
267
267
|
conference_registration:
|
268
268
|
confirm: "%{user_name} ha confirmat la seva inscripció a la jornada %{resource_name}"
|
269
|
-
partner:
|
270
|
-
create: "%{user_name} ha creat %{resource_name} a la jornada %{space_name}"
|
271
|
-
delete: "%{user_name} ha eliminat l'administradora %{resource_name} de la jornada %{space_name}"
|
272
|
-
update: "%{user_name} ha actualitzat %{resource_name} a la jornada %{space_name}"
|
273
269
|
registration_type:
|
274
270
|
create: "%{user_name} ha creat el tipus d'inscripció %{resource_name} a la jornada %{space_name}"
|
275
271
|
publish: "%{user_name} ha publicat el tipus d'inscripció %{resource_name} a la jornada %{space_name}"
|
@@ -402,6 +398,7 @@ ca:
|
|
402
398
|
personal_website: Lloc web personal
|
403
399
|
show:
|
404
400
|
more_info: més informació
|
401
|
+
speaking_at: Intervé a
|
405
402
|
conference_speaker_cell:
|
406
403
|
personal_url:
|
407
404
|
personal_website: Lloc web personal
|
@@ -539,6 +536,12 @@ ca:
|
|
539
536
|
email_outro: Has rebut aquesta notificació perquè estàs seguint la jornada "%{resource_title}". Podeu deixar-la de seguir-a des de l'enllaç anterior.
|
540
537
|
email_subject: La jornada "%{resource_title}" s'apropa!
|
541
538
|
notification_title: La jornada <a href="%{resource_path}">%{resource_title}</a> començarà en 2 dies.
|
539
|
+
help:
|
540
|
+
participatory_spaces:
|
541
|
+
conferences:
|
542
|
+
contextual: "<p>Una <strong>conferència</strong> és un conjunt de trobades organitzades en un programa, amb un grup de persones convidades com a ponents, i altres camps d'informació típics dels grans congressos o esdeveniments socials (inscripció, llista d'organitzacions que secunden o patrocinen l'esdeveniment, etc.).</p> <p>Exemples: Una conferència pot ser un esdeveniment rellevant per a una organització i els seus membres, o pot tenir lloc com a part d'un procés participatiu o després d'una consulta.</p>"
|
543
|
+
page: "<p>Una <strong>conferència</strong> és un conjunt de trobades organitzades en un programa, amb un grup de persones convidades com a ponents, i altres camps d'informació típics dels grans congressos o esdeveniments socials (inscripció, llista d'organitzacions que secunden o patrocinen l'esdeveniment, etc.).</p> <p>Exemples: Una conferència pot ser un esdeveniment rellevant per a una organització i els seus membres, o pot tenir lloc com a part d'un procés participatiu o després d'una consulta.</p>"
|
544
|
+
title: Què són les conferències?
|
542
545
|
log:
|
543
546
|
value_types:
|
544
547
|
conference_presenter:
|
data/config/locales/cs.yml
CHANGED
@@ -210,7 +210,7 @@ cs:
|
|
210
210
|
fields:
|
211
211
|
conference_meetings: Setkání konference
|
212
212
|
price: Cena
|
213
|
-
registrations_count:
|
213
|
+
registrations_count: Registrace se počítají
|
214
214
|
title: Název
|
215
215
|
weight: Váha
|
216
216
|
name: Typ registrace
|
@@ -273,9 +273,9 @@ cs:
|
|
273
273
|
conference_registration:
|
274
274
|
confirm: "%{user_name} potvrdil registraci konference na konferenci %{resource_name}"
|
275
275
|
partner:
|
276
|
-
create: "%{user_name} vytvořil %{resource_name} na konferenci %{space_name}"
|
277
|
-
delete: "%{user_name} odstranil
|
278
|
-
update: "%{user_name} aktualizoval %{resource_name}
|
276
|
+
create: "%{user_name} vytvořil partnera %{resource_name} na konferenci %{space_name}"
|
277
|
+
delete: "%{user_name} odstranil partnera %{resource_name} z konference %{space_name}"
|
278
|
+
update: "%{user_name} aktualizoval partnera %{resource_name} na konferenci %{space_name}"
|
279
279
|
registration_type:
|
280
280
|
create: "%{user_name} vytvořil typ registrace %{resource_name} na konferenci %{space_name}"
|
281
281
|
publish: "%{user_name} publikoval %{resource_name} typ registrace na %{space_name} konferencích"
|
@@ -309,7 +309,7 @@ cs:
|
|
309
309
|
index:
|
310
310
|
filter:
|
311
311
|
accepted: Přijato
|
312
|
-
all:
|
312
|
+
all: Všechno
|
313
313
|
rejected: Odmítnuto
|
314
314
|
sent: Odesláno
|
315
315
|
filter_by: Filtrovat podle
|
@@ -410,6 +410,7 @@ cs:
|
|
410
410
|
personal_website: Osobní web
|
411
411
|
show:
|
412
412
|
more_info: více informací
|
413
|
+
speaking_at: Má projev v
|
413
414
|
conference_speaker_cell:
|
414
415
|
personal_url:
|
415
416
|
personal_website: Osobní web
|
@@ -547,6 +548,12 @@ cs:
|
|
547
548
|
email_outro: Toto upozornění jste obdrželi, protože jste sledovali konferenci "%{resource_title}". Můžete jej odhlásit od předchozího odkazu.
|
548
549
|
email_subject: Konference "%{resource_title}" přichází!
|
549
550
|
notification_title: Konference <a href="%{resource_path}">%{resource_title}</a> přichází za 2 dny.
|
551
|
+
help:
|
552
|
+
participatory_spaces:
|
553
|
+
conferences:
|
554
|
+
contextual: "<p> <strong>Konference</strong> je několik schůzek uspořádaných v rámci programu s řadou lidí pozvaných jako řečníci, a další informační pole typická pro velké kongresy nebo společenské události (registrace, seznam organizací, které podporují nebo sponzorují událost atd.).</p> <p>Příklady: Konference může být relevantní pro organizaci a její členy, nebo se koná v rámci účastnického procesu, nebo následuje konzultace.</p>\n"
|
555
|
+
page: "<p> <strong>Konference</strong> je několik schůzek uspořádaných v rámci programu s řadou lidí pozvaných jako řečníci, a další informační pole typická pro velké kongresy nebo společenské události (registrace, seznam organizací, které podporují nebo sponzorují událost atd.).</p> <p>Příklady: Konference může být relevantní pro organizaci a její členy, nebo se koná v rámci účastnického procesu, nebo následuje konzultace.</p>\n"
|
556
|
+
title: Co jsou konference?
|
550
557
|
log:
|
551
558
|
value_types:
|
552
559
|
conference_presenter:
|