mirror of
https://github.com/discourse/discourse.git
synced 2025-02-06 03:18:23 +00:00
4af77f1e38
This PR allows entering a float value for topic timers e.g. 0.5 for 30 minutes when entering hours, 0.5 for 12 hours when entering days. This is achieved by adding a new column to store the duration of a topic timer in minutes instead of the ambiguous both hours and days that it could be before. This PR has ommitted the post migration to delete the duration column in topic timers; it will be done in a subsequent PR to ensure that no data is lost if the UPDATE query to set duration_mintues fails. I have to keep the old keyword of duration in set_or_create_topic_timer for backwards compat, will remove at a later date after plugins are updated.
17 lines
673 B
Ruby
17 lines
673 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AddDurationMinutesToTopicTimer < ActiveRecord::Migration[6.0]
|
|
def up
|
|
add_column :topic_timers, :duration_minutes, :integer
|
|
|
|
# 7 is delete_replies type, this duration is measured in days, the other
|
|
# duration is measured in hours
|
|
DB.exec("UPDATE topic_timers SET duration_minutes = (duration * 60 * 24) WHERE duration_minutes != duration AND status_type = 7 AND duration IS NOT NULL")
|
|
DB.exec("UPDATE topic_timers SET duration_minutes = (duration * 60) WHERE duration_minutes != duration AND status_type != 7 AND duration IS NOT NULL")
|
|
end
|
|
|
|
def down
|
|
remove_column :topic_timers, :duration_minutes
|
|
end
|
|
end
|