diff --git a/app/models/communication/block/template/agenda.rb b/app/models/communication/block/template/agenda.rb index 72a406e43a9cf5b8396804eef99b0409e86c1194..3256da47b0393540c9efbaf46e9b93e6a5638c38 100644 --- a/app/models/communication/block/template/agenda.rb +++ b/app/models/communication/block/template/agenda.rb @@ -19,7 +19,7 @@ class Communication::Block::Template::Agenda < Communication::Block::Template::B has_component :show_status, :boolean def selected_events - @selected_events ||= events_with_time_scope + @selected_events ||= send "selected_events_#{mode}" end def category @@ -40,10 +40,25 @@ class Communication::Block::Template::Agenda < Communication::Block::Template::B protected - def events_with_time_scope + def base_events events = website.events.for_language(block.language).published events = events.send(time) if time.in? AUTHORIZED_SCOPES + end + + def selected_events_all + events = base_events.limit(quantity) + end + + def selected_events_category + events = base_events + events = events.for_category(category) if category events = events.limit(quantity) end + def selected_events_selection + elements.map { |element| + element.event + }.compact + end + end diff --git a/app/models/communication/website/agenda/event.rb b/app/models/communication/website/agenda/event.rb index d5b7b769d7c49abe73b848aa3499232013a6c7ef..ac96d5b5f97c1da00263392b9459aae26b37afc3 100644 --- a/app/models/communication/website/agenda/event.rb +++ b/app/models/communication/website/agenda/event.rb @@ -71,6 +71,8 @@ class Communication::Website::Agenda::Event < ApplicationRecord scope :recent, -> { order(:updated_at).limit(5) } scope :published, -> { where(published: true) } scope :draft, -> { where(published: false) } + + scope :for_category, -> (category_id) { joins(:categories).where(communication_website_categories: { id: category_id }).distinct } scope :future, -> { where('from_day > :today', today: Date.today).ordered_asc } scope :future_or_present, -> { where('from_day <= :today', today: Date.today).ordered_asc } diff --git a/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb b/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb index 1597d94971975d53108a8003cb6472c59234cfc4..1dbe1ecefb7bb378f8e0d924236318e6b9814fbd 100644 --- a/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb +++ b/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb @@ -23,7 +23,9 @@ </div> </div> <div class="col-xl-6 mb-5"> - <%= block_component_edit block, :time %> + <div v-if="data.mode != 'selection'"> + <%= block_component_edit block, :time %> + </div> </div> </div>