decidim-conferences 0.23.2 → 0.24.0
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/events/decidim/conferences/conference_role_assigned_event.rb +1 -1
- 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 +10 -3
- data/config/locales/cs.yml +10 -3
- 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 +10 -3
- data/config/locales/es-PY.yml +10 -3
- data/config/locales/es.yml +11 -4
- 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 +4 -3
- data/config/locales/no.yml +0 -4
- data/config/locales/pl.yml +14 -7
- data/config/locales/pt-BR.yml +0 -4
- data/config/locales/pt.yml +0 -4
- data/config/locales/ro-RO.yml +60 -3
- 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/db/migrate/20210310134942_add_followable_counter_cache_to_conferences.rb +16 -0
- 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.rb +1 -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
- metadata +21 -16
- 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
data/config/locales/zh-CN.yml
CHANGED
@@ -263,10 +263,6 @@ zh-CN:
|
|
263
263
|
conferences:
|
264
264
|
conference_registration:
|
265
265
|
confirm: "%{user_name} 在 %{resource_name} 次会议上确认了会议注册"
|
266
|
-
partner:
|
267
|
-
create: "%{user_name} 创建了 %{resource_name} 到 %{space_name} 会议"
|
268
|
-
delete: "%{user_name} 将 %{resource_name} 管理员从 %{space_name} 次会议中删除"
|
269
|
-
update: "%{user_name} 在 %{space_name} 次会议上更新 %{resource_name}"
|
270
266
|
registration_type:
|
271
267
|
create: "%{user_name} 在 %{space_name} 次会议上创建了 %{resource_name} 注册类型"
|
272
268
|
publish: "%{user_name} 在 %{space_name} 次会议上发布了 %{resource_name} 注册类型"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddFollowableCounterCacheToConferences < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_column :decidim_conferences, :follows_count, :integer, null: false, default: 0, index: true
|
6
|
+
|
7
|
+
reversible do |dir|
|
8
|
+
dir.up do
|
9
|
+
Decidim::Conference.reset_column_information
|
10
|
+
Decidim::Conference.find_each do |record|
|
11
|
+
record.class.reset_counters(record.id, :follows)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
# This type represents a conference.
|
6
|
+
class ConferenceMediaLinkType < Decidim::Api::Types::BaseObject
|
7
|
+
description "A conference media link"
|
8
|
+
|
9
|
+
field :id, GraphQL::Types::ID, "Internal ID for this media link", null: false
|
10
|
+
field :title, Decidim::Core::TranslatedFieldType, "Title for this media link", null: true
|
11
|
+
field :link, GraphQL::Types::String, "URL for this media link", null: true
|
12
|
+
field :date, Decidim::Core::DateType, "Relevant date for the media link", null: true
|
13
|
+
field :weight, GraphQL::Types::Int, "Order of appearance in which it should be presented", null: true
|
14
|
+
field :created_at, Decidim::Core::DateTimeType, "The time this entry was created", null: true
|
15
|
+
field :updated_at, Decidim::Core::DateTimeType, "The time this entry was updated", null: true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
# This type represents a conference.
|
6
|
+
class ConferencePartnerType < Decidim::Api::Types::BaseObject
|
7
|
+
description "A conference partner"
|
8
|
+
|
9
|
+
field :id, GraphQL::Types::ID, "ID of the resource", null: false
|
10
|
+
field :name, GraphQL::Types::String, "Partner name", null: true
|
11
|
+
field :partner_type, GraphQL::Types::String, "Partner type", null: true
|
12
|
+
field :weight, GraphQL::Types::Int, "Order of appearance in which it should be presented", null: true
|
13
|
+
field :link, GraphQL::Types::String, "Relevant URL for this partner", null: true
|
14
|
+
field :logo, GraphQL::Types::String, "Link to the partner's logo", null: true
|
15
|
+
field :created_at, Decidim::Core::DateTimeType, "The time this partner was created", null: true
|
16
|
+
field :updated_at, Decidim::Core::DateTimeType, "The time this partner was updated", null: true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
# This type represents a conference.
|
6
|
+
class ConferenceSpeakerType < Decidim::Api::Types::BaseObject
|
7
|
+
description "A conference speaker"
|
8
|
+
|
9
|
+
field :id, GraphQL::Types::ID, "Internal ID of the speaker", null: false
|
10
|
+
field :full_name, GraphQL::Types::String, "Full name of the speaker", null: true
|
11
|
+
field :position, Decidim::Core::TranslatedFieldType, "Position of the speaker in the conference", null: true
|
12
|
+
field :affiliation, Decidim::Core::TranslatedFieldType, "Affiliation of the speaker", null: true
|
13
|
+
field :twitter_handle, GraphQL::Types::String, "Twitter handle", null: true
|
14
|
+
field :short_bio, Decidim::Core::TranslatedFieldType, "Short biography of the speaker", null: true
|
15
|
+
field :personal_url, GraphQL::Types::String, "Personal URL of the speaker", null: true
|
16
|
+
field :avatar, GraphQL::Types::String, "Avatar of the speaker", null: true
|
17
|
+
field :user, Decidim::Core::UserType, "Decidim user corresponding to this speaker", null: true
|
18
|
+
|
19
|
+
field :created_at, Decidim::Core::DateTimeType, "The time this member was created ", null: true
|
20
|
+
field :updated_at, Decidim::Core::DateTimeType, "The time this member was updated", null: true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
# This type represents a conference.
|
6
|
+
class ConferenceType < Decidim::Api::Types::BaseObject
|
7
|
+
implements Decidim::Core::ParticipatorySpaceInterface
|
8
|
+
implements Decidim::Core::ScopableInterface
|
9
|
+
implements Decidim::Core::AttachableInterface
|
10
|
+
|
11
|
+
description "A conference"
|
12
|
+
|
13
|
+
field :id, GraphQL::Types::ID, "Internal ID for this conference", null: false
|
14
|
+
field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this conference", null: true
|
15
|
+
field :description, Decidim::Core::TranslatedFieldType, "The description of this conference", null: true
|
16
|
+
field :slug, GraphQL::Types::String, "The slug of this conference", null: true
|
17
|
+
field :hashtag, GraphQL::Types::String, "The hashtag for this conference", null: true
|
18
|
+
field :slogan, Decidim::Core::TranslatedFieldType, "The slogan of the conference", null: true
|
19
|
+
field :location, String, "The location of this conference", null: true
|
20
|
+
field :created_at, Decidim::Core::DateTimeType, "The time this conference was created", null: true
|
21
|
+
field :updated_at, Decidim::Core::DateTimeType, "The time this conference was updated", null: true
|
22
|
+
field :published_at, Decidim::Core::DateTimeType, "The time this conference was published", null: true
|
23
|
+
field :reference, GraphQL::Types::String, "Reference prefix for this conference", null: true
|
24
|
+
|
25
|
+
field :hero_image, GraphQL::Types::String, "The hero image for this conference", null: true
|
26
|
+
field :banner_image, GraphQL::Types::String, "The banner image for this conference", null: true
|
27
|
+
field :promoted, GraphQL::Types::Boolean, "If this conference is promoted (therefore in the homepage)", null: true
|
28
|
+
field :objectives, Decidim::Core::TranslatedFieldType, "The objectives of the conference", null: true
|
29
|
+
field :show_statistics, GraphQL::Types::Boolean, "If this conference shows the statistics", null: true
|
30
|
+
field :start_date, Decidim::Core::DateType, "The date this conference starts", null: true
|
31
|
+
field :end_date, Decidim::Core::DateType, "The date this conference ends", null: true
|
32
|
+
field :registrations_enabled, GraphQL::Types::Boolean, "If the registrations are enabled in this conference", null: true
|
33
|
+
field :available_slots, GraphQL::Types::Int, "The number of available slots in this conference", null: true
|
34
|
+
field :registration_terms, Decidim::Core::TranslatedFieldType, "The registration terms of this conference", null: true
|
35
|
+
|
36
|
+
field :speakers, [Decidim::Conferences::ConferenceSpeakerType, { null: true }], "List of speakers in this conference", null: true
|
37
|
+
field :partners, [Decidim::Conferences::ConferencePartnerType, { null: true }], "List of partners in this conference", null: true
|
38
|
+
field :categories, [Decidim::Core::CategoryType, { null: true }], "List of categories in this conference", null: true
|
39
|
+
field :media_links, [Decidim::Conferences::ConferenceMediaLinkType, { null: true }], "List of media links in this conference", null: true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/decidim/conferences.rb
CHANGED
@@ -61,6 +61,7 @@ module Decidim
|
|
61
61
|
get :share
|
62
62
|
end
|
63
63
|
resources :exports, only: :create
|
64
|
+
resources :imports, only: [:new, :create]
|
64
65
|
end
|
65
66
|
|
66
67
|
resources :moderations do
|
@@ -69,6 +70,7 @@ module Decidim
|
|
69
70
|
put :hide
|
70
71
|
put :unhide
|
71
72
|
end
|
73
|
+
resources :reports, controller: "moderations/reports", only: [:index, :show]
|
72
74
|
end
|
73
75
|
end
|
74
76
|
|
@@ -92,7 +94,7 @@ module Decidim
|
|
92
94
|
menu.item I18n.t("menu.conferences", scope: "decidim.admin"),
|
93
95
|
decidim_admin_conferences.conferences_path,
|
94
96
|
icon_name: "microphone",
|
95
|
-
position:
|
97
|
+
position: 2.8,
|
96
98
|
active: :inclusive,
|
97
99
|
if: allowed_to?(:enter, :space_area, space_name: :conferences)
|
98
100
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
autoload :ConferenceType, "decidim/api/conference_type"
|
6
|
+
autoload :ConferenceMediaLinkType, "decidim/api/conference_media_link_type"
|
7
|
+
autoload :ConferencePartnerType, "decidim/api/conference_partner_type"
|
8
|
+
autoload :ConferenceSpeakerType, "decidim/api/conference_speaker_type"
|
9
|
+
end
|
10
|
+
end
|
@@ -5,6 +5,8 @@ require "active_support/all"
|
|
5
5
|
require "decidim/core"
|
6
6
|
require "wicked_pdf"
|
7
7
|
|
8
|
+
require "decidim/conferences/query_extensions"
|
9
|
+
|
8
10
|
module Decidim
|
9
11
|
module Conferences
|
10
12
|
# Decidim's Conferences Rails Engine.
|
@@ -67,7 +69,7 @@ module Decidim
|
|
67
69
|
Decidim.menu :menu do |menu|
|
68
70
|
menu.item I18n.t("menu.conferences", scope: "decidim"),
|
69
71
|
decidim_conferences.conferences_path,
|
70
|
-
position:
|
72
|
+
position: 2.8,
|
71
73
|
if: Decidim::Conference.where(organization: current_organization).published.any?,
|
72
74
|
active: :inclusive
|
73
75
|
end
|
@@ -79,6 +81,10 @@ module Decidim
|
|
79
81
|
content_block.public_name_key = "decidim.conferences.content_blocks.highlighted_conferences.name"
|
80
82
|
end
|
81
83
|
end
|
84
|
+
|
85
|
+
initializer "decidim_conferences.query_extensions" do
|
86
|
+
Decidim::Api::QueryType.include Decidim::Conferences::QueryExtensions
|
87
|
+
end
|
82
88
|
end
|
83
89
|
end
|
84
90
|
end
|
@@ -53,15 +53,15 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
53
53
|
|
54
54
|
2.times do |_n|
|
55
55
|
conference = Decidim::Conference.create!(
|
56
|
-
title: Decidim::Faker::Localized.sentence(5),
|
57
|
-
slogan: Decidim::Faker::Localized.sentence(2),
|
58
|
-
slug: Faker::Internet.unique.slug(nil, "-"),
|
56
|
+
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
57
|
+
slogan: Decidim::Faker::Localized.sentence(word_count: 2),
|
58
|
+
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
59
59
|
hashtag: "##{Faker::Lorem.word}",
|
60
60
|
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
61
|
-
Decidim::Faker::Localized.sentence(3)
|
61
|
+
Decidim::Faker::Localized.sentence(word_count: 3)
|
62
62
|
end,
|
63
63
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
64
|
-
Decidim::Faker::Localized.paragraph(3)
|
64
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
65
65
|
end,
|
66
66
|
organization: organization,
|
67
67
|
hero_image: File.new(File.join(seeds_root, "city.jpeg")), # Keep after organization
|
@@ -69,14 +69,14 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
69
69
|
promoted: true,
|
70
70
|
published_at: 2.weeks.ago,
|
71
71
|
objectives: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
72
|
-
Decidim::Faker::Localized.paragraph(3)
|
72
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
73
73
|
end,
|
74
74
|
start_date: Time.current,
|
75
75
|
end_date: 2.months.from_now.at_midnight,
|
76
76
|
registrations_enabled: [true, false].sample,
|
77
77
|
available_slots: (10..50).step(10).to_a.sample,
|
78
78
|
registration_terms: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
79
|
-
Decidim::Faker::Localized.paragraph(3)
|
79
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
80
80
|
end
|
81
81
|
)
|
82
82
|
conference.add_to_index_as_search_resource
|
@@ -106,37 +106,37 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
106
106
|
|
107
107
|
attachment_collection = Decidim::AttachmentCollection.create!(
|
108
108
|
name: Decidim::Faker::Localized.word,
|
109
|
-
description: Decidim::Faker::Localized.sentence(5),
|
109
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
110
110
|
collection_for: conference
|
111
111
|
)
|
112
112
|
|
113
113
|
Decidim::Attachment.create!(
|
114
|
-
title: Decidim::Faker::Localized.sentence(2),
|
115
|
-
description: Decidim::Faker::Localized.sentence(5),
|
114
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
115
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
116
116
|
attachment_collection: attachment_collection,
|
117
117
|
attached_to: conference,
|
118
118
|
file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
|
119
119
|
)
|
120
120
|
|
121
121
|
Decidim::Attachment.create!(
|
122
|
-
title: Decidim::Faker::Localized.sentence(2),
|
123
|
-
description: Decidim::Faker::Localized.sentence(5),
|
122
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
123
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
124
124
|
attached_to: conference,
|
125
125
|
file: File.new(File.join(seeds_root, "city.jpeg")) # Keep after attached_to
|
126
126
|
)
|
127
127
|
|
128
128
|
Decidim::Attachment.create!(
|
129
|
-
title: Decidim::Faker::Localized.sentence(2),
|
130
|
-
description: Decidim::Faker::Localized.sentence(5),
|
129
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
130
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
131
131
|
attached_to: conference,
|
132
132
|
file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
|
133
133
|
)
|
134
134
|
|
135
135
|
2.times do
|
136
136
|
Decidim::Category.create!(
|
137
|
-
name: Decidim::Faker::Localized.sentence(5),
|
137
|
+
name: Decidim::Faker::Localized.sentence(word_count: 5),
|
138
138
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
139
|
-
Decidim::Faker::Localized.paragraph(3)
|
139
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
140
140
|
end,
|
141
141
|
participatory_space: conference
|
142
142
|
)
|
@@ -147,9 +147,9 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
147
147
|
user: conference.organization.users.sample,
|
148
148
|
full_name: Faker::Name.name,
|
149
149
|
position: Decidim::Faker::Localized.word,
|
150
|
-
affiliation: Decidim::Faker::Localized.paragraph(3),
|
150
|
+
affiliation: Decidim::Faker::Localized.paragraph(sentence_count: 3),
|
151
151
|
short_bio: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
152
|
-
Decidim::Faker::Localized.paragraph(3)
|
152
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
153
153
|
end,
|
154
154
|
twitter_handle: Faker::Twitter.unique.screen_name,
|
155
155
|
personal_url: Faker::Internet.url,
|
@@ -161,7 +161,7 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
161
161
|
4.times do
|
162
162
|
Decidim::Conferences::Partner.create!(
|
163
163
|
name: Faker::Name.name,
|
164
|
-
weight: Faker::Number.between(1, 10),
|
164
|
+
weight: Faker::Number.between(from: 1, to: 10),
|
165
165
|
link: Faker::Internet.url,
|
166
166
|
partner_type: type,
|
167
167
|
conference: conference,
|
@@ -172,20 +172,20 @@ Decidim.register_participatory_space(:conferences) do |participatory_space|
|
|
172
172
|
|
173
173
|
5.times do
|
174
174
|
Decidim::Conferences::MediaLink.create!(
|
175
|
-
title: Decidim::Faker::Localized.sentence(2),
|
175
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
176
176
|
link: Faker::Internet.url,
|
177
177
|
date: Date.current,
|
178
|
-
weight: Faker::Number.between(1, 10),
|
178
|
+
weight: Faker::Number.between(from: 1, to: 10),
|
179
179
|
conference: conference
|
180
180
|
)
|
181
181
|
end
|
182
182
|
|
183
183
|
5.times do
|
184
184
|
Decidim::Conferences::RegistrationType.create!(
|
185
|
-
title: Decidim::Faker::Localized.sentence(2),
|
186
|
-
description: Decidim::Faker::Localized.sentence(5),
|
187
|
-
weight: Faker::Number.between(1, 10),
|
188
|
-
price: Faker::Number.between(1, 300),
|
185
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
186
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
187
|
+
weight: Faker::Number.between(from: 1, to: 10),
|
188
|
+
price: Faker::Number.between(from: 1, to: 300),
|
189
189
|
published_at: 2.weeks.ago,
|
190
190
|
conference: conference
|
191
191
|
)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Conferences
|
5
|
+
# This module's job is to extend the API with custom fields related to
|
6
|
+
# decidim-assemblies.
|
7
|
+
module QueryExtensions
|
8
|
+
# Public: Extends a type with `decidim-assemblies`'s fields.
|
9
|
+
#
|
10
|
+
# type - A GraphQL::BaseType to extend.
|
11
|
+
#
|
12
|
+
# Returns nothing.
|
13
|
+
def self.included(type)
|
14
|
+
type.field :conferences,
|
15
|
+
[Decidim::Conferences::ConferenceType],
|
16
|
+
null: true,
|
17
|
+
description: "Lists all conferences" do
|
18
|
+
argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument lets you filter the results", required: false
|
19
|
+
argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument lets you order the results", required: false
|
20
|
+
end
|
21
|
+
|
22
|
+
type.field :conference,
|
23
|
+
Decidim::Conferences::ConferenceType,
|
24
|
+
null: true,
|
25
|
+
description: "Finds a conference" do
|
26
|
+
argument :id, GraphQL::Types::ID, "The ID of the participatory space", required: false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def conferences(filter: {}, order: {})
|
31
|
+
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :conferences }.first
|
32
|
+
|
33
|
+
Decidim::Core::ParticipatorySpaceListBase.new(manifest: manifest).call(object, { filter: filter, order: order }, context)
|
34
|
+
end
|
35
|
+
|
36
|
+
def conference(id: nil)
|
37
|
+
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :conferences }.first
|
38
|
+
|
39
|
+
Decidim::Core::ParticipatorySpaceFinderBase.new(manifest: manifest).call(object, { id: id }, context)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -5,7 +5,7 @@ require "decidim/dev"
|
|
5
5
|
|
6
6
|
FactoryBot.define do
|
7
7
|
sequence(:conference_slug) do |n|
|
8
|
-
"#{Faker::Internet.slug(nil, "-")}-#{n}"
|
8
|
+
"#{Decidim::Faker::Internet.slug(words: nil, glue: "-")}-#{n}"
|
9
9
|
end
|
10
10
|
|
11
11
|
factory :conference, class: "Decidim::Conference" do
|
@@ -19,7 +19,7 @@ FactoryBot.define do
|
|
19
19
|
hero_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") } # Keep after organization
|
20
20
|
banner_image { Decidim::Dev.test_file("city2.jpeg", "image/jpeg") } # Keep after organization
|
21
21
|
published_at { Time.current }
|
22
|
-
location { Faker::Lorem.sentence(3) }
|
22
|
+
location { Faker::Lorem.sentence(word_count: 3) }
|
23
23
|
show_statistics { true }
|
24
24
|
start_date { 1.month.ago }
|
25
25
|
end_date { 1.month.ago + 3.days }
|
@@ -133,8 +133,8 @@ FactoryBot.define do
|
|
133
133
|
title { generate_localized_title }
|
134
134
|
description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
|
135
135
|
published_at { Time.current }
|
136
|
-
price { Faker::Number.between(1, 300) }
|
137
|
-
weight { Faker::Number.between(1, 10) }
|
136
|
+
price { Faker::Number.between(from: 1, to: 300) }
|
137
|
+
weight { Faker::Number.between(from: 1, to: 10) }
|
138
138
|
|
139
139
|
trait :unpublished do
|
140
140
|
published_at { nil }
|
@@ -181,7 +181,7 @@ FactoryBot.define do
|
|
181
181
|
conference
|
182
182
|
|
183
183
|
name { Faker::Name.name }
|
184
|
-
weight { Faker::Number.between(1, 10) }
|
184
|
+
weight { Faker::Number.between(from: 1, to: 10) }
|
185
185
|
link { Faker::Internet.url }
|
186
186
|
partner_type { "main_promotor" }
|
187
187
|
logo { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
|
@@ -198,7 +198,7 @@ FactoryBot.define do
|
|
198
198
|
factory :media_link, class: "Decidim::Conferences::MediaLink" do
|
199
199
|
conference
|
200
200
|
title { generate_localized_title }
|
201
|
-
weight { Faker::Number.between(1, 10) }
|
201
|
+
weight { Faker::Number.between(from: 1, to: 10) }
|
202
202
|
link { Faker::Internet.url }
|
203
203
|
date { 1.month.ago }
|
204
204
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-conferences
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Isaac Massot Gil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-core
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.24.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.24.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decidim-meetings
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.24.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.24.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: wicked_pdf
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.24.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.24.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: decidim-dev
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.24.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.24.0
|
97
97
|
description: Conferences component for decidim.
|
98
98
|
email:
|
99
99
|
- isaac.mg@coditramuntana.com
|
@@ -186,7 +186,9 @@ files:
|
|
186
186
|
- app/controllers/decidim/conferences/admin/conferences_controller.rb
|
187
187
|
- app/controllers/decidim/conferences/admin/diplomas_controller.rb
|
188
188
|
- app/controllers/decidim/conferences/admin/exports_controller.rb
|
189
|
+
- app/controllers/decidim/conferences/admin/imports_controller.rb
|
189
190
|
- app/controllers/decidim/conferences/admin/media_links_controller.rb
|
191
|
+
- app/controllers/decidim/conferences/admin/moderations/reports_controller.rb
|
190
192
|
- app/controllers/decidim/conferences/admin/moderations_controller.rb
|
191
193
|
- app/controllers/decidim/conferences/admin/partners_controller.rb
|
192
194
|
- app/controllers/decidim/conferences/admin/registration_type_publications_controller.rb
|
@@ -268,10 +270,6 @@ files:
|
|
268
270
|
- app/serializers/decidim/conferences/conference_registration_serializer.rb
|
269
271
|
- app/serializers/decidim/conferences/data_portability_conference_invite_serializer.rb
|
270
272
|
- app/serializers/decidim/conferences/data_portability_conference_registration_serializer.rb
|
271
|
-
- app/types/decidim/conferences/conference_media_link_type.rb
|
272
|
-
- app/types/decidim/conferences/conference_partner_type.rb
|
273
|
-
- app/types/decidim/conferences/conference_speaker_type.rb
|
274
|
-
- app/types/decidim/conferences/conference_type.rb
|
275
273
|
- app/uploaders/decidim/conferences/diploma_uploader.rb
|
276
274
|
- app/uploaders/decidim/conferences/partner_logo_uploader.rb
|
277
275
|
- app/views/decidim/conference_speakers/_conference_speaker.html.erb
|
@@ -420,16 +418,23 @@ files:
|
|
420
418
|
- db/migrate/20200320105913_index_foreign_keys_in_decidim_conferences.rb
|
421
419
|
- db/migrate/20200320105914_index_foreign_keys_in_decidim_conferences_conference_invites.rb
|
422
420
|
- db/migrate/20200320105915_index_foreign_keys_in_decidim_conferences_conference_registrations.rb
|
421
|
+
- db/migrate/20210310134942_add_followable_counter_cache_to_conferences.rb
|
423
422
|
- db/seeds/Exampledocument.pdf
|
424
423
|
- db/seeds/city.jpeg
|
425
424
|
- db/seeds/city2.jpeg
|
426
425
|
- db/seeds/homepage_image.jpg
|
427
426
|
- db/seeds/logo.png
|
427
|
+
- lib/decidim/api/conference_media_link_type.rb
|
428
|
+
- lib/decidim/api/conference_partner_type.rb
|
429
|
+
- lib/decidim/api/conference_speaker_type.rb
|
430
|
+
- lib/decidim/api/conference_type.rb
|
428
431
|
- lib/decidim/conferences.rb
|
429
432
|
- lib/decidim/conferences/admin.rb
|
430
433
|
- lib/decidim/conferences/admin_engine.rb
|
434
|
+
- lib/decidim/conferences/api.rb
|
431
435
|
- lib/decidim/conferences/engine.rb
|
432
436
|
- lib/decidim/conferences/participatory_space.rb
|
437
|
+
- lib/decidim/conferences/query_extensions.rb
|
433
438
|
- lib/decidim/conferences/test/factories.rb
|
434
439
|
- lib/decidim/conferences/version.rb
|
435
440
|
homepage: https://github.com/decidim/decidim
|
@@ -444,14 +449,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
444
449
|
requirements:
|
445
450
|
- - ">="
|
446
451
|
- !ruby/object:Gem::Version
|
447
|
-
version: '2.
|
452
|
+
version: '2.7'
|
448
453
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
449
454
|
requirements:
|
450
455
|
- - ">="
|
451
456
|
- !ruby/object:Gem::Version
|
452
457
|
version: '0'
|
453
458
|
requirements: []
|
454
|
-
rubygems_version: 3.
|
459
|
+
rubygems_version: 3.1.2
|
455
460
|
signing_key:
|
456
461
|
specification_version: 4
|
457
462
|
summary: Decidim conferences module
|