From f4bc3de3572e6d1d05d0d0c8c3bde8acb7d11375 Mon Sep 17 00:00:00 2001 From: WorldTeacher <41587052+WorldTeacher@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:11:13 +0200 Subject: [PATCH] add requirements, update documentation --- config/config.py | 12 +++++++++-- docs/Ausleihsystem.md | 34 ++++++++++++++++++++++++++++++- docs/MultiUser.md | 5 +++++ docs/Nutzeroberfläche.md | 4 ++-- docs/images/activeLoan.png | Bin 0 -> 15756 bytes docs/images/err_noBook.png | Bin 0 -> 4485 bytes docs/images/err_return.png | Bin 0 -> 5269 bytes docs/images/main_loan_active.png | Bin 0 -> 7547 bytes docs/images/multiUser.png | Bin 0 -> 9960 bytes docs/index.md | 5 +++-- requirements.txt | Bin 1834 -> 3222 bytes 11 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 docs/MultiUser.md create mode 100644 docs/images/activeLoan.png create mode 100644 docs/images/err_noBook.png create mode 100644 docs/images/err_return.png create mode 100644 docs/images/main_loan_active.png create mode 100644 docs/images/multiUser.png diff --git a/config/config.py b/config/config.py index 8741d83..59133e3 100644 --- a/config/config.py +++ b/config/config.py @@ -132,7 +132,8 @@ class Config: if self._config is None: raise RuntimeError("Configuration not loaded") omegaconf.OmegaConf.save(self._config, "config/settings.yaml") - def apply_options(options:list): + + def apply_options(self, options:list): if self._config is None: raise RuntimeError("Configuration not loaded") for option in options: @@ -148,7 +149,14 @@ class Config: def updateValue(self, key:str, value): if self._config is None: raise RuntimeError("Configuration not loaded") - self._config[key] = value + if "." in key: + keys = key.split(".") + if keys[0] in self._config: + self._config[keys[0]][keys[1]] = value + else: + raise KeyError(f"Option {keys[0]} not found in configuration") + else: + self._config[key] = value if __name__ == "__main__": cfg = Config("config/settings.yaml") #print(cfg.database.path) diff --git a/docs/Ausleihsystem.md b/docs/Ausleihsystem.md index 08246b8..d42b07b 100644 --- a/docs/Ausleihsystem.md +++ b/docs/Ausleihsystem.md @@ -19,7 +19,7 @@ Der Bereich beschränkt sich auf folgende Inhalte: Hier werden folgende Daten angezeigt -- Modus: entweder "Ausleihe" oder "Rückgabe" (1) +- Modus: entweder "Ausleihe" oder "Rückgabe" (1) Kann entweder durch anklicken des Knopfes oder mit dem Shortcut (Standard: `F5`) geändert werden - Matrikelnummer: die Matrikelnummer des Nutzers, um das Konto zu öffnen (3) - Benutzername: der Benutzername des Nutzers (3) - Signatur: die Signatur des Mediums, welches entliehen oder zurückgegeben wird (4) @@ -43,5 +43,37 @@ Dieser Bereich beschränkt sich auf folgende Inhalte: ### Historie (7) Das Feld der Historie listet alle Medien auf, die im aktiven Prozess ausgeliehen oder zurückgegeben wurden. +## Ausleihen + +Um ein Medium auszuleihen, muss zuerst ein Nutzer geöffnet sein. Dazu entweder den Knopf neben Modus drücken, oder den Shortcut (Standard: `F5`) verwenden. +Die Oberfläche sieht dann wie folgt aus: + +![Ausleihe](images/main_loan_active.png) +Der Cursor wird automatisch auf die Matrikelnummer gesetzt. Hier kann entweder die vollständige Nummer, oder ein Teil eingegeben werden. Sollten mehrere Nummern dem Teilfilter ensprechen, wird eine Auswahl angezeigt. (s. [MultiUser](MultiUser.md)) +Nach der Auswahl wird das entsprechende Konto geöffnet und die Ausleihe kann durchgeführt werden. + +![Ausleihe](images/activeLoan.png) + + +Sollte der aktive Nutzer aktive Ausleihen haben, so wird die Anzahl der Medien neben "Anzahl Ausleihen" angezeigt. Das nächste Rückgabedatum wird ebenfalls angezeigt. Über einen Klick auf die Zahl der Ausleihen gelangen Sie zur [Übersicht der Ausleihen des Nutzers](Nutzeroberfläche.md). + +Um ein Medium auszuleihen, muss die Signatur in die entsprechende Zeile eingegeben werden. Sollte die Signatur nicht in der Datenbank existieren, wird der definierte Katalog geprüft. Wird das Medium gefunden, wird es in die Datenbank übernommen und die Ausleihe wird durchgeführt. Sollte das Medium nicht gefunden werden, wird eine Fehlermeldung angezeigt. + +![FehlerAusleihe](images/err_noBook.png) + +!!! info + + Die Signatur muss mindestens ein Leerzeichen enthalten, ansonsten wird eine Fehlermeldung angezeigt. + +## Rückgaben + +!!! info + Rückgaben funktionieren nur, wenn kein Nutzer offen ist. Vor einer Rückgabe bitte sicherstellen, dass der Modus auf "Rückgabe" gesetzt ist. + +Um ein Medium zurückzugeben, muss die Signatur in die entsprechende Zeile eingegeben werden. Sollte die Signatur nicht existieren, wird eine Fehlermeldung angezeigt. + +![FehlerRückgabe](images/err_return.png) + +Existiert das Medium in der Datenbank und ist entliehen, wird die Rückgabe durchgeführt. Die Rückgabe wird in der Historie gespeichert und das Medium wird wieder als verfügbar markiert. Die Daten des Nutzers werden in der Oberfläche angezeigt. diff --git a/docs/MultiUser.md b/docs/MultiUser.md new file mode 100644 index 0000000..99be7a8 --- /dev/null +++ b/docs/MultiUser.md @@ -0,0 +1,5 @@ +# Mehrere Nutzer gefunden +![Mehrere Nutzer gefunden](images/multiUser.png) + +!!! info + Es wurden mehrere Nutzer gefunden, die auf die Suchanfrage passen. Bitte wählen Sie einen Nutzer aus der Liste aus, und bestätigen Sie mit `OK`. \ No newline at end of file diff --git a/docs/Nutzeroberfläche.md b/docs/Nutzeroberfläche.md index a3f1564..dc13a15 100644 --- a/docs/Nutzeroberfläche.md +++ b/docs/Nutzeroberfläche.md @@ -2,7 +2,7 @@ ![alt text](images/user_main.png) !!! info - Die Nutzeroberfläche kann nur geöffnet werden, wenn ein Nutzer offen ist. Ansonsten wird ein Fehler angezeigt. (s. unten) + Die Nutzeroberfläche kann nur geöffnet werden, wenn ein Nutzer offen ist. Ansonsten wird ein Fehler angezeigt. (s. unten) ![Error](images/err_nouser.png) @@ -14,7 +14,7 @@ - (2) Nutzer Löschen: - Mit dem Klick auf den Mülleimer wird der Nutzer gelöscht. Alle zugewiesenen Ausleihen werden in der [Ausleihhistorie](Ausleihhistorie.md) mit den Nutzerkonto `gelöscht` angezeigt. + Mit dem Klick auf den Mülleimer wird der Nutzer gelöscht. Alle zugewiesenen Ausleihen werden in der [Ausleihhistorie](Ausleihhistorie.md) mit den Nutzerkonto `gelöscht` angezeigt. Diese Option ist nur vorhanden, wenn keine Ausleihen aktiv sind. - (4) Medien: diff --git a/docs/images/activeLoan.png b/docs/images/activeLoan.png new file mode 100644 index 0000000000000000000000000000000000000000..83a6e1e8acf805dffab1ce3bc084a23ff0602909 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/docs/images/err_noBook.png b/docs/images/err_noBook.png new file mode 100644 index 0000000000000000000000000000000000000000..4a656f5cf88a04107a986cbce9a3b3fdae5164d8 GIT binary patch literal 4485 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 literal 0 HcmV?d00001 diff --git a/docs/images/err_return.png b/docs/images/err_return.png new file mode 100644 index 0000000000000000000000000000000000000000..05201bd186bf9229db0c6a351f9ad8918c5c7d67 GIT binary patch literal 5269 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 E7iA!(Bme*a literal 0 HcmV?d00001 diff --git a/docs/images/main_loan_active.png b/docs/images/main_loan_active.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd0009a53b34370ad02f368d50023088fe20b58 GIT binary patch literal 7547 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 literal 0 HcmV?d00001 diff --git a/docs/images/multiUser.png b/docs/images/multiUser.png new file mode 100644 index 0000000000000000000000000000000000000000..612d82247281f32708e6af43db28f835f28da550 GIT binary patch literal 9960 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 Zdhg>q+G`$cFrVqy!s9*+7Tc=N|6gQ>*kb?y delta 260 zcmbOxxr%SXu8B8X*o_$U7>pQ9Co3{$E1Cn@CJej`Tnxz!X+W6CU<-tXKv6>mGazX& zc|D`;WDX{U$$m^GtOg+Q$?Z&)lhv5Tz&zv0iOlAV=98IOePvU@`g0gk!DbjS7yxZC z2I>IWXFmBZtM23;HaV~^qsi;pG8ru=e`J%NY{jkx)IXnHnbBzSVRm~UxtT+I@;?qK zAWM={7f8BungYq4VD@uP*~vj%E{ukgr*mloMGtdXGMY}-<(3DsCvvM#{={uCIe^DP V4CHnbATD6YXDDVU0lER?M*x6|IdA{~