diff --git a/app/models/job.rb b/app/models/job.rb index c49bb6f..e6581f8 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -1,8 +1,8 @@ class Job < ApplicationRecord attr_accessor :current_user - belongs_to :costumer, class_name: "User", optional: true, counter_cache: :jobs_as_costumer_count, inverse_of: :jobs_as_costumer - belongs_to :operator, class_name: "User", optional: true, counter_cache: :jobs_as_operator_count, inverse_of: :jobs_as_operator + belongs_to :costumer, class_name: "User", optional: true, counter_cache: :costumer_jobs_count, inverse_of: :costumer_jobs + belongs_to :operator, class_name: "User", optional: true, counter_cache: :operator_jobs_count, inverse_of: :operator_jobs belongs_to :creator, class_name: "User", optional: true, counter_cache: :created_jobs_count, inverse_of: :created_jobs belongs_to :cashier, class_name: "User", optional: true, counter_cache: :cashed_jobs_count, inverse_of: :cashed_jobs diff --git a/app/models/user.rb b/app/models/user.rb index 50db51e..bbba7f5 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,8 +1,8 @@ class User < ApplicationRecord has_secure_password # has_many :jobs - has_many :jobs_as_costumer, foreign_key: :costumer_id, class_name: "Job" - has_many :jobs_as_operator, foreign_key: :operator_id, class_name: "Job" + has_many :costumer_jobs, foreign_key: :costumer_id, class_name: "Job" + has_many :operator_jobs, foreign_key: :operator_id, class_name: "Job" has_many :created_jobs, foreign_key: :creator_id, class_name: "Job" has_many :cashed_jobs, foreign_key: :cashier_id, class_name: "Job" @@ -45,7 +45,7 @@ class User < ApplicationRecord end def self.ransackable_attributes(auth_object = nil) - [ "created_at", "email", "firstname", "id", "jobs_as_costumer_count", "jobs_as_operator_count", "lastname", "role", "verified", "name" ] + [ "created_at", "email", "firstname", "id", "costumer_jobs_count", "operator_jobs_count", "lastname", "role", "verified", "name" ] end def self.ransackable_associations(auth_object = nil) diff --git a/app/views/admin/users/_user.html.erb b/app/views/admin/users/_user.html.erb index 9f890cd..71e446d 100644 --- a/app/views/admin/users/_user.html.erb +++ b/app/views/admin/users/_user.html.erb @@ -8,8 +8,8 @@

E-Mail Verifiziert: <%= icon bool_icon(user.verified), class: "icon #{user.verified ? "text-green-600" : "text-red-600"}" %>

<%= user.created_at %>

-

Druckaufträge als Kunde: <%= @user.jobs_as_costumer.size %>

-

davon abgebrochen: <%= @user.jobs_as_costumer.canceled.size %>

-

Druckaufträge als Operator: <%= @user.jobs_as_operator.size %>

+

Druckaufträge als Kunde: <%= @user.costumer_jobs.size %>

+

davon abgebrochen: <%= @user.costumer_jobs.canceled.size %>

+

Druckaufträge als Operator: <%= @user.operator_jobs.size %>

Druckaufträge kassiert: <%= @user.cashed_jobs.size %>

diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/users/index.html.erb index 501b8d7..b1b95a7 100644 --- a/app/views/admin/users/index.html.erb +++ b/app/views/admin/users/index.html.erb @@ -74,7 +74,7 @@ <%= sort_link(@q, :firstname, "Vorname") %> <%= sort_link(@q, :lastname, "Nachname") %> <%= sort_link(@q, :email, "E-Mail-Adresse") %> - <%= sort_link(@q, :jobs_as_costumer_count, "# Jobs") %> + <%= sort_link(@q, :costumer_jobs_count, "# Jobs") %> <%= sort_link(@q, :created_at, "Registriert am") %> <%= sort_link(@q, :role, "Rolle") %> diff --git a/app/views/admin/users/show.html.erb b/app/views/admin/users/show.html.erb index 92fa833..39b9de0 100644 --- a/app/views/admin/users/show.html.erb +++ b/app/views/admin/users/show.html.erb @@ -21,7 +21,7 @@ - <%= render partial: "jobs/job_tr", collection: @user.created_jobs.order(created_at: :desc).limit(10), as: :job, locals: { no_actions: true } %> + <%= render partial: "jobs/job_tr", collection: @user.costumer_jobs.order(created_at: :desc).limit(10), as: :job, locals: { no_actions: true } %> diff --git a/app/views/profiles/show.html.erb b/app/views/profiles/show.html.erb index b83b85b..9cff8d4 100644 --- a/app/views/profiles/show.html.erb +++ b/app/views/profiles/show.html.erb @@ -22,17 +22,17 @@

