Fix today, this month, this year operators [SCI-6527] (#3845)

This commit is contained in:
artoscinote 2022-02-22 14:14:16 +01:00 committed by GitHub
parent 463e1a8014
commit b8b7773a3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 14 deletions

View file

@ -14,7 +14,8 @@ class RepositoryDateTimeValue < RepositoryDateTimeValueBase
parameters = filter_element.parameters
case filter_element.operator
when 'today'
repository_rows.where("#{join_alias}.data >= ?", Time.zone.now.beginning_of_day)
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data <= ?",
Time.zone.now.beginning_of_day, Time.zone.now.end_of_day)
when 'yesterday'
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data < ?",
Time.zone.now.beginning_of_day - 1.day, Time.zone.now.beginning_of_day)
@ -22,12 +23,14 @@ class RepositoryDateTimeValue < RepositoryDateTimeValueBase
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data < ?",
Time.zone.now.beginning_of_week - 1.week, Time.zone.now.beginning_of_week)
when 'this_month'
repository_rows.where("#{join_alias}.data >= ?", Time.zone.now.beginning_of_month)
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data <= ?",
Time.zone.now.beginning_of_month, Time.zone.now.end_of_month)
when 'last_year'
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data < ?",
Time.zone.now.beginning_of_year - 1.year, Time.zone.now.beginning_of_year)
when 'this_year'
repository_rows.where("#{join_alias}.data >= ?", Time.zone.now.beginning_of_year)
repository_rows.where("#{join_alias}.data >= ? AND #{join_alias}.data <= ?",
Time.zone.now.beginning_of_year, Time.zone.now.end_of_year)
when 'equal_to'
repository_rows.where("#{join_alias}.data = ?", Time.zone.parse(parameters['datetime']))
when 'unequal_to'

View file

@ -24,12 +24,14 @@ class RepositoryDateValue < RepositoryDateTimeValueBase
repository_rows.where("#{join_alias}.data::date >= ? AND #{join_alias}.data::date < ?",
Time.zone.now.beginning_of_week.to_date - 1.week, Time.zone.now.beginning_of_week.to_date)
when 'this_month'
repository_rows.where("#{join_alias}.data::date >= ?", Time.zone.now.beginning_of_month.to_date)
repository_rows.where("#{join_alias}.data::date >= ? AND #{join_alias}.data::date <= ?",
Time.zone.now.beginning_of_month.to_date, Time.zone.now.end_of_month.to_date)
when 'last_year'
repository_rows.where("#{join_alias}.data::date >= ? AND #{join_alias}.data::date < ?",
Time.zone.now.beginning_of_year.to_date - 1.year, Time.zone.now.beginning_of_year.to_date)
when 'this_year'
repository_rows.where("#{join_alias}.data::date >= ?", Time.zone.now.beginning_of_year.to_date)
repository_rows.where("#{join_alias}.data::date >= ? AND #{join_alias}.data::date <= ?",
Time.zone.now.beginning_of_year.to_date, Time.zone.now.end_of_year.to_date)
when 'equal_to'
repository_rows.where("#{join_alias}.data::date = ?", Date.parse(parameters['date']))
when 'unequal_to'

View file

@ -187,8 +187,10 @@ class RepositoryDatatableService
case filter_element_params[:operator]
when 'today'
repository_rows.where(
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ?",
Time.zone.now.beginning_of_day
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ? AND " \
"date_trunc('minute', \"repository_rows\".\"created_at\" < ?)",
Time.zone.now.beginning_of_day,
Time.zone.now.end_of_day
)
when 'yesterday'
repository_rows.where(
@ -204,8 +206,9 @@ class RepositoryDatatableService
)
when 'this_month'
repository_rows.where(
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ?",
Time.zone.now.beginning_of_month
"date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") <= ?",
Time.zone.now.beginning_of_month,
Time.zone.now.end_of_month
)
when 'last_year'
repository_rows.where(
@ -215,8 +218,10 @@ class RepositoryDatatableService
)
when 'this_year'
repository_rows.where(
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ?",
Time.zone.now.beginning_of_year
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ? AND "\
"date_trunc('minute', \"repository_rows\".\"created_at\") <= ?",
Time.zone.now.beginning_of_year,
Time.zone.now.end_of_year
)
when 'equal_to'
repository_rows.where("date_trunc('minute', \"repository_rows\".\"created_at\") = ?",
@ -251,7 +256,8 @@ class RepositoryDatatableService
def build_archived_on_filter_condition(repository_rows, filter_element_params)
case filter_element_params[:operator]
when 'today'
repository_rows.where("date_trunc('minute', \"archived_on\") >= ?", Time.zone.now.beginning_of_day)
repository_rows.where("date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") <= ?",
Time.zone.now.beginning_of_day, Time.zone.now.end_of_day)
when 'yesterday'
repository_rows.where("date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") < ?",
Time.zone.now.beginning_of_day - 1.day, Time.zone.now.beginning_of_day)
@ -259,12 +265,21 @@ class RepositoryDatatableService
repository_rows.where("date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") < ?",
Time.zone.now.beginning_of_week - 1.week, Time.zone.now.beginning_of_week)
when 'this_month'
repository_rows.where("date_trunc('minute', \"archived_on\") >= ?", Time.zone.now.beginning_of_month)
repository_rows.where(
"date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") <= ?",
Time.zone.now.beginning_of_month,
Time.zone.now.end_of_month
)
when 'last_year'
repository_rows.where("date_trunc('minute', \"archived_on\") >= ? AND date_trunc('minute', \"archived_on\") < ?",
Time.zone.now.beginning_of_year - 1.year, Time.zone.now.beginning_of_year)
when 'this_year'
repository_rows.where("date_trunc('minute', \"archived_on\") >= ?", Time.zone.now.beginning_of_year)
repository_rows.where(
"date_trunc('minute', \"repository_rows\".\"created_at\") >= ? AND "\
"date_trunc('minute', \"repository_rows\".\"created_at\") <= ?",
Time.zone.now.beginning_of_year,
Time.zone.now.end_of_year
)
when 'equal_to'
repository_rows.where("date_trunc('minute', \"archived_on\") = ?",
Time.zone.parse(filter_element_params.dig(:parameters, :datetime)))