Skip to content

Commit

Permalink
Belegungsverpflichtung von Fremdsprachen angepasst, sodass eine in Kl…
Browse files Browse the repository at this point in the history
…asse 9 belegte, 2. Fremdsprache nicht mehr in Q1 & Q2 erzwungen wird.
  • Loading branch information
heinrich26 committed Jan 10, 2024
1 parent d354ab5 commit abb39e8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 27 deletions.
41 changes: 21 additions & 20 deletions app/src/main/kotlin/gui/Fremdsprachen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@
package com.kurswahlApp.gui

import com.kurswahlApp.R
import com.kurswahlApp.data.*
import com.kurswahlApp.data.FachData
import com.kurswahlApp.data.KurswahlData
import com.kurswahlApp.data.testFachdata
import com.kurswahlApp.data.testKurswahl
import org.intellij.lang.annotations.Language
import java.awt.Component
import java.awt.GridBagConstraints
Expand Down Expand Up @@ -230,26 +233,24 @@ class Fremdsprachen(wahlData: KurswahlData, fachData: FachData, notifier: (Boole
}


override fun close(): KurswahlData {
val sprachen: MutableList<Pair<Fach, Int>> =
mutableListOf(fs1.selectedItem!! to fsJahr1.number as Int, fs2.selectedItem!! to fsJahr2.number as Int)
fs3.selectedItem.let { sel ->
if (sel != null) {
sprachen.add(sel to fsJahr3.number as Int)
fs4.selectedItem.let { if (it != null) sprachen.add(it to fsJahr4.number as Int) }
override fun close(): KurswahlData = wahlData.updateWahlfaecher(
fremdsprachenNew = buildList(4) {
add(fs1.selectedItem!! to fsJahr1.number as Int)
add(fs2.selectedItem!! to fsJahr2.number as Int)
fs3.selectedItem?.let { fach ->
add(fach to fsJahr3.number as Int)
fs4.selectedItem?.let { add(it to fsJahr4.number as Int) }
}
}

return wahlData.updateWahlfaecher(
fremdsprachenNew = sprachen,
wpfsNew = wpf1.selectedItem!! to wpf2.selectedItem,
klasse = klasse.selectedItem as String?
)
}

override fun isDataValid(): Boolean {
return (fs1.selectedItem != null && fs2.selectedItem != null && wpf1.selectedItem != null && (!fachData.zweiWPFs || wpf2.selectedItem != null))
}
},
wpfsNew = wpf1.selectedItem!! to wpf2.selectedItem,
klasse = klasse.selectedItem as String?
)

override fun isDataValid(): Boolean =
fs1.selectedItem != null &&
fs2.selectedItem != null &&
wpf1.selectedItem != null &&
(!fachData.zweiWPFs || wpf2.selectedItem != null)

@Language("HTML")
override fun showHelp(): String =
Expand Down
15 changes: 8 additions & 7 deletions app/src/main/kotlin/gui/GrundkursWahl.kt
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ class GrundkursWahl(wahlData: KurswahlData, fachData: FachData, notifier: (Boole
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
)
scrollPane.preferredSize = Dimension(275, 350)
scrollPane.preferredSize = 275 by 350
scrollPane.verticalScrollBar.unitIncrement = 16
add(scrollPane, row = 0, column = 0, columnspan = 2, margin = Insets(bottom = 6))

Expand Down Expand Up @@ -394,7 +394,7 @@ class GrundkursWahl(wahlData: KurswahlData, fachData: FachData, notifier: (Boole
regelPanel.add(kursanzahlInfoLabel)

val scrollPane2 = JScrollPane(regelPanel)
scrollPane2.preferredSize = Dimension(200, 350)
scrollPane2.preferredSize = 200 by 350

add(scrollPane2, row = 0, column = 2, margin = Insets(left = 8, bottom = 6))

Expand All @@ -421,7 +421,7 @@ class GrundkursWahl(wahlData: KurswahlData, fachData: FachData, notifier: (Boole
margin = Insets(left = 4)
)

Dimension(JCheckBox().preferredSize.width, q1AnzahlLabel.preferredSize.height).let {
(JCheckBox().preferredSize.width by q1AnzahlLabel.preferredSize.height).let {
q1AnzahlLabel.preferredSize = it
q2AnzahlLabel.preferredSize = it
q3AnzahlLabel.preferredSize = it
Expand Down Expand Up @@ -496,16 +496,17 @@ class GrundkursWahl(wahlData: KurswahlData, fachData: FachData, notifier: (Boole
}

// Blockt Fremdsprachen die in Klasse 9+ begonnen wurden
for ((sprache, jahr) in wahlData.fremdsprachen) {

wahlData.fremdsprachen[1].let { (sprache, jahr) ->
if (jahr >= 9) {
// TODO bei Klasse 10 Belegungsverpflichtung für künstlerisches Fach entfernen
checkboxRows[fachPos(sprache)]!!.apply(
if (fachData.schultyp.jahre - 2 == jahr) DURCHGEHEND else ERSTES_ZWEITES,
if (fachData.schultyp == Schultyp.GYMNASIUM || jahr != 9) DURCHGEHEND else ERSTES_ZWEITES,
true
)

}
}
// TODO korrekte Bedingungen für Sekundarschulen implementieren (§10 Fremdsprachenunterricht)
// TODO bei Klasse 10 Belegungsverpflichtung für künstlerisches Fach entfernen
}

private fun fachPos(fach: Fach) = fachData.faecher.indexOf(fach)
Expand Down

0 comments on commit abb39e8

Please sign in to comment.