|
@@ -1,81 +1,84 @@
|
|
|
<script>
|
|
|
import { parse } from "papaparse";
|
|
|
import { configData, db } from "./../stores.js";
|
|
|
- import * as notifier from './../notifier.js'
|
|
|
+ import * as notifier from "./../notifier.js";
|
|
|
|
|
|
let datensatz_schueler = "",
|
|
|
datensatz_medien = "",
|
|
|
- datensatz_sonstige = {nichtschueler: 1, memo: ''},
|
|
|
+ datensatz_sonstige = { nichtschueler: 1, memo: "" },
|
|
|
warten;
|
|
|
|
|
|
const update_sonstige = () => {
|
|
|
try {
|
|
|
- $db.prepare(`
|
|
|
+ console.log(
|
|
|
+ $db
|
|
|
+ .prepare(
|
|
|
+ `
|
|
|
INSERT INTO schueler (name, vorname, nichtschueler, memo) VALUES(:name, :vorname, :nichtschueler, :memo)
|
|
|
- `).run(datensatz_sonstige)
|
|
|
- } catch (e) { console.log(e) }
|
|
|
- }
|
|
|
+ `
|
|
|
+ )
|
|
|
+ .run(datensatz_sonstige)
|
|
|
+ );
|
|
|
+ datensatz_sonstige = { nichtschueler: 1, memo: "" };
|
|
|
+ notifier.fertig("Nutzer hinzugefügt");
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ notifier.fehler("Fehler beim Hinzufügen des Nutzers:", e.message);
|
|
|
+ }
|
|
|
+ };
|
|
|
const update_schueler = async () => {
|
|
|
warten = true;
|
|
|
const res = await parse(datensatz_schueler, {
|
|
|
comments: "#",
|
|
|
- header: true
|
|
|
+ header: true,
|
|
|
});
|
|
|
// id|name|vorname|jahr|klasse|kurs|kurs_lehrer
|
|
|
const values = res.data;
|
|
|
let schueler = {},
|
|
|
kurse = {};
|
|
|
- values.forEach(v => {
|
|
|
- schueler[v.id] = [
|
|
|
- v.id,
|
|
|
- v.jahr,
|
|
|
- v.klasse,
|
|
|
- v.name,
|
|
|
- v.vorname
|
|
|
- ];
|
|
|
+ values.forEach((v) => {
|
|
|
+ schueler[v.id] = [v.id, v.jahr, v.klasse, v.name, v.vorname];
|
|
|
});
|
|
|
- const jahr = values[0].jahr
|
|
|
+ const jahr = values[0].jahr;
|
|
|
const schueler_values = Object.values(schueler)
|
|
|
- .map(
|
|
|
- a => `(${a[0]}, ${a[1]}, '${a[2]}', '${a[3]}', '${a[4]}')`
|
|
|
- )
|
|
|
+ .map((a) => `(${a[0]}, ${a[1]}, '${a[2]}', '${a[3]}', '${a[4]}')`)
|
|
|
.join(",");
|
|
|
const kurszugehoerigkeit_values = values
|
|
|
- .map(v => `(${v.id}, '${v.kurs_lehrer||''}', '${v.kurs||''}')`)
|
|
|
+ .map((v) => `(${v.id}, '${v.kurs_lehrer || ""}', '${v.kurs || ""}')`)
|
|
|
.join(",");
|
|
|
const query = [
|
|
|
`DELETE FROM schueler WHERE NOT EXISTS ( SELECT * FROM ausleihe WHERE ausleihe.schueler_id = schueler.id)`,
|
|
|
`INSERT INTO schueler (schild_id, jahr, klasse, name, vorname) VALUES ${schueler_values}
|
|
|
ON CONFLICT (schild_id) DO UPDATE SET jahr = ${jahr}`,
|
|
|
`DELETE FROM kurszugehoerigkeit`,
|
|
|
- `INSERT INTO kurszugehoerigkeit (schild_id, kurs_lehrer, kurs) VALUES ${kurszugehoerigkeit_values}`
|
|
|
+ `INSERT INTO kurszugehoerigkeit (schild_id, kurs_lehrer, kurs) VALUES ${kurszugehoerigkeit_values}`,
|
|
|
];
|
|
|
try {
|
|
|
- query.forEach(q => $db.prepare(q).run());
|
|
|
- datensatz_schueler = ''
|
|
|
- notifier.fertig('Schüler importiert')
|
|
|
+ query.forEach((q) => $db.prepare(q).run());
|
|
|
+ datensatz_schueler = "";
|
|
|
+ notifier.fertig("Schüler importiert");
|
|
|
} catch (e) {
|
|
|
- notifier.fehler('Fehler beim Schülerimport:', e.message)
|
|
|
- console.log(e)
|
|
|
+ notifier.fehler("Fehler beim Schülerimport:", e.message);
|
|
|
+ console.log(e);
|
|
|
}
|
|
|
warten = false;
|
|
|
};
|
|
|
const update_medien = async () => {
|
|
|
const res = await parse(datensatz_medien, { comments: "#" });
|
|
|
const values = res.data;
|
|
|
- const medien = values.map(b => b[0]);
|
|
|
+ const medien = values.map((b) => b[0]);
|
|
|
const insert = $db.prepare(
|
|
|
"INSERT INTO medienbezeichnung (name) VALUES (?)"
|
|
|
);
|
|
|
- const insertMany = $db.transaction(medien => {
|
|
|
+ const insertMany = $db.transaction((medien) => {
|
|
|
for (const medium of medien) insert.run(medium);
|
|
|
});
|
|
|
try {
|
|
|
insertMany(medien);
|
|
|
datensatz_medien = "";
|
|
|
- notifier.fertig('Medientitel importiert')
|
|
|
+ notifier.fertig("Medientitel importiert");
|
|
|
} catch (e) {
|
|
|
- notifier.fehler('Fehler beim Medienimport:', e.message)
|
|
|
+ notifier.fehler("Fehler beim Medienimport:", e.message);
|
|
|
console.log(e);
|
|
|
}
|
|
|
};
|
|
@@ -95,12 +98,16 @@
|
|
|
<div class="box">
|
|
|
<h3 class="title">Schüler, Kurse und Zugehörigkeiten importieren</h3>
|
|
|
<div class="field">
|
|
|
- <label class="label">Achtung, die Nutzerdatenbank wird komplett geleert und mit den neuen Daten ersetzt. Ausgenommen sind säumige Nutzer und sonstige Nutzer.</label>
|
|
|
+ <label class="label">
|
|
|
+ Achtung, die Nutzerdatenbank wird komplett geleert und mit den neuen Daten
|
|
|
+ ersetzt. Ausgenommen sind säumige Nutzer und sonstige Nutzer.
|
|
|
+ </label>
|
|
|
<div class="control">
|
|
|
<textarea
|
|
|
class="textarea"
|
|
|
bind:value={datensatz_schueler}
|
|
|
- placeholder="Füge Daten mit Kopfzeile ein: id|name|vorname|jahr|klasse|kurs|kurs_lehrer"
|
|
|
+ placeholder="Füge Daten mit Kopfzeile ein:
|
|
|
+ id|name|vorname|jahr|klasse|kurs|kurs_lehrer"
|
|
|
rows="10"
|
|
|
cols="20" />
|
|
|
</div>
|