123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- 'use strict'
- // Then you can simply run the snake_casing code in $parseDatabaseJson or $formatJson
- // $formatJson is called when you res.send(someModel) or JSON.stringify(someModel).
- // const _ = require('lodash')
- const { Model } = require('objection')
- class Schueler extends Model {
- static get tableName () { return 'schueler' }
- static get virtualAttributes () {
- return ['anrede', 'akt_halbjahr', 'schueler_in', 'studierende_r', 'berufsbezeichnung_mw', 'volljaehrig']
- }
- // get akt_halbjahr () {
- // if (this.abschnitte) {
- // return _.last(this.abschnitte)
- // }
- // }
- get anrede () {
- return (this.Geschlecht === 3 ? 'Herr' : 'Frau')
- }
- get schueler_in () {
- return (this.Geschlecht === 3 ? 'Schüler' : 'Schülerin')
- }
- get studierende_r () {
- return (this.Geschlecht === 3 ? 'Studierender' : 'Studierende')
- }
- get berufsbezeichnung_mw () {
- if (this.fachklasse) return this.Geschlecht === 3 ? this.fachklasse.Bezeichnung : this.fachklasse.Beschreibung_W
- else return 'Keine Fachklasse zugeordnet'
- }
- get volljaehrig () {
- return this.Volljaehrig === '+'
- }
- volljaehrig_bei (datum) {
- if (!datum || !this.Geburtsdatum) return false
- var g = new Date(this.Geburtsdatum)
- var d = new Date(datum)
- return (d.getFullYear() - g.getFullYear() - ((d.getMonth() > g.getMonth() || (d.getMonth() === g.getMonth() && d.getDay() >= g.getDay())) ? 0 : 1)) >= 18
- }
- static get relationMappings () {
- return {
- fachklasse: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fachklasse,
- join: { from: 'schueler.Fachklasse_ID', to: 'eigeneschule_fachklassen.ID' }
- },
- abschnitte: {
- relation: Model.HasManyRelation,
- modelClass: Abschnitt,
- join: { from: 'schueler.ID', to: 'schuelerlernabschnittsdaten.Schueler_ID' }
- },
- vermerke: {
- relation: Model.HasManyRelation,
- modelClass: Vermerk,
- join: { from: 'schueler.ID', to: 'schuelervermerke.Schueler_ID' }
- },
- bk_abschluss: {
- relation: Model.HasOneRelation,
- modelClass: BKAbschluss,
- join: { from: 'schueler.ID', to: 'schuelerbkabschluss.Schueler_ID' }
- },
- bk_abschluss_faecher: {
- relation: Model.HasManyRelation,
- modelClass: BKAbschlussFach,
- join: { from: 'schueler.ID', to: 'schuelerbkfaecher.Schueler_ID' }
- },
- abi_abschluss: {
- relation: Model.HasOneRelation,
- modelClass: AbiAbschluss,
- join: { from: 'schueler.ID', to: 'schuelerabitur.Schueler_ID' }
- },
- abi_abschluss_faecher: {
- relation: Model.HasManyRelation,
- modelClass: AbiAbschlussFach,
- join: { from: 'schueler.ID', to: 'schuelerabifaecher.Schueler_ID' }
- },
- fhr_abschluss: {
- relation: Model.HasOneRelation,
- modelClass: FHRAbschluss,
- join: { from: 'schueler.ID', to: 'schuelerfhr.Schueler_ID' }
- },
- fhr_abschluss_faecher: {
- relation: Model.HasManyRelation,
- modelClass: FHRAbschlussFach,
- join: { from: 'schueler.ID', to: 'schuelerfhrfaecher.Schueler_ID' }
- },
- schuelerfoto: {
- relation: Model.HasOneRelation,
- modelClass: Schuelerfoto,
- join: { from: 'schueler.ID', to: 'schuelerfotos.Schueler_ID' }
- },
- sprachenfolgen: {
- relation: Model.HasManyRelation,
- modelClass: Sprachenfolge,
- join: { from: 'schueler.ID', to: 'schuelersprachenfolge.Schueler_ID' }
- },
- versetzung: {
- relation: Model.HasOneRelation,
- modelClass: Versetzung,
- join: { from: 'schueler.Klasse', to: 'versetzung.Klasse' }
- }
- }
- }
- }
- class Fachklasse extends Model {
- static get tableName () { return 'eigeneschule_fachklassen' }
- }
- class Abschnitt extends Model {
- static get tableName () { return 'schuelerlernabschnittsdaten' }
- static get virtualAttributes () {
- return ['v_name_klassenlehrer', 'klassenlehrer_in', 'schuljahr']
- }
- get v_name_klassenlehrer () {
- if (this.lehrer) return `${this.lehrer.Vorname[0]}. ${this.lehrer.Nachname}`
- }
- get klassenlehrer_in () {
- if (this.lehrer) return (this.lehrer.Geschlecht === '3' ? 'Klassenlehrer' : 'Klassenlehrerin')
- }
- get schuljahr () {
- return `${this.Jahr}/${this.Jahr - 1999}`
- }
- static get relationMappings () {
- return {
- lehrer: {
- relation: Model.BelongsToOneRelation,
- modelClass: Lehrer,
- join: { from: 'schuelerlernabschnittsdaten.KlassenLehrer', to: 'k_lehrer.Kuerzel' }
- },
- fachklasse: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fachklasse,
- join: { from: 'schuelerlernabschnittsdaten.Fachklasse_ID', to: 'eigeneschule_fachklassen.ID' }
- },
- noten: {
- relation: Model.HasManyRelation,
- modelClass: Note,
- join: { from: 'schuelerlernabschnittsdaten.ID', to: 'schuelerleistungsdaten.Abschnitt_ID' }
- }
- }
- }
- }
- class Jahrgang extends Model {
- static get tableName () { return 'eigeneschule_jahrgaenge' }
- }
- class Versetzung extends Model {
- static get tableName () { return 'versetzung' }
- static get relationMappings () {
- return {
- jahrgang: {
- relation: Model.BelongsToOneRelation,
- modelClass: Jahrgang,
- join: { from: 'versetzung.Jahrgang_ID', to: 'eigeneschule_jahrgaenge.ID' }
- },
- fachklasse: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fachklasse,
- join: { from: 'versetzung.Fachklasse_ID', to: 'eigeneschule_fachklassen.ID' }
- },
- schueler: {
- relation: Model.HasManyRelation,
- modelClass: Schueler,
- join: { from: 'versetzung.Klasse', to: 'schueler.Klasse' }
- }
- }
- }
- }
- class Lehrer extends Model {
- static get tableName () { return 'k_lehrer' }
- }
- class Note extends Model {
- static get tableName () { return 'schuelerleistungsdaten' }
- static get relationMappings () {
- return {
- fach: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fach,
- join: { from: 'schuelerleistungsdaten.Fach_ID', to: 'eigeneschule_faecher.ID' }
- }
- }
- }
- }
- class Fach extends Model {
- static get tableName () { return 'eigeneschule_faecher' }
- static get relationMappings () {
- return {
- fach_gliederungen: {
- relation: Model.HasManyRelation,
- modelClass: FachGliederung,
- join: { from: 'eigeneschule_faecher.ID', to: 'fach_gliederungen.Fach_ID' }
- }
- }
- }
- }
- class BKAbschluss extends Model {
- static get tableName () { return 'schuelerbkabschluss' }
- }
- class BKAbschlussFach extends Model {
- static get tableName () { return 'schuelerbkfaecher' }
- static get relationMappings () {
- return {
- fach: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fach,
- join: { from: 'schuelerbkfaecher.Fach_ID', to: 'eigeneschule_faecher.ID' }
- }
- }
- }
- }
- class AbiAbschluss extends Model {
- static get tableName () { return 'schuelerabitur' }
- }
- class AbiAbschlussFach extends Model {
- static get tableName () { return 'schuelerabifaecher' }
- static get relationMappings () {
- return {
- fach: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fach,
- join: { from: 'schuelerabifaecher.Fach_ID', to: 'eigeneschule_faecher.ID' }
- }
- }
- }
- }
- class FHRAbschluss extends Model {
- static get tableName () { return 'schuelerfhr' }
- }
- class FHRAbschlussFach extends Model {
- static get tableName () { return 'schuelerfhrfaecher' }
- static get relationMappings () {
- return {
- fach: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fach,
- join: { from: 'schuelerfhrfaecher.Fach_ID', to: 'eigeneschule_faecher.ID' }
- }
- }
- }
- }
- class Sprachenfolge extends Model {
- static get tableName () { return 'schuelersprachenfolge' }
- static get relationMappings () {
- return {
- fach: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fach,
- join: { from: 'schuelersprachenfolge.Fach_ID', to: 'eigeneschule_faecher.ID' }
- }
- }
- }
- }
- class FachGliederung extends Model {
- static get tableName () { return 'fach_gliederungen' }
- static get relationMappings () {
- return {
- fachklasse: {
- relation: Model.BelongsToOneRelation,
- modelClass: Fachklasse,
- join: { from: 'fach_gliederungen.Fachklasse_ID', to: 'eigeneschule_fachklassen.ID' }
- }
- }
- }
- }
- class Vermerk extends Model {
- static get tableName () { return 'schuelervermerke' }
- }
- class Schuelerfoto extends Model {
- static get tableName () { return 'schuelerfotos' }
- }
- class Schule extends Model {
- static get tableName () { return 'eigeneschule' }
- static get virtualAttributes () {
- return ['schulleiter_in']
- }
- get schulleiter_in () {
- return this.SchulleiterGeschlecht === 3 ? 'Schulleiter' : 'Schulleiterin'
- }
- }
- class Nutzer extends Model {
- static get tableName () { return 'users' }
- }
- module.exports = {Schueler,
- Abschnitt,
- Fachklasse,
- Versetzung,
- Lehrer,
- Note,
- Fach,
- BKAbschluss,
- BKAbschlussFach,
- AbiAbschluss,
- AbiAbschlussFach,
- FHRAbschluss,
- FHRAbschlussFach,
- Sprachenfolge,
- FachGliederung,
- Vermerk,
- Schuelerfoto,
- Schule,
- Nutzer,
- Jahrgang}
|