diff --git a/backend/app/controllers/spree/admin/users_controller.rb b/backend/app/controllers/spree/admin/users_controller.rb index a288a265045..4bbba3c782f 100644 --- a/backend/app/controllers/spree/admin/users_controller.rb +++ b/backend/app/controllers/spree/admin/users_controller.rb @@ -65,8 +65,35 @@ def addresses def orders params[:q] ||= {} - @search = Spree::Order.reverse_chronological.ransack(params[:q].merge(user_id_eq: @user.id)) - @orders = @search.result.page(params[:page]).per(Spree::Config[:admin_products_per_page]) + params[:q][:completed_at_not_null] ||= '1' if Spree::Config[:show_only_complete_orders_by_default] + + @only_completed_orders = params[:q][:completed_at_not_null] == '1' + + params[:q][:s] ||= @only_completed_orders ? 'completed_at DESC' : 'created_at ASC' + params[:q][:completed_at_not_null] = '' unless @only_completed_orders + + if params[:q][:created_at_gt].present? + params[:q][:created_at_gt] = begin + Time.zone.parse(params[:q][:created_at_gt]).beginning_of_day + rescue StandardError + "" + end + end + + if params[:q][:created_at_lt].present? + params[:q][:created_at_lt] = begin + Time.zone.parse(params[:q][:created_at_lt]).end_of_day + rescue StandardError + "" + end + end + + @search = Spree::Order.reverse_chronological + .ransack(params[:q].merge(user_id_eq: @user.id)) + + @orders = @search.result.includes([:user]) + .page(params[:page]) + .per(params[:per_page] || Spree::Config[:orders_per_page]) end def items diff --git a/backend/app/views/spree/admin/users/orders.html.erb b/backend/app/views/spree/admin/users/orders.html.erb index b4bbbe085de..86800913398 100644 --- a/backend/app/views/spree/admin/users/orders.html.erb +++ b/backend/app/views/spree/admin/users/orders.html.erb @@ -2,18 +2,111 @@ <% admin_breadcrumb(link_to @user.email, edit_admin_user_url(@user)) %> <% admin_breadcrumb(t('spree.admin.user.order_history')) %> - <%= render 'spree/admin/users/sidebar' %> <%= render 'spree/admin/users/tabs', current: :orders %> <%= render partial: 'spree/admin/users/user_page_actions' %> +<% content_for :table_filter_title do %> + <%= t('spree.search') %> +<% end %> + +<% content_for :table_filter do %> +