|
@@ -1,11 +1,39 @@
|
|
require 'schild/version'
|
|
require 'schild/version'
|
|
require 'sequel'
|
|
require 'sequel'
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
module Schild
|
|
module Schild
|
|
Sequel::Model.plugin :tactical_eager_loading
|
|
Sequel::Model.plugin :tactical_eager_loading
|
|
|
|
|
|
-
|
|
+
|
|
|
|
|
|
@db = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}&zeroDateTimeBehavior=convertToNull")
|
|
@db = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}&zeroDateTimeBehavior=convertToNull")
|
|
begin
|
|
begin
|
|
@@ -21,124 +49,161 @@ module Schild
|
|
@db.extension(:freeze_datasets)
|
|
@db.extension(:freeze_datasets)
|
|
@db.extension(:connection_validator)
|
|
@db.extension(:connection_validator)
|
|
|
|
|
|
- def self.connect
|
|
|
|
- @db = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}&zeroDateTimeBehavior=convertToNull")
|
|
|
|
- end
|
|
|
|
-
|
|
|
|
- def self.db
|
|
|
|
- @db
|
|
|
|
- end
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
+
|
|
class Schueler < Sequel::Model(:schueler)
|
|
class Schueler < Sequel::Model(:schueler)
|
|
|
|
+
|
|
|
|
+
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
|
|
+
|
|
|
|
+
|
|
one_to_many :abschnitte, :class => :Abschnitt
|
|
one_to_many :abschnitte, :class => :Abschnitt
|
|
|
|
+
|
|
|
|
+
|
|
one_to_one :bk_abschluss, :class => :BKAbschluss
|
|
one_to_one :bk_abschluss, :class => :BKAbschluss
|
|
- one_to_many :bk_abschluss_leistungen, :class => :BKAbschlussFaecher
|
|
+
|
|
|
|
+
|
|
|
|
+ one_to_many :bk_abschluss_leistungen, :class => :BKAbschlussFach
|
|
|
|
+
|
|
|
|
+
|
|
one_to_one :abi_abschluss, :class => :AbiAbschluss
|
|
one_to_one :abi_abschluss, :class => :AbiAbschluss
|
|
- one_to_many :abi_abschluss_leistungen, :class => :AbiAbschlussFaecher
|
|
+
|
|
|
|
+
|
|
|
|
+ one_to_many :abi_abschluss_leistungen, :class => :AbiAbschlussFach
|
|
|
|
+
|
|
|
|
+
|
|
one_to_one :fhr_abschluss, :class => :FHRAbschluss
|
|
one_to_one :fhr_abschluss, :class => :FHRAbschluss
|
|
- one_to_many :fhr_abschluss_leistungen, :class => :FHRAbschlussFaecher
|
|
+
|
|
- one_to_many :vermerke, :class => :Vermerke
|
|
+
|
|
- one_to_one :schuelerfoto, :class => :Schuelerfotos
|
|
+ one_to_many :fhr_abschluss_leistungen, :class => :FHRAbschlussFach
|
|
- one_to_many :sprachenfolge, :class => :Sprachenfolge
|
|
+
|
|
- end
|
|
+
|
|
-
|
|
+ one_to_many :vermerke, :class => :Vermerk
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+ one_to_one :schuelerfoto, :class => :Schuelerfoto
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ one_to_many :sprachenfolgen, :class => :Sprachenfolge
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
class Fachklasse < Sequel::Model(:eigeneschule_fachklassen)
|
|
class Fachklasse < Sequel::Model(:eigeneschule_fachklassen)
|
|
one_to_many :schueler
|
|
one_to_many :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
class Versetzung < Sequel::Model(:versetzung)
|
|
class Versetzung < Sequel::Model(:versetzung)
|
|
many_to_one :fachklasse, :class => :Fachklasse
|
|
many_to_one :fachklasse, :class => :Fachklasse
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Klassenlehrer < Sequel::Model(:k_lehrer)
|
|
class Klassenlehrer < Sequel::Model(:k_lehrer)
|
|
one_to_one :abschnitt, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
|
one_to_one :abschnitt, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Abschnitt < Sequel::Model(:schuelerlernabschnittsdaten)
|
|
class Abschnitt < Sequel::Model(:schuelerlernabschnittsdaten)
|
|
many_to_one :schueler, :class => :Schueler, :key => :Schueler_ID
|
|
many_to_one :schueler, :class => :Schueler, :key => :Schueler_ID
|
|
- one_to_many :noten, :class => :Noten
|
|
+ one_to_many :noten, :class => :Note
|
|
many_to_one :klassenlehrer, :class => :Klassenlehrer, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
|
many_to_one :klassenlehrer, :class => :Klassenlehrer, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class Noten < Sequel::Model(:schuelerleistungsdaten)
|
|
+
|
|
|
|
+ class Note < Sequel::Model(:schuelerleistungsdaten)
|
|
many_to_one :abschnitt, :class => :Abschnitt, :key => :Abschnitt_ID
|
|
many_to_one :abschnitt, :class => :Abschnitt, :key => :Abschnitt_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Faecher < Sequel::Model(:eigeneschule_faecher)
|
|
class Faecher < Sequel::Model(:eigeneschule_faecher)
|
|
|
|
|
|
- one_to_one :noten
|
|
+ one_to_one :note
|
|
one_to_many :abi_abschluss_leistungen
|
|
one_to_many :abi_abschluss_leistungen
|
|
one_to_one :sprachenfolge, :class => :Sprachenfolge, :key => :Fach_ID
|
|
one_to_one :sprachenfolge, :class => :Sprachenfolge, :key => :Fach_ID
|
|
one_to_many :gliederungen, :class => :Fach_Gliederung, :key => :Fach_ID
|
|
one_to_many :gliederungen, :class => :Fach_Gliederung, :key => :Fach_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class BKAbschluss < Sequel::Model(:schuelerbkabschluss)
|
|
class BKAbschluss < Sequel::Model(:schuelerbkabschluss)
|
|
one_to_one :schueler
|
|
one_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class BKAbschlussFaecher < Sequel::Model(:schuelerbkfaecher)
|
|
+
|
|
|
|
+ class BKAbschlussFach < Sequel::Model(:schuelerbkfaecher)
|
|
many_to_one :schueler
|
|
many_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class AbiAbschluss < Sequel::Model(:schuelerabitur)
|
|
class AbiAbschluss < Sequel::Model(:schuelerabitur)
|
|
one_to_one :schueler
|
|
one_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class AbiAbschlussFaecher < Sequel::Model(:schuelerabifaecher)
|
|
+
|
|
|
|
+ class AbiAbschlussFach < Sequel::Model(:schuelerabifaecher)
|
|
many_to_one :schueler
|
|
many_to_one :schueler
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class FHRAbschluss < Sequel::Model(:schuelerfhr)
|
|
class FHRAbschluss < Sequel::Model(:schuelerfhr)
|
|
one_to_one :schueler
|
|
one_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class FHRAbschlussFaecher < Sequel::Model(:schuelerfhrfaecher)
|
|
+
|
|
|
|
+ class FHRAbschlussFach < Sequel::Model(:schuelerfhrfaecher)
|
|
many_to_one :schueler
|
|
many_to_one :schueler
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Sprachenfolge < Sequel::Model(:schuelersprachenfolge)
|
|
class Sprachenfolge < Sequel::Model(:schuelersprachenfolge)
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
end
|
|
end
|
|
|
|
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
class Fach_Gliederung < Sequel::Model(:fach_gliederungen)
|
|
class Fach_Gliederung < Sequel::Model(:fach_gliederungen)
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Vermerke < Sequel::Model(:schuelervermerke)
|
|
class Vermerke < Sequel::Model(:schuelervermerke)
|
|
- many_to_one :Schueler
|
|
+ many_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class Schuelerfotos < Sequel::Model(:schuelerfotos)
|
|
+
|
|
|
|
+ class Schuelerfoto < Sequel::Model(:schuelerfotos)
|
|
one_to_one :schueler
|
|
one_to_one :schueler
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Schule < Sequel::Model(:eigeneschule)
|
|
class Schule < Sequel::Model(:eigeneschule)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
class Nutzer < Sequel::Model(:users)
|
|
class Nutzer < Sequel::Model(:users)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
@@ -176,8 +241,9 @@ module SchildErweitert
|
|
Symbol.include SchildErweitert::CoreExtensions::Symbol
|
|
Symbol.include SchildErweitert::CoreExtensions::Symbol
|
|
String.include CoreExtensions::String
|
|
String.include CoreExtensions::String
|
|
|
|
|
|
-
|
|
+
|
|
|
|
|
|
|
|
+
|
|
def self.included(klass)
|
|
def self.included(klass)
|
|
klass.columns.each do |column|
|
|
klass.columns.each do |column|
|
|
name = column.snake_case
|
|
name = column.snake_case
|
|
@@ -196,6 +262,7 @@ module SchildErweitert
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def create_null_object(klass, column)
|
|
def create_null_object(klass, column)
|
|
k = Schild.db.schema_type_class(klass.db_schema[column][:type])
|
|
k = Schild.db.schema_type_class(klass.db_schema[column][:type])
|
|
if k.class == Array
|
|
if k.class == Array
|
|
@@ -219,11 +286,14 @@ module SchildErweitert
|
|
class Methods
|
|
class Methods
|
|
@@accessor_methods = {}
|
|
@@accessor_methods = {}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
def self.add(klass, meth)
|
|
def self.add(klass, meth)
|
|
@@accessor_methods[klass] ||= []
|
|
@@accessor_methods[klass] ||= []
|
|
@@accessor_methods[klass] << meth
|
|
@@accessor_methods[klass] << meth
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def self.list(klass)
|
|
def self.list(klass)
|
|
@@accessor_methods[klass]
|
|
@@accessor_methods[klass]
|
|
end
|
|
end
|
|
@@ -237,11 +307,13 @@ module SchildErweitert
|
|
|
|
|
|
@note = %w[6 5- 5 5+ 4- 4 4+ 3- 3 3+ 2- 2 2+ 1- 1 1+]
|
|
@note = %w[6 5- 5 5+ 4- 4 4+ 3- 3 3+ 2- 2 2+ 1- 1 1+]
|
|
|
|
|
|
|
|
+
|
|
def self.punkte_aus_note(note)
|
|
def self.punkte_aus_note(note)
|
|
return if note.nil?
|
|
return if note.nil?
|
|
@note.index(note)
|
|
@note.index(note)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def self.note_aus_punkten(punkte)
|
|
def self.note_aus_punkten(punkte)
|
|
return unless punkte && punkte.to_i.between?(1,15) || punkte == "0"
|
|
return unless punkte && punkte.to_i.between?(1,15) || punkte == "0"
|
|
return punkte if ((punkte.to_i == 0) && (punkte.size > 1))
|
|
return punkte if ((punkte.to_i == 0) && (punkte.size > 1))
|
|
@@ -250,6 +322,7 @@ module SchildErweitert
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
def note_s(ziffer)
|
|
def note_s(ziffer)
|
|
case ziffer
|
|
case ziffer
|
|
when "1", "1+", "1-"
|
|
when "1", "1+", "1-"
|
|
@@ -413,7 +486,7 @@ module SchildErweitert
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class Noten
|
|
+ class Note
|
|
include NotenHelfer
|
|
include NotenHelfer
|
|
|
|
|
|
|
|
|
|
@@ -452,7 +525,7 @@ module SchildErweitert
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class BKAbschlussFaecher
|
|
+ class BKAbschlussFach
|
|
include NotenHelfer
|
|
include NotenHelfer
|
|
|
|
|
|
|
|
|
|
@@ -465,6 +538,9 @@ module SchildErweitert
|
|
self.MdlPruefung == "+"
|
|
self.MdlPruefung == "+"
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
def note(notenart=:note_abschluss_ba)
|
|
def note(notenart=:note_abschluss_ba)
|
|
note_s send(notenart)
|
|
note_s send(notenart)
|
|
end
|
|
end
|
|
@@ -484,36 +560,42 @@ module SchildErweitert
|
|
end
|
|
end
|
|
alias_method :pruefung_bestanden?, :bestanden_abi?
|
|
alias_method :pruefung_bestanden?, :bestanden_abi?
|
|
|
|
|
|
|
|
+
|
|
def latinum?
|
|
def latinum?
|
|
self.Latinum == "+"
|
|
self.Latinum == "+"
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def kl_latinum?
|
|
def kl_latinum?
|
|
self.KlLatinum == "+"
|
|
self.KlLatinum == "+"
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def graecum?
|
|
def graecum?
|
|
self.Graecum == "+"
|
|
self.Graecum == "+"
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+
|
|
def hebraicum?
|
|
def hebraicum?
|
|
self.Hebraicum == "+"
|
|
self.Hebraicum == "+"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class AbiAbschlussFaecher
|
|
+ class AbiAbschlussFach
|
|
include NotenHelfer
|
|
include NotenHelfer
|
|
|
|
|
|
|
|
+
|
|
def note(notenart)
|
|
def note(notenart)
|
|
note_s send(notenart)
|
|
note_s send(notenart)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
- class FHRAbschlussFaecher
|
|
+ class FHRAbschlussFach
|
|
include NotenHelfer
|
|
include NotenHelfer
|
|
|
|
|
|
|
|
+
|
|
def note(notenart)
|
|
def note(notenart)
|
|
note_s send(notenart)
|
|
note_s send(notenart)
|
|
end
|
|
end
|