Merge pull request #2160 from internetee/2157-domain-and-contact-version-date-filter

Admin: filter by created_at for domain and contact versions views
This commit is contained in:
Timo Võhmar 2021-09-16 17:08:28 +03:00 committed by GitHub
commit 6fff8a70ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 29 deletions

View file

@ -7,11 +7,9 @@ module Admin
def index
params[:q] ||= {}
@q = Version::ContactVersion.ransack(params[:q])
@versions = @q.result.page(params[:page])
search_params = params[:q].deep_dup
search_params = params[:q].deep_dup.except(:created_at_gteq, :created_at_lteq)
where_s = "1=1"
where_s = '1=1'
search_params.each do |key, value|
next if value.empty?

View file

@ -7,21 +7,19 @@ module Admin
def index
params[:q] ||= {}
@q = Version::DomainVersion.includes(:item).ransack(params[:q])
@versions = @q.result.page(params[:page])
search_params = params[:q].deep_dup
search_params = params[:q].deep_dup.except(:created_at_gteq, :created_at_lteq)
if search_params[:registrant].present?
registrants = Contact.where("name ilike ?", "%#{search_params[:registrant].strip}%")
registrants = Contact.where('name ilike ?', "%#{search_params[:registrant].strip}%")
search_params.delete(:registrant)
end
if search_params[:registrar].present?
registrars = Registrar.where("name ilike ?", "%#{search_params[:registrar].strip}%")
registrars = Registrar.where('name ilike ?', "%#{search_params[:registrar].strip}%")
search_params.delete(:registrar)
end
where_s = "1=1"
where_s = '1=1'
search_params.each do |key, value|
next if value.empty?
@ -39,11 +37,11 @@ module Admin
if registrants.present?
where_s += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id}'" }.join ','})"
end
where_s += " AND 1=0" if registrants == []
where_s += ' AND 1=0' if registrants == []
if registrars.present?
where_s += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id}'" }.join ','})"
end
where_s += " AND 1=0" if registrars == []
where_s += ' AND 1=0' if registrars == []
versions = Version::DomainVersion.includes(:item).where(where_s).order(created_at: :desc, id: :desc)
@q = versions.ransack(params[:q])

View file

@ -21,19 +21,25 @@
= label_tag :action
= select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' }
.row
.col-md-3
.col-md-3
.col-md-3
.form-group
= label_tag t(:results_per_page)
= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page)
.col-md-3{style: 'padding-top: 25px;float:right;padding-right: 0px;'}
%button.btn.btn-primary
 
%span.glyphicon.glyphicon-search
 
= link_to(t('.csv_btn'), admin_contact_versions_path(format: :csv, params: params.permit!), class: 'btn btn-default')
= link_to(t('.reset_btn'), admin_contact_versions_path, class: 'btn btn-default')
.col-md-3
.form-group
= f.label t(:created_at_from)
= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from)
.col-md-3
.form-group
= f.label t(:created_at_until)
= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until)
.col-md-3
.form-group
= label_tag t(:results_per_page)
= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page)
.col-md-3{style: 'padding-top: 25px;float:right;padding-right: 0px;'}
%button.btn.btn-primary
 
%span.glyphicon.glyphicon-search
 
= link_to(t('.csv_btn'), admin_contact_versions_path(format: :csv, params: params.permit!), class: 'btn btn-default')
= link_to(t('.reset_btn'), admin_contact_versions_path, class: 'btn btn-default')
%hr

View file

@ -15,14 +15,20 @@
.col-md-3
.form-group
= label_tag t(:registrar_name)
= select_tag '[q][registrar]', options_for_select(Registrar.all.map { |x| [x, x.name] }, selected: params[:q][:registrar]), { include_blank: true, class: 'form-control', placeholder: t('.registrant')}
= select_tag '[q][registrar]', options_for_select(Registrar.all.map { |r| [r.name] }, selected: params[:q][:registrar]), { include_blank: true, class: 'form-control', placeholder: t('.registrant')}
.col-md-3
.form-group
= label_tag :action
= select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' }
.row
.col-md-3
.form-group
= f.label t(:created_at_from)
= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from)
.col-md-3
.form-group
= f.label t(:created_at_until)
= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until)
.col-md-3
.form-group
= label_tag t(:results_per_page)

View file

@ -67,7 +67,7 @@ class DomainVersionsTest < ApplicationSystemTestCase
find('.btn.btn-primary').click
assert_equal current_url,
'http://www.example.com/admin/domain_versions?q[name]=&q[registrant]=John&q[registrar]=&q[event]=&results_per_page='
'http://www.example.com/admin/domain_versions?q[name]=&q[registrant]=John&q[registrar]=&q[event]=&q[created_at_gteq]=&q[created_at_lteq]=&results_per_page='
end
def test_search_registrar_param
@ -76,7 +76,7 @@ class DomainVersionsTest < ApplicationSystemTestCase
find('.btn.btn-primary').click
assert_equal current_url,
'http://www.example.com/admin/domain_versions?q[name]=&q[registrant]=&q[registrar]=Best+Names&q[event]=&results_per_page='
'http://www.example.com/admin/domain_versions?q[name]=&q[registrant]=&q[registrar]=Best+Names&q[event]=&q[created_at_gteq]=&q[created_at_lteq]=&results_per_page='
end
def test_search_name_param
@ -85,7 +85,7 @@ class DomainVersionsTest < ApplicationSystemTestCase
find('.btn.btn-primary').click
assert_equal current_url,
'http://www.example.com/admin/domain_versions?q[name]=shop.test&q[registrant]=&q[registrar]=&q[event]=&results_per_page='
'http://www.example.com/admin/domain_versions?q[name]=shop.test&q[registrant]=&q[registrar]=&q[event]=&q[created_at_gteq]=&q[created_at_lteq]=&results_per_page='
end
def test_download_domain_history