decidim-meetings 0.22.0 → 0.23.3
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/decidim_meetings_manifest.js +1 -0
- data/app/assets/javascripts/decidim/meetings/admin/meetings_form.js.es6 +3 -0
- data/app/assets/javascripts/decidim/meetings/meetings_form.js.es6 +9 -0
- data/app/cells/decidim/meetings/content_blocks/upcoming_events_cell.rb +2 -1
- data/app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb +1 -1
- data/app/cells/decidim/meetings/meeting_cell.rb +1 -1
- data/app/cells/decidim/meetings/meeting_list_item_cell.rb +2 -2
- data/app/cells/decidim/meetings/meeting_m_cell.rb +9 -1
- data/app/cells/decidim/meetings/meetings_map/show.erb +0 -2
- data/app/cells/decidim/meetings/meetings_map_cell.rb +3 -1
- data/app/commands/decidim/meetings/admin/close_meeting.rb +1 -2
- data/app/commands/decidim/meetings/admin/copy_meeting.rb +38 -28
- data/app/commands/decidim/meetings/admin/create_meeting.rb +36 -24
- data/app/commands/decidim/meetings/admin/invite_user_to_join_meeting.rb +2 -1
- data/app/commands/decidim/meetings/admin/update_meeting.rb +9 -3
- data/app/commands/decidim/meetings/create_meeting.rb +78 -0
- data/app/commands/decidim/meetings/update_meeting.rb +94 -0
- data/app/controllers/decidim/meetings/admin/application_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +11 -7
- data/app/controllers/decidim/meetings/admin/registration_form_controller.rb +4 -0
- data/app/controllers/decidim/meetings/meetings_controller.rb +76 -13
- data/app/controllers/decidim/meetings/registrations_controller.rb +1 -1
- data/app/controllers/decidim/meetings/versions_controller.rb +14 -0
- data/app/controllers/decidim/meetings/{meeting_widgets_controller.rb → widgets_controller.rb} +2 -2
- data/app/forms/decidim/meetings/admin/meeting_copy_form.rb +2 -8
- data/app/forms/decidim/meetings/admin/meeting_form.rb +24 -23
- data/app/forms/decidim/meetings/meeting_form.rb +78 -0
- data/app/helpers/decidim/meetings/admin/application_helper.rb +1 -6
- data/app/helpers/decidim/meetings/application_helper.rb +25 -0
- data/app/helpers/decidim/meetings/meetings_helper.rb +12 -0
- data/app/models/decidim/meetings/agenda.rb +3 -0
- data/app/models/decidim/meetings/agenda_item.rb +3 -0
- data/app/models/decidim/meetings/meeting.rb +69 -23
- data/app/models/decidim/meetings/minutes.rb +3 -0
- data/app/models/decidim/meetings/service.rb +13 -0
- data/app/permissions/decidim/meetings/admin/permissions.rb +2 -0
- data/app/permissions/decidim/meetings/permissions.rb +20 -0
- data/app/presenters/decidim/meetings/admin_log/invite_presenter.rb +5 -1
- data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +3 -4
- data/app/presenters/decidim/meetings/meeting_presenter.rb +7 -3
- data/app/presenters/decidim/meetings/official_author_presenter.rb +14 -0
- data/app/queries/decidim/meetings/filtered_meetings.rb +1 -1
- data/app/services/decidim/meetings/diff_renderer.rb +21 -0
- data/app/services/decidim/meetings/meeting_search.rb +3 -25
- data/app/types/decidim/meetings/meeting_type.rb +1 -1
- data/app/views/decidim/meetings/admin/meeting_copies/_form.html.erb +2 -9
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +4 -11
- data/app/views/decidim/meetings/admin/meetings/edit.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +4 -2
- data/app/views/decidim/meetings/directory/meetings/index.js.erb +11 -4
- data/app/views/decidim/meetings/meetings/_count.html.erb +1 -0
- data/app/views/decidim/meetings/meetings/_filters.html.erb +8 -10
- data/app/views/decidim/meetings/meetings/_form.html.erb +51 -0
- data/app/views/decidim/meetings/meetings/edit.html.erb +25 -0
- data/app/views/decidim/meetings/meetings/index.html.erb +15 -0
- data/app/views/decidim/meetings/meetings/index.js.erb +13 -4
- data/app/views/decidim/meetings/meetings/new.html.erb +25 -0
- data/app/views/decidim/meetings/meetings/show.html.erb +24 -9
- data/app/views/decidim/meetings/versions/index.html.erb +8 -0
- data/app/views/decidim/meetings/versions/show.html.erb +10 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +0 -8
- data/config/locales/bg-BG.yml +0 -8
- data/config/locales/bg.yml +21 -0
- data/config/locales/ca.yml +49 -7
- data/config/locales/cs.yml +57 -13
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +113 -71
- data/config/locales/el.yml +2 -7
- data/config/locales/en.yml +49 -7
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +49 -7
- data/config/locales/es-PY.yml +50 -8
- data/config/locales/es.yml +50 -8
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +0 -8
- data/config/locales/fi-plain.yml +49 -7
- data/config/locales/fi.yml +168 -126
- data/config/locales/fr-CA.yml +57 -7
- data/config/locales/fr.yml +57 -7
- data/config/locales/gl.yml +3 -7
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +2 -7
- data/config/locales/id-ID.yml +0 -8
- data/config/locales/is-IS.yml +0 -7
- data/config/locales/is.yml +228 -0
- data/config/locales/it.yml +47 -7
- data/config/locales/ja-JP.yml +48 -9
- data/config/locales/ja.yml +496 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/{lv-LV.yml → lv.yml} +2 -2
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +49 -7
- data/config/locales/no.yml +34 -8
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +193 -149
- data/config/locales/pt-BR.yml +1 -9
- data/config/locales/pt.yml +47 -7
- data/config/locales/ro-RO.yml +48 -7
- data/config/locales/ru.yml +0 -8
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sk.yml +2 -7
- data/config/locales/sl.yml +25 -2
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sv.yml +56 -8
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +154 -98
- data/config/locales/uk.yml +0 -7
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +496 -0
- data/config/locales/zh-TW.yml +1 -0
- data/db/migrate/20200526110940_add_author_to_meetings.rb +30 -0
- data/db/migrate/20200702123209_create_meeting_services_table.rb +13 -0
- data/db/migrate/20200702123210_move_meeting_services_to_own_model.rb +31 -0
- data/db/migrate/20200827153856_add_commentable_counter_cache_to_meetings.rb +9 -0
- data/db/migrate/20201016065302_fix_meetings_registration_terms.rb +29 -0
- data/db/migrate/20201111133246_add_salt_to_decidim_meetings.rb +8 -0
- data/lib/decidim/api/services_interface.rb +1 -7
- data/lib/decidim/meetings/admin_engine.rb +2 -0
- data/lib/decidim/meetings/component.rb +63 -11
- data/lib/decidim/meetings/engine.rb +3 -2
- data/lib/decidim/meetings/meeting_serializer.rb +1 -1
- data/lib/decidim/meetings/test/factories.rb +45 -8
- data/lib/decidim/meetings/version.rb +1 -1
- metadata +62 -22
- data/app/presenters/decidim/meetings/admin_log/value_types/organizer_presenter.rb +0 -70
@@ -0,0 +1 @@
|
|
1
|
+
zh-TW:
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddAuthorToMeetings < ActiveRecord::Migration[5.2]
|
4
|
+
class Meeting < ApplicationRecord
|
5
|
+
self.table_name = :decidim_meetings_meetings
|
6
|
+
include Decidim::HasComponent
|
7
|
+
end
|
8
|
+
|
9
|
+
def change
|
10
|
+
add_column :decidim_meetings_meetings, :decidim_author_type, :string
|
11
|
+
add_column :decidim_meetings_meetings, :decidim_user_group_id, :integer
|
12
|
+
|
13
|
+
Meeting.reset_column_information
|
14
|
+
Meeting.find_each do |meeting|
|
15
|
+
if meeting.organizer_id.present?
|
16
|
+
meeting.decidim_author_id = meeting.organizer_id
|
17
|
+
meeting.decidim_author_type = "Decidim::UserBaseEntity"
|
18
|
+
else
|
19
|
+
meeting.decidim_author_id = meeting.organization.id
|
20
|
+
meeting.decidim_author_type = "Decidim::Organization"
|
21
|
+
end
|
22
|
+
meeting.save!
|
23
|
+
end
|
24
|
+
|
25
|
+
remove_column :decidim_meetings_meetings, :organizer_id
|
26
|
+
add_index :decidim_meetings_meetings,
|
27
|
+
[:decidim_author_id, :decidim_author_type],
|
28
|
+
name: "index_decidim_meetings_meetings_on_author"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateMeetingServicesTable < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_meetings_services do |t|
|
6
|
+
t.jsonb :title
|
7
|
+
t.jsonb :description
|
8
|
+
t.bigint :decidim_meeting_id, null: false, index: true
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class MoveMeetingServicesToOwnModel < ActiveRecord::Migration[5.2]
|
4
|
+
class Meeting < ApplicationRecord
|
5
|
+
self.table_name = :decidim_meetings_meetings
|
6
|
+
end
|
7
|
+
|
8
|
+
class Service < ApplicationRecord
|
9
|
+
self.table_name = :decidim_meetings_services
|
10
|
+
end
|
11
|
+
|
12
|
+
def change
|
13
|
+
Meeting.reset_column_information
|
14
|
+
Service.reset_column_information
|
15
|
+
|
16
|
+
Meeting.find_each do |meeting|
|
17
|
+
meeting["services"].each do |service|
|
18
|
+
Service.create!(
|
19
|
+
decidim_meeting_id: meeting.id,
|
20
|
+
title: service["title"],
|
21
|
+
description: service["description"]
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
remove_column :decidim_meetings_meetings, :services
|
27
|
+
|
28
|
+
Meeting.reset_column_information
|
29
|
+
Service.reset_column_information
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddCommentableCounterCacheToMeetings < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_column :decidim_meetings_meetings, :comments_count, :integer, null: false, default: 0
|
6
|
+
Decidim::Meetings::Meeting.reset_column_information
|
7
|
+
Decidim::Meetings::Meeting.find_each(&:update_comments_count)
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class FixMeetingsRegistrationTerms < ActiveRecord::Migration[5.2]
|
4
|
+
def up
|
5
|
+
reset_column_information
|
6
|
+
|
7
|
+
PaperTrail.request(enabled: false) do
|
8
|
+
Decidim::Meetings::Meeting.find_each do |meeting|
|
9
|
+
next if meeting.component.nil?
|
10
|
+
# Only user-created meetings have this problem
|
11
|
+
next if meeting.official?
|
12
|
+
|
13
|
+
# Since user-created meetings have no way to override the `registration_terms` field
|
14
|
+
# and it's supposed to use the component defaults,
|
15
|
+
# we can safely override this.
|
16
|
+
meeting.registration_terms = meeting.component.settings.default_registration_terms
|
17
|
+
meeting.save!
|
18
|
+
end
|
19
|
+
end
|
20
|
+
reset_column_information
|
21
|
+
end
|
22
|
+
|
23
|
+
def down; end
|
24
|
+
|
25
|
+
def reset_column_information
|
26
|
+
Decidim::Meetings::Meeting.reset_column_information
|
27
|
+
Decidim::Component.reset_column_information
|
28
|
+
end
|
29
|
+
end
|
@@ -7,13 +7,7 @@ module Decidim
|
|
7
7
|
name "ServicesInterface"
|
8
8
|
description "An interface that can be used with services."
|
9
9
|
|
10
|
-
field :services, !types[ServiceType], "The object's services"
|
11
|
-
resolve ->(meeting, _args, _ctx) {
|
12
|
-
return [] unless meeting.services.respond_to? :map
|
13
|
-
|
14
|
-
meeting.services.map { |service| OpenStruct.new(service) }
|
15
|
-
}
|
16
|
-
end
|
10
|
+
field :services, !types[ServiceType], "The object's services"
|
17
11
|
end
|
18
12
|
end
|
19
13
|
end
|
@@ -12,6 +12,8 @@ module Decidim
|
|
12
12
|
paths["lib/tasks"] = nil
|
13
13
|
|
14
14
|
routes do
|
15
|
+
get "/answer_options", to: "registration_form#answer_options", as: :answer_options_meeting
|
16
|
+
|
15
17
|
resources :meetings do
|
16
18
|
resources :meeting_closes, only: [:edit, :update] do
|
17
19
|
get :proposals_picker, on: :collection
|
@@ -36,6 +36,7 @@ Decidim.register_component(:meetings) do |component|
|
|
36
36
|
component.exports :meetings do |exports|
|
37
37
|
exports.collection do |component_instance|
|
38
38
|
Decidim::Meetings::Meeting
|
39
|
+
.not_hidden
|
39
40
|
.visible
|
40
41
|
.where(component: component_instance)
|
41
42
|
.includes(component: { participatory_space: :organization })
|
@@ -49,11 +50,15 @@ Decidim.register_component(:meetings) do |component|
|
|
49
50
|
component.actions = %w(join)
|
50
51
|
|
51
52
|
component.settings(:global) do |settings|
|
53
|
+
settings.attribute :scopes_enabled, type: :boolean, default: false
|
54
|
+
settings.attribute :scope_id, type: :scope
|
52
55
|
settings.attribute :announcement, type: :text, translated: true, editor: true
|
53
56
|
settings.attribute :default_registration_terms, type: :text, translated: true, editor: true
|
54
57
|
settings.attribute :comments_enabled, type: :boolean, default: true
|
58
|
+
settings.attribute :comments_max_length, type: :integer, required: false
|
55
59
|
settings.attribute :resources_permissions_enabled, type: :boolean, default: true
|
56
60
|
settings.attribute :enable_pads_creation, type: :boolean, default: false
|
61
|
+
settings.attribute :creation_enabled_for_participants, type: :boolean, default: false
|
57
62
|
end
|
58
63
|
|
59
64
|
component.settings(:step) do |settings|
|
@@ -109,13 +114,10 @@ Decidim.register_component(:meetings) do |component|
|
|
109
114
|
longitude: Faker::Address.longitude,
|
110
115
|
registrations_enabled: [true, false].sample,
|
111
116
|
available_slots: (10..50).step(10).to_a.sample,
|
117
|
+
author: participatory_space.organization,
|
112
118
|
registration_terms: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
113
119
|
Decidim::Faker::Localized.paragraph(3)
|
114
|
-
end
|
115
|
-
services: [
|
116
|
-
{ title: Decidim::Faker::Localized.sentence(2), description: Decidim::Faker::Localized.sentence(5) },
|
117
|
-
{ title: Decidim::Faker::Localized.sentence(2), description: Decidim::Faker::Localized.sentence(5) }
|
118
|
-
]
|
120
|
+
end
|
119
121
|
}
|
120
122
|
|
121
123
|
meeting = Decidim.traceability.create!(
|
@@ -125,6 +127,14 @@ Decidim.register_component(:meetings) do |component|
|
|
125
127
|
visibility: "all"
|
126
128
|
)
|
127
129
|
|
130
|
+
2.times do
|
131
|
+
Decidim::Meetings::Service.create!(
|
132
|
+
meeting: meeting,
|
133
|
+
title: Decidim::Faker::Localized.sentence(2),
|
134
|
+
description: Decidim::Faker::Localized.sentence(5)
|
135
|
+
)
|
136
|
+
end
|
137
|
+
|
128
138
|
Decidim::Forms::Questionnaire.create!(
|
129
139
|
title: Decidim::Faker::Localized.paragraph,
|
130
140
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
@@ -168,21 +178,63 @@ Decidim.register_component(:meetings) do |component|
|
|
168
178
|
Decidim::Attachment.create!(
|
169
179
|
title: Decidim::Faker::Localized.sentence(2),
|
170
180
|
description: Decidim::Faker::Localized.sentence(5),
|
171
|
-
file: File.new(File.join(__dir__, "seeds", "Exampledocument.pdf")),
|
172
181
|
attachment_collection: attachment_collection,
|
173
|
-
attached_to: meeting
|
182
|
+
attached_to: meeting,
|
183
|
+
file: File.new(File.join(__dir__, "seeds", "Exampledocument.pdf")) # Keep after attached_to
|
174
184
|
)
|
175
185
|
Decidim::Attachment.create!(
|
176
186
|
title: Decidim::Faker::Localized.sentence(2),
|
177
187
|
description: Decidim::Faker::Localized.sentence(5),
|
178
|
-
|
179
|
-
|
188
|
+
attached_to: meeting,
|
189
|
+
file: File.new(File.join(__dir__, "seeds", "city.jpeg")) # Keep after attached_to
|
180
190
|
)
|
181
191
|
Decidim::Attachment.create!(
|
182
192
|
title: Decidim::Faker::Localized.sentence(2),
|
183
193
|
description: Decidim::Faker::Localized.sentence(5),
|
184
|
-
|
185
|
-
|
194
|
+
attached_to: meeting,
|
195
|
+
file: File.new(File.join(__dir__, "seeds", "Exampledocument.pdf")) # Keep after attached_to
|
196
|
+
)
|
197
|
+
end
|
198
|
+
|
199
|
+
authors = [
|
200
|
+
Decidim::UserGroup.where(decidim_organization_id: participatory_space.decidim_organization_id).verified.sample,
|
201
|
+
Decidim::User.where(decidim_organization_id: participatory_space.decidim_organization_id).all.sample
|
202
|
+
]
|
203
|
+
|
204
|
+
authors.each do |author|
|
205
|
+
user_group = nil
|
206
|
+
|
207
|
+
if author.is_a?(Decidim::UserGroup)
|
208
|
+
user_group = author
|
209
|
+
author = user_group.users.sample
|
210
|
+
end
|
211
|
+
|
212
|
+
params = {
|
213
|
+
component: component,
|
214
|
+
scope: Faker::Boolean.boolean(0.5) ? global : scopes.sample,
|
215
|
+
category: participatory_space.categories.sample,
|
216
|
+
title: Decidim::Faker::Localized.sentence(2),
|
217
|
+
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
218
|
+
Decidim::Faker::Localized.paragraph(3)
|
219
|
+
end,
|
220
|
+
location: Decidim::Faker::Localized.sentence,
|
221
|
+
location_hints: Decidim::Faker::Localized.sentence,
|
222
|
+
start_time: 3.weeks.from_now,
|
223
|
+
end_time: 3.weeks.from_now + 4.hours,
|
224
|
+
address: "#{Faker::Address.street_address} #{Faker::Address.zip} #{Faker::Address.city}",
|
225
|
+
latitude: Faker::Address.latitude,
|
226
|
+
longitude: Faker::Address.longitude,
|
227
|
+
registrations_enabled: [true, false].sample,
|
228
|
+
available_slots: (10..50).step(10).to_a.sample,
|
229
|
+
author: author,
|
230
|
+
user_group: user_group
|
231
|
+
}
|
232
|
+
|
233
|
+
Decidim.traceability.create!(
|
234
|
+
Decidim::Meetings::Meeting,
|
235
|
+
authors[0],
|
236
|
+
params,
|
237
|
+
visibility: "all"
|
186
238
|
)
|
187
239
|
end
|
188
240
|
end
|
@@ -17,7 +17,7 @@ module Decidim
|
|
17
17
|
isolate_namespace Decidim::Meetings
|
18
18
|
|
19
19
|
routes do
|
20
|
-
resources :meetings, only: [:index, :show] do
|
20
|
+
resources :meetings, only: [:index, :show, :new, :create, :edit, :update] do
|
21
21
|
resource :registration, only: [:create, :destroy] do
|
22
22
|
collection do
|
23
23
|
get :create
|
@@ -26,7 +26,8 @@ module Decidim
|
|
26
26
|
post :answer
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
resources :versions, only: [:show, :index]
|
30
|
+
resource :widget, only: :show, path: "embed"
|
30
31
|
end
|
31
32
|
root to: "meetings#index"
|
32
33
|
resource :calendar, only: [:show], format: :text
|
@@ -40,7 +40,7 @@ module Decidim
|
|
40
40
|
address: meeting.address,
|
41
41
|
location: meeting.location,
|
42
42
|
reference: meeting.reference,
|
43
|
-
comments: meeting.
|
43
|
+
comments: meeting.comments_count,
|
44
44
|
attachments: meeting.attachments.count,
|
45
45
|
followers: meeting.followers.count,
|
46
46
|
url: url,
|
@@ -10,6 +10,14 @@ FactoryBot.define do
|
|
10
10
|
name { Decidim::Components::Namer.new(participatory_space.organization.available_locales, :meetings).i18n_name }
|
11
11
|
manifest_name { :meetings }
|
12
12
|
participatory_space { create(:participatory_process, :with_steps, organization: organization) }
|
13
|
+
|
14
|
+
trait :with_creation_enabled do
|
15
|
+
settings do
|
16
|
+
{
|
17
|
+
creation_enabled_for_participants: true
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
factory :meeting, class: "Decidim::Meetings::Meeting" do
|
@@ -24,18 +32,41 @@ FactoryBot.define do
|
|
24
32
|
end_time { start_time.advance(hours: 2) }
|
25
33
|
private_meeting { false }
|
26
34
|
transparent { true }
|
27
|
-
services do
|
28
|
-
[
|
29
|
-
{ title: generate_localized_title, description: generate_localized_title },
|
30
|
-
{ title: generate_localized_title, description: generate_localized_title }
|
31
|
-
]
|
32
|
-
end
|
33
35
|
questionnaire { build(:questionnaire) }
|
34
36
|
registration_form_enabled { true }
|
35
37
|
component { build(:component, manifest_name: "meetings") }
|
36
38
|
|
37
|
-
|
38
|
-
|
39
|
+
author do
|
40
|
+
component.try(:organization)
|
41
|
+
end
|
42
|
+
|
43
|
+
trait :official do
|
44
|
+
author { component.organization if component }
|
45
|
+
end
|
46
|
+
|
47
|
+
trait :not_official do
|
48
|
+
author { create(:user, organization: component.organization) if component }
|
49
|
+
end
|
50
|
+
|
51
|
+
trait :with_services do
|
52
|
+
transient do
|
53
|
+
services do
|
54
|
+
nil
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
after(:build) do |meeting, evaluator|
|
59
|
+
meeting.services = evaluator.services || build_list(:service, 2, meeting: meeting)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
trait :user_group_author do
|
64
|
+
author do
|
65
|
+
create(:user, organization: component.organization) if component
|
66
|
+
end
|
67
|
+
user_group do
|
68
|
+
create(:user_group, :verified, organization: component.organization, users: [author]) if component
|
69
|
+
end
|
39
70
|
end
|
40
71
|
|
41
72
|
trait :closed do
|
@@ -121,4 +152,10 @@ FactoryBot.define do
|
|
121
152
|
rejected_at { Time.current }
|
122
153
|
end
|
123
154
|
end
|
155
|
+
|
156
|
+
factory :service, class: "Decidim::Meetings::Service" do
|
157
|
+
meeting
|
158
|
+
title { generate_localized_title }
|
159
|
+
description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
|
160
|
+
end
|
124
161
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-meetings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
8
8
|
- Marc Riera Casals
|
9
9
|
- Oriol Gual Oliva
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cells-erb
|
@@ -46,28 +46,28 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
49
|
+
version: 0.23.3
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.23.3
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: decidim-forms
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.23.3
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.23.3
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: httparty
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,56 +150,56 @@ dependencies:
|
|
150
150
|
requirements:
|
151
151
|
- - '='
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0.
|
153
|
+
version: 0.23.3
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
156
|
version_requirements: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - '='
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.
|
160
|
+
version: 0.23.3
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: decidim-assemblies
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - '='
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.
|
167
|
+
version: 0.23.3
|
168
168
|
type: :development
|
169
169
|
prerelease: false
|
170
170
|
version_requirements: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - '='
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version: 0.
|
174
|
+
version: 0.23.3
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
176
|
name: decidim-dev
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
179
|
- - '='
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version: 0.
|
181
|
+
version: 0.23.3
|
182
182
|
type: :development
|
183
183
|
prerelease: false
|
184
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
186
|
- - '='
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
-
version: 0.
|
188
|
+
version: 0.23.3
|
189
189
|
- !ruby/object:Gem::Dependency
|
190
190
|
name: decidim-participatory_processes
|
191
191
|
requirement: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
193
|
- - '='
|
194
194
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0.
|
195
|
+
version: 0.23.3
|
196
196
|
type: :development
|
197
197
|
prerelease: false
|
198
198
|
version_requirements: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
200
|
- - '='
|
201
201
|
- !ruby/object:Gem::Version
|
202
|
-
version: 0.
|
202
|
+
version: 0.23.3
|
203
203
|
description: A meetings component for decidim's participatory spaces.
|
204
204
|
email:
|
205
205
|
- josepjaume@gmail.com
|
@@ -219,6 +219,7 @@ files:
|
|
219
219
|
- app/assets/javascripts/decidim/meetings/admin/meetings_form.js.es6
|
220
220
|
- app/assets/javascripts/decidim/meetings/admin/registrations_form.js.es6
|
221
221
|
- app/assets/javascripts/decidim/meetings/admin/registrations_invite_form.es6
|
222
|
+
- app/assets/javascripts/decidim/meetings/meetings_form.js.es6
|
222
223
|
- app/cells/decidim/meetings/content_blocks/upcoming_events/show.erb
|
223
224
|
- app/cells/decidim/meetings/content_blocks/upcoming_events_cell.rb
|
224
225
|
- app/cells/decidim/meetings/highlighted_meetings/show.erb
|
@@ -257,9 +258,11 @@ files:
|
|
257
258
|
- app/commands/decidim/meetings/admin/update_minutes.rb
|
258
259
|
- app/commands/decidim/meetings/admin/update_registrations.rb
|
259
260
|
- app/commands/decidim/meetings/admin/validate_registration_code.rb
|
261
|
+
- app/commands/decidim/meetings/create_meeting.rb
|
260
262
|
- app/commands/decidim/meetings/decline_invitation.rb
|
261
263
|
- app/commands/decidim/meetings/join_meeting.rb
|
262
264
|
- app/commands/decidim/meetings/leave_meeting.rb
|
265
|
+
- app/commands/decidim/meetings/update_meeting.rb
|
263
266
|
- app/controllers/decidim/meetings/admin/agenda_controller.rb
|
264
267
|
- app/controllers/decidim/meetings/admin/application_controller.rb
|
265
268
|
- app/controllers/decidim/meetings/admin/attachment_collections_controller.rb
|
@@ -274,9 +277,10 @@ files:
|
|
274
277
|
- app/controllers/decidim/meetings/application_controller.rb
|
275
278
|
- app/controllers/decidim/meetings/calendars_controller.rb
|
276
279
|
- app/controllers/decidim/meetings/directory/meetings_controller.rb
|
277
|
-
- app/controllers/decidim/meetings/meeting_widgets_controller.rb
|
278
280
|
- app/controllers/decidim/meetings/meetings_controller.rb
|
279
281
|
- app/controllers/decidim/meetings/registrations_controller.rb
|
282
|
+
- app/controllers/decidim/meetings/versions_controller.rb
|
283
|
+
- app/controllers/decidim/meetings/widgets_controller.rb
|
280
284
|
- app/events/decidim/meetings/close_meeting_event.rb
|
281
285
|
- app/events/decidim/meetings/create_meeting_event.rb
|
282
286
|
- app/events/decidim/meetings/meeting_registration_notification_event.rb
|
@@ -296,6 +300,7 @@ files:
|
|
296
300
|
- app/forms/decidim/meetings/admin/minutes_form.rb
|
297
301
|
- app/forms/decidim/meetings/admin/validate_registration_code_form.rb
|
298
302
|
- app/forms/decidim/meetings/join_meeting_form.rb
|
303
|
+
- app/forms/decidim/meetings/meeting_form.rb
|
299
304
|
- app/helpers/decidim/meetings/admin/application_helper.rb
|
300
305
|
- app/helpers/decidim/meetings/application_helper.rb
|
301
306
|
- app/helpers/decidim/meetings/map_helper.rb
|
@@ -311,16 +316,17 @@ files:
|
|
311
316
|
- app/models/decidim/meetings/meeting.rb
|
312
317
|
- app/models/decidim/meetings/minutes.rb
|
313
318
|
- app/models/decidim/meetings/registration.rb
|
319
|
+
- app/models/decidim/meetings/service.rb
|
314
320
|
- app/permissions/decidim/meetings/admin/permissions.rb
|
315
321
|
- app/permissions/decidim/meetings/permissions.rb
|
316
322
|
- app/presenters/decidim/meetings/admin_log/invite_presenter.rb
|
317
323
|
- app/presenters/decidim/meetings/admin_log/meeting_presenter.rb
|
318
324
|
- app/presenters/decidim/meetings/admin_log/minutes_presenter.rb
|
319
325
|
- app/presenters/decidim/meetings/admin_log/value_types/meeting_title_description_presenter.rb
|
320
|
-
- app/presenters/decidim/meetings/admin_log/value_types/organizer_presenter.rb
|
321
326
|
- app/presenters/decidim/meetings/invite_presenter.rb
|
322
327
|
- app/presenters/decidim/meetings/log/resource_presenter.rb
|
323
328
|
- app/presenters/decidim/meetings/meeting_presenter.rb
|
329
|
+
- app/presenters/decidim/meetings/official_author_presenter.rb
|
324
330
|
- app/queries/decidim/meetings/admin/invites.rb
|
325
331
|
- app/queries/decidim/meetings/filtered_meetings.rb
|
326
332
|
- app/queries/decidim/meetings/metrics/meeting_followers_metric_measure.rb
|
@@ -333,6 +339,7 @@ files:
|
|
333
339
|
- app/services/decidim/meetings/calendar/meeting_to_event.rb
|
334
340
|
- app/services/decidim/meetings/calendar/organization_calendar.rb
|
335
341
|
- app/services/decidim/meetings/calendar_renderer.rb
|
342
|
+
- app/services/decidim/meetings/diff_renderer.rb
|
336
343
|
- app/services/decidim/meetings/meeting_search.rb
|
337
344
|
- app/types/decidim/meetings/agenda_item_type.rb
|
338
345
|
- app/types/decidim/meetings/agenda_type.rb
|
@@ -371,39 +378,50 @@ files:
|
|
371
378
|
- app/views/decidim/meetings/directory/meetings/_meetings.html.erb
|
372
379
|
- app/views/decidim/meetings/directory/meetings/index.html.erb
|
373
380
|
- app/views/decidim/meetings/directory/meetings/index.js.erb
|
381
|
+
- app/views/decidim/meetings/meetings/_count.html.erb
|
374
382
|
- app/views/decidim/meetings/meetings/_datetime.html.erb
|
375
383
|
- app/views/decidim/meetings/meetings/_filters.html.erb
|
376
384
|
- app/views/decidim/meetings/meetings/_filters_small_view.html.erb
|
385
|
+
- app/views/decidim/meetings/meetings/_form.html.erb
|
377
386
|
- app/views/decidim/meetings/meetings/_linked_meetings.html.erb
|
378
387
|
- app/views/decidim/meetings/meetings/_meeting_agenda.html.erb
|
379
388
|
- app/views/decidim/meetings/meetings/_meeting_minutes.html.erb
|
380
389
|
- app/views/decidim/meetings/meetings/_meetings.html.erb
|
390
|
+
- app/views/decidim/meetings/meetings/edit.html.erb
|
381
391
|
- app/views/decidim/meetings/meetings/index.html.erb
|
382
392
|
- app/views/decidim/meetings/meetings/index.js.erb
|
393
|
+
- app/views/decidim/meetings/meetings/new.html.erb
|
383
394
|
- app/views/decidim/meetings/meetings/show.html.erb
|
384
395
|
- app/views/decidim/meetings/registration_mailer/confirmation.html.erb
|
396
|
+
- app/views/decidim/meetings/versions/index.html.erb
|
397
|
+
- app/views/decidim/meetings/versions/show.html.erb
|
385
398
|
- app/views/decidim/participatory_processes/participatory_process_groups/_highlighted_meetings.html.erb
|
386
399
|
- app/views/decidim/participatory_processes/participatory_process_groups/_meeting.html.erb
|
387
400
|
- app/views/decidim/participatory_spaces/_conference_venues.html.erb
|
388
401
|
- app/views/decidim/participatory_spaces/_upcoming_meeting_for_card.html.erb
|
389
402
|
- app/views/devise/mailer/join_meeting.html.erb
|
390
403
|
- app/views/devise/mailer/join_meeting.text.erb
|
404
|
+
- config/locales/am-ET.yml
|
391
405
|
- config/locales/ar-SA.yml
|
392
406
|
- config/locales/ar.yml
|
393
407
|
- config/locales/bg-BG.yml
|
408
|
+
- config/locales/bg.yml
|
394
409
|
- config/locales/ca.yml
|
395
410
|
- config/locales/cs-CZ.yml
|
396
411
|
- config/locales/cs.yml
|
397
412
|
- config/locales/da-DK.yml
|
413
|
+
- config/locales/da.yml
|
398
414
|
- config/locales/de.yml
|
399
415
|
- config/locales/el-GR.yml
|
400
416
|
- config/locales/el.yml
|
401
417
|
- config/locales/en.yml
|
402
418
|
- config/locales/eo-UY.yml
|
419
|
+
- config/locales/eo.yml
|
403
420
|
- config/locales/es-MX.yml
|
404
421
|
- config/locales/es-PY.yml
|
405
422
|
- config/locales/es.yml
|
406
423
|
- config/locales/et-EE.yml
|
424
|
+
- config/locales/et.yml
|
407
425
|
- config/locales/eu.yml
|
408
426
|
- config/locales/fi-pl.yml
|
409
427
|
- config/locales/fi-plain.yml
|
@@ -413,28 +431,44 @@ files:
|
|
413
431
|
- config/locales/ga-IE.yml
|
414
432
|
- config/locales/gl.yml
|
415
433
|
- config/locales/hr-HR.yml
|
434
|
+
- config/locales/hr.yml
|
416
435
|
- config/locales/hu.yml
|
417
436
|
- config/locales/id-ID.yml
|
418
437
|
- config/locales/is-IS.yml
|
438
|
+
- config/locales/is.yml
|
419
439
|
- config/locales/it.yml
|
420
440
|
- config/locales/ja-JP.yml
|
441
|
+
- config/locales/ja.yml
|
442
|
+
- config/locales/ko-KR.yml
|
443
|
+
- config/locales/ko.yml
|
421
444
|
- config/locales/lt-LT.yml
|
422
|
-
- config/locales/
|
445
|
+
- config/locales/lt.yml
|
446
|
+
- config/locales/lv.yml
|
423
447
|
- config/locales/mt-MT.yml
|
448
|
+
- config/locales/mt.yml
|
424
449
|
- config/locales/nl.yml
|
425
450
|
- config/locales/no.yml
|
451
|
+
- config/locales/om-ET.yml
|
426
452
|
- config/locales/pl.yml
|
427
453
|
- config/locales/pt-BR.yml
|
428
454
|
- config/locales/pt.yml
|
429
455
|
- config/locales/ro-RO.yml
|
430
456
|
- config/locales/ru.yml
|
457
|
+
- config/locales/si-LK.yml
|
431
458
|
- config/locales/sk-SK.yml
|
432
459
|
- config/locales/sk.yml
|
433
460
|
- config/locales/sl.yml
|
461
|
+
- config/locales/so-SO.yml
|
434
462
|
- config/locales/sr-CS.yml
|
435
463
|
- config/locales/sv.yml
|
464
|
+
- config/locales/sw-KE.yml
|
465
|
+
- config/locales/ti-ER.yml
|
436
466
|
- config/locales/tr-TR.yml
|
437
467
|
- config/locales/uk.yml
|
468
|
+
- config/locales/vi-VN.yml
|
469
|
+
- config/locales/vi.yml
|
470
|
+
- config/locales/zh-CN.yml
|
471
|
+
- config/locales/zh-TW.yml
|
438
472
|
- db/migrate/20161130121354_create_meetings.rb
|
439
473
|
- db/migrate/20170110142105_close_a_meeting.rb
|
440
474
|
- db/migrate/20170123151650_add_latitude_and_longitude_to_meetings.rb
|
@@ -460,6 +494,12 @@ files:
|
|
460
494
|
- db/migrate/20181107175558_add_questionnaire_to_existing_meetings.rb
|
461
495
|
- db/migrate/20190404132923_add_user_group_to_meetings_registrations.rb
|
462
496
|
- db/migrate/20200320105922_index_foreign_keys_in_decidim_meetings_registrations.rb
|
497
|
+
- db/migrate/20200526110940_add_author_to_meetings.rb
|
498
|
+
- db/migrate/20200702123209_create_meeting_services_table.rb
|
499
|
+
- db/migrate/20200702123210_move_meeting_services_to_own_model.rb
|
500
|
+
- db/migrate/20200827153856_add_commentable_counter_cache_to_meetings.rb
|
501
|
+
- db/migrate/20201016065302_fix_meetings_registration_terms.rb
|
502
|
+
- db/migrate/20201111133246_add_salt_to_decidim_meetings.rb
|
463
503
|
- lib/decidim/api/linked_resources_interface.rb
|
464
504
|
- lib/decidim/api/services_interface.rb
|
465
505
|
- lib/decidim/meetings.rb
|
@@ -482,7 +522,7 @@ homepage: https://github.com/decidim/decidim
|
|
482
522
|
licenses:
|
483
523
|
- AGPL-3.0
|
484
524
|
metadata: {}
|
485
|
-
post_install_message:
|
525
|
+
post_install_message:
|
486
526
|
rdoc_options: []
|
487
527
|
require_paths:
|
488
528
|
- lib
|
@@ -490,15 +530,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
490
530
|
requirements:
|
491
531
|
- - ">="
|
492
532
|
- !ruby/object:Gem::Version
|
493
|
-
version: '2.
|
533
|
+
version: '2.6'
|
494
534
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
495
535
|
requirements:
|
496
536
|
- - ">="
|
497
537
|
- !ruby/object:Gem::Version
|
498
538
|
version: '0'
|
499
539
|
requirements: []
|
500
|
-
rubygems_version: 3.
|
501
|
-
signing_key:
|
540
|
+
rubygems_version: 3.0.3
|
541
|
+
signing_key:
|
502
542
|
specification_version: 4
|
503
543
|
summary: Decidim meetings module
|
504
544
|
test_files: []
|