Skip to content

Commit f1e3576

Browse files
authored
[Announcement] Exclude events with disabled monthly announcements in scope (#11401)
1 parent 9a43af2 commit f1e3576

File tree

3 files changed

+6
-10
lines changed

3 files changed

+6
-10
lines changed

app/controllers/events_controller.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,9 +418,7 @@ def announcement_overview
418418
end
419419
@announcements = @all_announcements.page(params[:page]).per(10)
420420

421-
if @event.config.generate_monthly_announcement
422-
@monthly_announcement = Announcement.monthly_for(Date.today).where(event: @event).first
423-
end
421+
@monthly_announcement = Announcement.monthly_for(Date.today).where(event: @event).first
424422
end
425423

426424
before_action(only: :feed) { request.format = :atom }

app/jobs/announcement/monthly_job.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@ class MonthlyJob < ApplicationJob
55
queue_as :default
66

77
def perform
8-
Event.includes(:config).where(config: { generate_monthly_announcement: true }).find_each do |event|
9-
event.announcements.approved_monthly_for(Date.today.prev_month).find_each do |announcement|
10-
Rails.error.handle do
11-
announcement.mark_published!
12-
end
8+
Announcement.approved_monthly_for(Date.today.prev_month).find_each do |announcement|
9+
Rails.error.handle do
10+
announcement.mark_published!
1311
end
1412

15-
Announcement::Templates::Monthly.new(event:, author: User.system_user).create
13+
Announcement::Templates::Monthly.new(event: announcement.event, author: User.system_user).create
1614
end
1715
end
1816

app/models/announcement.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class Announcement < ApplicationRecord
5454
end
5555
end
5656

57-
scope :monthly, -> { where(template_type: Announcement::Templates::Monthly.name) }
57+
scope :monthly, -> { joins(event: :config).where(:template_type => Announcement::Templates::Monthly.name, "event_configurations.generate_monthly_announcement" => true) }
5858
scope :monthly_for, ->(date) { monthly.where("announcements.created_at BETWEEN ? AND ?", date.beginning_of_month, date.end_of_month) }
5959
scope :approved_monthly_for, ->(date) { monthly_for(date).draft }
6060
validate :content_is_json

0 commit comments

Comments
 (0)