diff --git a/app/controllers/admin/dashboards_controller.rb b/app/controllers/admin/dashboards_controller.rb index 0644486..489513d 100644 --- a/app/controllers/admin/dashboards_controller.rb +++ b/app/controllers/admin/dashboards_controller.rb @@ -2,7 +2,7 @@ class Admin::DashboardsController < ApplicationController before_action :authorize! def show @user = User.all - @jobs = Job.currently_working_on + @jobs = Job.all end def authorize! diff --git a/app/controllers/admin/jobs_controller.rb b/app/controllers/admin/jobs_controller.rb index 77df9ca..4c3b589 100644 --- a/app/controllers/admin/jobs_controller.rb +++ b/app/controllers/admin/jobs_controller.rb @@ -5,6 +5,23 @@ class Admin::JobsController < ApplicationController def index @q = Job.ransack(params[:q]) @q.sorts = "id asc" if @q.sorts.empty? - @pagy, @records = pagy(@q.result(distinct: true), limit: 20) + # @pagy, @records = pagy(@q.result(distinct: true), limit: 20) + @calendar, @pagy, @records = pagy_calendar(@q, year: {}, month: {}, pagy: {}) + end + + def pagy_calendar_period(collection) + if collection.is_a? Ransack::Search + collection.result.minmax.map(&:created_at) if collection.result + else + collection.minmax.map(&:created_at) if collection + end + end + + def pagy_calendar_filter(collection, from, to) + if collection.is_a? Ransack::Search + collection.result.where(created_at: from...to) + else + collection.where(created_at: from...to) + end end end diff --git a/app/views/admin/dashboards/show.html.erb b/app/views/admin/dashboards/show.html.erb index e51ddae..edc46c6 100644 --- a/app/views/admin/dashboards/show.html.erb +++ b/app/views/admin/dashboards/show.html.erb @@ -17,7 +17,7 @@ <% end %> <%= link_to admin_users_path() do %>
-

Tutoren:

+

Operatoren:

<%= @user.operator.size %>

<% end %> @@ -29,10 +29,15 @@ <% end %>
-

Aktueller Monat

- <%= link_to admin_jobs_path() do %> + <%= link_to operator_jobs_path() do %>

aktuelle Druckaufträge:

+

<%= @jobs.where(status: %i[open printing pickup]).size %>

+
+ <% end %> + <%= link_to admin_jobs_path() do %> +
+

Alle Druckaufträge:

<%= @jobs.size %>

<% end %> diff --git a/app/views/admin/jobs/index.html.erb b/app/views/admin/jobs/index.html.erb index 94d38aa..8757e39 100644 --- a/app/views/admin/jobs/index.html.erb +++ b/app/views/admin/jobs/index.html.erb @@ -1,37 +1,49 @@ -<%= turbo_frame_tag "admin_jobs" do %> +<% content_for :title, "Benutzerliste" %> +

Alle Druckaufträge

+
+
+ <%= search_form_for @q, data: { turbo_frame: :admin_jobs, turbo_action: 'advance' }, url: admin_jobs_path do |f| %> + <%= f.search_field :costumer_firstname_or_costumer_lastname_or_pdf_blob_filename_cont, placeholder: "Suchen", oninput: 'this.form.requestSubmit();' %> + <%= f.label :status_eq, "Status:" %> + <%= f.select :status_eq, Job.statuses.keys, {include_blank: "alle"}, onchange: 'this.form.requestSubmit();' %> + <%#= f. %> + <%= f.submit "Filter anwenden", class: "py-2 px-3 bg-hsrm-red hover:bg-hsrm-red-light shadow-lg text-white inline-block font-medium cursor-pointer" %> + <% end %> +
+
+<%= turbo_frame_tag "admin_jobs", data: { turbo_action: 'advance'} do %>
-

Alle Druckaufträge

-
- <%== pagy_nav(@pagy) %> - <%== pagy_info(@pagy, item_name: "Users") %> -
-
- - - - - - - - - - - - - - - - - - - - <%= render partial: "job_tr", collection: @records, as: :job, locals: { no_actions: true } %> - -
<%= sort_link(@q, :id, "ID", ) %><%= sort_link(@q, :costumer_firstname, "Vorname") %><%= sort_link(@q, :costumer_lastname, "Nachname") %><%= sort_link(@q, :pdf_blob_filename, "PDF") %><%= sort_link(@q, :number_of_plans_a0, "A0") %><%= sort_link(@q, :number_of_plans_a1, "A1") %><%= sort_link(@q, :number_of_plans_a2, "A2") %><%= sort_link(@q, :number_of_plans_a3, "A3") %><%= sort_link(@q, :costum_qm_plan, "no DIN") %><%= sort_link(@q, :cost, "Kosten") %><%= sort_link(@q, :created_at, "Erstellt am") %><%= sort_link(@q, :created_at, "Bezahlt am") %><%= sort_link(@q, :status, "Status") %>
-
-
- <%== pagy_nav(@pagy) %> - <%== pagy_info(@pagy, item_name: "Users") %> -
+ <%== pagy_nav(@calendar[:year]) %> + <%== pagy_nav(@calendar[:month]) %> + <%== pagy_nav(@pagy) %> + <%== pagy_info(@pagy, item_name: "Users") %> +
+
+ + + + + + + + + + + + + + + + + + + + <%= render partial: "job_tr", collection: @records, as: :job, locals: { no_actions: true } %> + +
<%= sort_link(@q, :id, "ID", ) %><%= sort_link(@q, :costumer_firstname, "Vorname") %><%= sort_link(@q, :costumer_lastname, "Nachname") %><%= sort_link(@q, :pdf_blob_filename, "PDF") %><%= sort_link(@q, :number_of_plans_a0, "A0") %><%= sort_link(@q, :number_of_plans_a1, "A1") %><%= sort_link(@q, :number_of_plans_a2, "A2") %><%= sort_link(@q, :number_of_plans_a3, "A3") %><%= sort_link(@q, :costum_qm_plan, "no DIN") %><%= sort_link(@q, :cost, "Kosten") %><%= sort_link(@q, :created_at, "Erstellt am") %><%= sort_link(@q, :created_at, "Bezahlt am") %><%= sort_link(@q, :status, "Status") %>
+
+
+ <%== pagy_nav(@pagy) %> + <%== pagy_info(@pagy, item_name: "Users") %>
<% end %> diff --git a/config/initializers/pagy.rb b/config/initializers/pagy.rb index d591ee7..b1630b8 100644 --- a/config/initializers/pagy.rb +++ b/config/initializers/pagy.rb @@ -41,7 +41,7 @@ # Calendar extra: Add pagination filtering by calendar time unit (year, quarter, month, week, day) # See https://ddnexus.github.io/pagy/docs/extras/calendar -# require 'pagy/extras/calendar' +require "pagy/extras/calendar" # Default for each calendar unit class in IRB: # >> Pagy::Calendar::Year::DEFAULT # >> Pagy::Calendar::Quarter::DEFAULT