Aufgegebene Druckaufträge

Aufgegebene Druckaufträge - <%= current_user.jobs_as_costumer.size %> + <%= current_user.costumer_jobs.size %>

Abgebrochene Druckaufgräge - <%= current_user.jobs_as_costumer.canceled.size %> + <%= current_user.costumer_jobs.canceled.size %>

<% if is_admin_or_operator? %>

Bearbeitete Druckaufträge

Gedruckte Druckaufträge - <%= current_user.jobs_as_operator.paid.size %> + <%= current_user.operator_jobs.paid.size %>

<% end %>

Actions

diff --git a/db/migrate/20240826144015_create_users.rb b/db/migrate/20240826144015_create_users.rb index 6d9002f..20d68c5 100644 --- a/db/migrate/20240826144015_create_users.rb +++ b/db/migrate/20240826144015_create_users.rb @@ -10,8 +10,8 @@ class CreateUsers < ActiveRecord::Migration[7.2] t.boolean :verified, null: false, default: false - t.integer :jobs_as_costumer_count, default: 0 - t.integer :jobs_as_operator_count, default: 0 + t.integer :costumer_jobs_count, default: 0 + t.integer :operator_jobs_count, default: 0 t.integer :created_jobs_count, default: 0 t.integer :cashed_jobs_count, default: 0 diff --git a/db/schema.rb b/db/schema.rb index d0f4e11..4ffeb96 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -90,8 +90,8 @@ ActiveRecord::Schema[7.2].define(version: 2024_08_26_144016) do t.string "lastname" t.string "role", default: "user" t.boolean "verified", default: false, null: false - t.integer "jobs_as_costumer_count", default: 0 - t.integer "jobs_as_operator_count", default: 0 + t.integer "costumer_jobs_count", default: 0 + t.integer "operator_jobs_count", default: 0 t.integer "created_jobs_count", default: 0 t.integer "cashed_jobs_count", default: 0 t.datetime "created_at", null: false diff --git a/db/seeds.rb b/db/seeds.rb index e91901e..1b58915 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -30,9 +30,8 @@ students = [] lastname = Faker::Name.unique.last_name # created_at = Faker::Time.backward(days: 60, period: :day) created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today - 30, period: :day) - email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss') - puts "Create Student:" + email - email.delete(" ") + email=I18n.transliterate "#{firstname}.#{lastname}@student.hs-rm.de" + puts "Create Student: " + email students << User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: true, created_at: created_at) students.last.save! end @@ -43,9 +42,8 @@ end lastname = Faker::Name.unique.last_name created_at = Faker::Time.backward(days: 60, period: :day) # created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today, period: :day) - email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss') - email.delete(" ") - puts "Create Student:" + email + email=I18n.transliterate "#{firstname}.#{lastname}@student.hs-rm.de" + puts "Create Student: " + email User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: true, created_at: created_at).save! end @@ -55,9 +53,8 @@ end lastname = Faker::Name.unique.last_name created_at = Faker::Time.backward(days: 60, period: :day) # created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today, period: :day) - email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss') - email.delete(" ") - puts "Create Student:" + email + email=I18n.transliterate "#{firstname}.#{lastname}@student.hs-rm.de" + puts "Create Student: " + email User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: false, created_at: created_at).save! end