@@ -50,7 +50,7 @@ module ::CommunityCustomFields
5050 topic . custom_fields [ :status ] = "new"
5151
5252 if !user . admin
53- topic . custom_fields [ :waiting_since ] = Time . now . utc . iso8601
53+ topic . custom_fields [ :waiting_since ] = Time . current . iso8601
5454 topic . custom_fields [ :waiting_id ] = user . id
5555 end
5656
@@ -70,7 +70,7 @@ module ::CommunityCustomFields
7070 topic . custom_fields [ :waiting_id ] = nil
7171 else
7272 if user . id != topic . custom_fields [ :waiting_id ] . to_i
73- topic . custom_fields [ :waiting_since ] = Time . now . utc . iso8601
73+ topic . custom_fields [ :waiting_since ] = Time . current . iso8601
7474 topic . custom_fields [ :waiting_id ] = user . id
7575 end
7676
@@ -80,12 +80,15 @@ module ::CommunityCustomFields
8080 end
8181
8282 if topic . custom_fields [ :status ] == "closed"
83+ # this handles an edge case where `closed_at` was never assigned
84+ topic . custom_fields [ :closed_at ] ||= Time . current . iso8601
85+
8386 if topic . custom_fields [ :last_assigned_to_id ] . nil? || Time . iso8601 ( topic . custom_fields [ :closed_at ] ) < 1 . month . ago . iso8601
8487 topic . custom_fields [ :status ] = "new"
8588 else
8689 topic . custom_fields [ :status ] = "open"
8790 topic . custom_fields [ :assignee_id ] = topic . custom_fields [ :last_assigned_to_id ]
88- topic . custom_fields [ :last_assigned_at ] = Time . now . utc . iso8601
91+ topic . custom_fields [ :last_assigned_at ] = Time . current . iso8601
8992 end
9093 topic . custom_fields [ :outcome ] = nil
9194 topic . custom_fields [ :closed_at ] = nil
0 commit comments