|
|
@ -7,7 +7,17 @@ class User < ApplicationRecord |
|
|
has_many :entries, dependent: :destroy |
|
|
has_many :entries, dependent: :destroy |
|
|
|
|
|
|
|
|
PRAKTIKUMSTYPEN = %w[propädeutikum fachspezifikum] |
|
|
PRAKTIKUMSTYPEN = %w[propädeutikum fachspezifikum] |
|
|
ENTRY_ARTEN = %w[Praktikum Selbsterfahrung Supervision] |
|
|
|
|
|
|
|
|
ENTRY_ARTEN = [ |
|
|
|
|
|
"Praktikum", |
|
|
|
|
|
"Selbsterfahrung", |
|
|
|
|
|
"Supervision", |
|
|
|
|
|
# Neue differenzierte Einträge (nur sichtbar im fachspezifikum-Kontext) |
|
|
|
|
|
"Gruppenselbsterfahrung", # 64h |
|
|
|
|
|
"Theorie/Methodikseminare", # 216h |
|
|
|
|
|
"Peergruppensupervision", # 168h |
|
|
|
|
|
"Einzel-/Kleingruppensupervision", # 40h |
|
|
|
|
|
"Eigenständige Tätigkeit" |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
after_initialize :set_default, if: :new_record? |
|
|
after_initialize :set_default, if: :new_record? |
|
|
|
|
|
|
|
|
@ -18,6 +28,38 @@ class User < ApplicationRecord |
|
|
self.email =="christoph@marzell.net" |
|
|
self.email =="christoph@marzell.net" |
|
|
end |
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def update_required_matrices! |
|
|
|
|
|
PRAKTIKUMSTYPEN.each do |typ| |
|
|
|
|
|
required_hours_matrix[typ] ||= {} |
|
|
|
|
|
weekly_target_matrix[typ] ||= {} |
|
|
|
|
|
|
|
|
|
|
|
ENTRY_ARTEN.each do |art| |
|
|
|
|
|
required_hours_matrix[typ][art] ||= default_hours_for(typ, art) |
|
|
|
|
|
weekly_target_matrix[typ][art] ||= default_weekly_target_for(typ, art) |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
save! |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def default_weekly_target_for(typ, art) |
|
|
|
|
|
case [typ, art] |
|
|
|
|
|
when ["propädeutikum", "Praktikum"] then 12 |
|
|
|
|
|
when ["fachspezifikum", "Praktikum"] then 10 |
|
|
|
|
|
when ["propädeutikum", "Selbsterfahrung"], |
|
|
|
|
|
["fachspezifikum", "Selbsterfahrung"], |
|
|
|
|
|
["fachspezifikum", "Gruppenselbsterfahrung"] then 0.25 |
|
|
|
|
|
when ["propädeutikum", "Supervision"], |
|
|
|
|
|
["fachspezifikum", "Supervision"], |
|
|
|
|
|
["fachspezifikum", "Peergruppensupervision"], |
|
|
|
|
|
["fachspezifikum", "Einzel-/Kleingruppensupervision"] then 0.25 |
|
|
|
|
|
when ["fachspezifikum", "Eigenständige Tätigkeit"] then 10 |
|
|
|
|
|
else 0 |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def set_default |
|
|
def set_default |
|
|
self.required_hours_matrix = PRAKTIKUMSTYPEN.to_h do |typ| |
|
|
self.required_hours_matrix = PRAKTIKUMSTYPEN.to_h do |typ| |
|
|
[typ, ENTRY_ARTEN.to_h { |art| [art, default_hours_for(typ, art)] }] |
|
|
[typ, ENTRY_ARTEN.to_h { |art| [art, default_hours_for(typ, art)] }] |
|
|
@ -37,6 +79,7 @@ class User < ApplicationRecord |
|
|
when ["fachspezifikum", "Praktikum"] then 600 |
|
|
when ["fachspezifikum", "Praktikum"] then 600 |
|
|
when ["fachspezifikum", "Selbsterfahrung"] then 80 |
|
|
when ["fachspezifikum", "Selbsterfahrung"] then 80 |
|
|
when ["fachspezifikum", "Supervision"] then 40 |
|
|
when ["fachspezifikum", "Supervision"] then 40 |
|
|
|
|
|
when ["fachspezifikum", "Eigenständige Tätigkeit"] then 600 |
|
|
else 0 |
|
|
else 0 |
|
|
end |
|
|
end |
|
|
end |
|
|
end |
|
|
|