From 082b3b282f7863e4b10e9cb34624b4b167b75588 Mon Sep 17 00:00:00 2001
From: ThibG <thib@sitedethib.com>
Date: Sun, 30 Jun 2019 16:11:21 +0200
Subject: [PATCH] =?UTF-8?q?Fix=20expiration=20date=20of=20filters=20being?=
 =?UTF-8?q?=20set=20to=20=E2=80=9CNever=E2=80=9D=20when=20editing=20them?=
 =?UTF-8?q?=20(#11204)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When editing a custom filter, select the shortest preset duration that
still covers the remaining time of that filter.

Fixes #9506
---
 app/models/custom_filter.rb | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 342207a55..382562fb8 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -35,6 +35,13 @@ class CustomFilter < ApplicationRecord
   before_validation :clean_up_contexts
   after_commit :remove_cache
 
+  def expires_in
+    return @expires_in if defined?(@expires_in)
+    return nil if expires_at.nil?
+
+    [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].find { |expires_in| expires_in.from_now >= expires_at }
+  end
+
   private
 
   def clean_up_contexts