Verwendungsstatus: in der App umstellen, filtern und nachsehen
Im Einzelstueck steht jetzt ueber dem Verleih ein Abschnitt "Verwendung" mit vier Symbolen: verfuegbar, in Verwendung, in Reinigung, in Reparatur. Ein Tipp bucht sofort, ohne "Speichern" - wie beim Verleih, denn alle Scan-Wege (QR, NFC, vorrania://i/<UID>) landen genau in dieser Ansicht. Vier Woerter waeren auf einem iPhone zu breit, vier Symbole passen immer; darunter steht der Name im Klartext samt "seit wann". Dazu der Verwendungs-Verlauf mit Zeitstempeln und Konto, und in der Einzelstueck-Liste ein Filter ueber alle vier Zustaende plus die Zeile unter dem Namen, solange etwas laeuft. Stuecke ohne Verwendungsstatus fallen aus dem Filter "Verfuegbar" heraus - ein Schraubenzieher ist nicht verfuegbar, er fuehrt den Zustand gar nicht. Der Haken je Kategorie sitzt im Kategorie-Editor und gilt beim Bearbeiten auch fuer die Unterkategorien. Zwei Dinge, die beim Pruefen am Simulator auffielen: Die Leiste haette beim Oeffnen jedes Mal einmal ins Leere gebucht, weil onChange auch beim Laden feuert - dagegen der Abgleich mit dem zuletzt gemeldeten Stand. Und SQLite liefert Zeitstempel ohne Zeitzone, woran ISO8601DateFormatter scheitert; in der App stand deshalb der rohe ISO-Text. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b9d097fe96
commit
290ff9341a
@@ -339,6 +339,25 @@ actor APIClient {
|
||||
try await send(try makeRequest("/items/\(id)/loans"), as: [Loan].self)
|
||||
}
|
||||
|
||||
// MARK: - Verwendungsstatus
|
||||
|
||||
/// Umstellen; `status` nil heisst verfuegbar. Eigener Endpunkt aus
|
||||
/// demselben Grund wie Zubehoer, und weil updateItem Admins vorbehalten ist
|
||||
/// - umstellen darf jeder angemeldete Benutzer.
|
||||
///
|
||||
/// Antwortet mit dem ganzen Stueck, die Aufrufstelle braucht also kein
|
||||
/// zweites Laden.
|
||||
func setzeVerwendung(id: Int, status: VerwendungStatus?) async throws -> Item {
|
||||
var request = try makeRequest("/items/\(id)/verwendung", method: "PUT")
|
||||
try jsonBody(&request, VerwendungSetzenRequest(status: status?.rawValue))
|
||||
return try await send(request, as: Item.self)
|
||||
}
|
||||
|
||||
/// Verwendungs-Verlauf eines Stuecks, neueste zuerst.
|
||||
func itemVerwendungen(id: Int) async throws -> [Verwendung] {
|
||||
try await send(try makeRequest("/items/\(id)/verwendungen"), as: [Verwendung].self)
|
||||
}
|
||||
|
||||
/// Offene Verleihe, faelligste zuerst. `dueIn` grenzt auf die ein, deren
|
||||
/// Rueckgabe in so vielen Tagen ansteht (ueberfaellige sind immer dabei).
|
||||
func loans(dueIn: Int? = nil) async throws -> [Loan] {
|
||||
|
||||
Reference in New Issue
Block a user