From 245d5cad9beab38194b09020ac9844a1050b47c7 Mon Sep 17 00:00:00 2001 From: Teal <git@teal.is> Date: Mon, 27 May 2024 17:01:54 +0200 Subject: [PATCH] only show future assignments in human-readable views --- app/models/assignment.rb | 2 ++ app/models/session.rb | 1 + app/views/assignments/by_user.html.erb | 2 +- app/views/assignments/index.html.erb | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/assignment.rb b/app/models/assignment.rb index 20fabd0..88cd32d 100644 --- a/app/models/assignment.rb +++ b/app/models/assignment.rb @@ -9,6 +9,8 @@ class Assignment < ApplicationRecord after_create_commit :notify_assignment_created after_destroy_commit :notify_assignment_destroyed + scope :future, -> { joins(:session).where('sessions.starts_at' => Time.now..) } + after_create_commit -> { Rails.logger.debug('Created assignment, broadcasting') broadcast_replace_to "sessions", diff --git a/app/models/session.rb b/app/models/session.rb index 462c3d6..43137cd 100644 --- a/app/models/session.rb +++ b/app/models/session.rb @@ -7,6 +7,7 @@ class Session < ApplicationRecord has_many :speakers, through: :session_speakers scope :scheduled, -> { where(status: 'scheduled') } + scope :future, -> { where(starts_at: Time.now..) } validates :ref_id, uniqueness: { scope: :conference_id } diff --git a/app/views/assignments/by_user.html.erb b/app/views/assignments/by_user.html.erb index 9274e3a..5557083 100644 --- a/app/views/assignments/by_user.html.erb +++ b/app/views/assignments/by_user.html.erb @@ -12,7 +12,7 @@ </tr> </thead> <tbody> - <% @user.assignments.includes(:session, session: :conference).order('sessions.starts_at').each do |assignment| %> + <% @user.assignments.future.includes(:session, session: :conference).order('sessions.starts_at').each do |assignment| %> <tr class="*:border *:p-1"> <td><%= assignment.session.conference.name %></td> <td><%= assignment.session.starts_at.strftime('%Y-%m-%d') %></td> diff --git a/app/views/assignments/index.html.erb b/app/views/assignments/index.html.erb index 86bfbb2..63d8176 100644 --- a/app/views/assignments/index.html.erb +++ b/app/views/assignments/index.html.erb @@ -1,5 +1,5 @@ <div> - <% @assignments.group_by(&:user).each do |user, assignments| %> + <% @assignments.future.group_by(&:user).each do |user, assignments| %> <div class="my-8"> <h4 class="text-xl my-2"><%= link_to user.name, user_assignments_path(user) %> <span class="font-normal"><%= link_to user_assignments_path(user, format: 'ics') do %><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="ml-2 mb-1 size-4 inline-block stroke-slate-400 fill-slate-400"><path fill-rule="evenodd" d="M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z" clip-rule="evenodd"></path></svg><% end %></span></h4> <% assignments.group_by { |a| a.session.starts_at.strftime('%Y-%m-%d') }.each do |date, assignments_on_date| %> -- GitLab