diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index f2643a32a..4ab1e9ba9 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -124,7 +124,7 @@ class LettingsLogsController < LogsController redirect_to clear_filters_path(filter_type: @filter_type, organisation_id: params[:organisation_id]) and return end - uploads = BulkUpload.lettings.where("created_at >= ?", 30.days.ago) + uploads = BulkUpload.lettings.visible.where("created_at >= ?", 30.days.ago) unpaginated_filtered_uploads = filter_manager.filtered_uploads(uploads, search_term, filter_manager.session_filters) @pagy, @bulk_uploads = pagy(unpaginated_filtered_uploads) diff --git a/app/controllers/sales_logs_controller.rb b/app/controllers/sales_logs_controller.rb index 60be863cf..497d529b1 100644 --- a/app/controllers/sales_logs_controller.rb +++ b/app/controllers/sales_logs_controller.rb @@ -94,7 +94,7 @@ class SalesLogsController < LogsController redirect_to clear_filters_path(filter_type: @filter_type, organisation_id: params[:organisation_id]) and return end - uploads = BulkUpload.sales.where("created_at >= ?", 30.days.ago) + uploads = BulkUpload.sales.visible.where("created_at >= ?", 30.days.ago) unpaginated_filtered_uploads = filter_manager.filtered_uploads(uploads, search_term, session_filters) @pagy, @bulk_uploads = pagy(unpaginated_filtered_uploads) diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index 36123e5da..d4f35526b 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -12,6 +12,8 @@ class BulkUpload < ApplicationRecord after_initialize :generate_identifier, unless: :identifier + scope :visible, -> { where(processed: true) } + scope :search_by_filename, ->(filename) { where("filename ILIKE ?", "%#{filename}%") } scope :search_by_user_name, ->(name) { where(user_id: User.where("name ILIKE ?", "%#{name}%").select(:id)) } scope :search_by_user_email, ->(email) { where(user_id: User.where("email ILIKE ?", "%#{email}%").select(:id)) } diff --git a/app/services/bulk_upload/processor.rb b/app/services/bulk_upload/processor.rb index 71ee18ab5..8e30bb1d1 100644 --- a/app/services/bulk_upload/processor.rb +++ b/app/services/bulk_upload/processor.rb @@ -37,6 +37,7 @@ class BulkUpload::Processor send_failure_mail ensure downloader.delete_local_file! + bulk_upload.update!(processed: true) end def approve diff --git a/db/migrate/20240927143916_add_processed_to_bulk_uploads.rb b/db/migrate/20240927143916_add_processed_to_bulk_uploads.rb new file mode 100644 index 000000000..698b31f1e --- /dev/null +++ b/db/migrate/20240927143916_add_processed_to_bulk_uploads.rb @@ -0,0 +1,5 @@ +class AddProcessedToBulkUploads < ActiveRecord::Migration[7.0] + def change + add_column :bulk_uploads, :processed, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 31c7ac515..5c27bc4e2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -45,6 +45,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_09_25_095041) do t.integer "organisation_id" t.integer "moved_user_id" t.integer "failed" + t.boolean "processed", default: false t.index ["identifier"], name: "index_bulk_uploads_on_identifier", unique: true t.index ["user_id"], name: "index_bulk_uploads_on_user_id" end