From 398dcb710563b6abd1abcce1b9ddbd8f5311b084 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Mon, 13 Nov 2023 18:10:30 +0100 Subject: [PATCH] clean --- .../communication/block/template/agenda.rb | 19 +++++++++++++++++-- .../communication/website/agenda/event.rb | 2 ++ .../blocks/templates/agenda/_edit.html.erb | 4 +++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/models/communication/block/template/agenda.rb b/app/models/communication/block/template/agenda.rb index 72a406e43..3256da47b 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 d5b7b769d..ac96d5b5f 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 1597d9497..1dbe1ecef 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> -- GitLab