Browse Source

mixin für Noten

hmt 9 năm trước cách đây
mục cha
commit
7066b46576
2 tập tin đã thay đổi với 48 bổ sung23 xóa
  1. 43 23
      lib/schild.rb
  2. 5 0
      specs/schueler_spec.rb

+ 43 - 23
lib/schild.rb

@@ -55,6 +55,35 @@ module SchildTypeSaver
   end
 end
 
+# Mixin für Notenbezeichnungen
+module NotenHelfer
+    # Notenbezeichnung als String
+    def note_s(ziffer)
+      case ziffer
+      when "1", "1+", "1-"
+        "sehr gut"
+      when "2", "2+", "2-"
+        "gut"
+      when "3", "3+", "3-"
+        "befriedigend"
+      when "4", "4+", "4-"
+        "ausreichend"
+      when "5", "5+", "5-"
+        "mangelhaft"
+      when "6"
+        "ungenügend"
+      when 'NB'
+        "----------"
+      when "E1"
+        "mit besonderem Erfolg teilgenommen"
+      when "E2"
+        "mit Erfolg teilgenommen"
+      when 'E3'
+        "teilgenommen"
+      end
+    end
+end
+
 # Das Schild Modul, das alle Klassen für die Datenbankanbindung bereitstellt
 module Schild
   # ist die Datenbank-Verbindung. Alle Daten können über diese Konstante abgerufen werden
@@ -256,31 +285,11 @@ module SchildErweitert
   # Assoziation für Noten
   class Noten < Schild::Noten
     include SchildTypeSaver
+    include NotenHelfer
 
-    # Notenbezeichnung als String
+    # note in String umwandeln
     def note
-      case self.noten_krz
-      when "1", "1+", "1-"
-        "sehr gut"
-      when "2", "2+", "2-"
-        "gut"
-      when "3", "3+", "3-"
-        "befriedigend"
-      when "4", "4+", "4-"
-        "ausreichend"
-      when "5", "5+", "5-"
-        "mangelhaft"
-      when "6"
-        "ungenügend"
-      when 'NB'
-        "----------"
-      when "E1"
-        "mit besonderem Erfolg teilgenommen"
-      when "E2"
-        "mit Erfolg teilgenommen"
-      when 'E3'
-        "teilgenommen"
-      end
+      note_s self.noten_krz
     end
 
     # Bezeichnung des Fachs
@@ -322,6 +331,7 @@ module SchildErweitert
   # Assoziation für die jeweiligen BK-Prüfungsfächer
   class BKAbschlussFaecher < Schild::BKAbschlussFaecher
     include SchildTypeSaver
+    include NotenHelfer
 
     # Vornote des Prüfungsfachs
     def vornote
@@ -352,6 +362,15 @@ module SchildErweitert
     def note_abschluss
       self.NoteAbschluss.to_i
     end
+
+    # Die berechnete/festgelegte Abschlussnote-BA für das Fach
+    def note_abschluss_ba
+      self.NoteAbschlussBA.to_i
+    end
+
+    def note_abschluss_ba_s
+      note_s self.note_abschluss_ba.to_s
+    end
   end
 
   # Schul-Tabelle mit vereinfachtem Zugriff auf Datenfelder.
@@ -399,3 +418,4 @@ module SchildErweitert
     alias :password? :passwort?
   end
 end
+

+ 5 - 0
specs/schueler_spec.rb

@@ -87,6 +87,11 @@ describe Schueler do
     it 'gibt Abschlussfächer zurück' do
       Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSTE"}.vornote.must_equal 4
     end
+
+    it 'gibt Abschlussnote-BA als String zurück' do
+      Schueler[373].bk_abschluss_leistungen.find{|l|l.fach_krz == "M"}.note_abschluss_ba_s.must_equal 'gut'
+      Schueler[381].bk_abschluss_leistungen.find{|l|l.fach_krz == "PB"}.note_abschluss_ba_s.must_equal 'mangelhaft'
+    end
   end
 
   describe 'gibt die korrekte Anzahl von Schülern über Klasse zurück' do