feat(objekt): letzte abgeschlossene Kontrolle je Objekt anzeigen
Bisher nirgends vermerkt/abrufbar, wann ein Objekt zuletzt komplett
kontrolliert wurde (nur roh in kontrolle.beendet_am ableitbar). Neues Feld
ObjektRead.letzte_kontrolle_am (jüngste Kontrolle mit status=abgeschlossen),
angezeigt in Objektliste und Admin-Objektsektion ("noch nie kontrolliert"
falls keine).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
@@ -5,6 +5,38 @@ from app.schemas.vorlage import VorlagenpositionCreate
|
||||
from tests.conftest import auth_header, login
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_letzte_kontrolle_am_wird_erst_nach_abschluss_gesetzt(
|
||||
client, objekt_mit_position, mitarbeiter_user
|
||||
):
|
||||
"""Nutzer-Frage: wann war die letzte KOMPLETTE Kontrolle - vorher (None/
|
||||
"noch nie"), nach starte_kontrolle allein noch nicht (erst status=abgeschlossen
|
||||
zählt), erst nach /abschliessen gesetzt."""
|
||||
objekt, material = objekt_mit_position
|
||||
token = await login(client, "mitarbeiter1")
|
||||
|
||||
vor_kontrolle = await client.get(f"/api/v1/objekte/{objekt.id}", headers=auth_header(token))
|
||||
assert vor_kontrolle.json()["letzte_kontrolle_am"] is None
|
||||
|
||||
start = await client.post(
|
||||
f"/api/v1/objekte/{objekt.id}/kontrollen", json={"uebernehmen": False}, headers=auth_header(token)
|
||||
)
|
||||
kontrolle_id = start.json()["id"]
|
||||
await client.put(
|
||||
f"/api/v1/kontrollen/{kontrolle_id}/positionen/{material.id}",
|
||||
json={"istmenge": "10"},
|
||||
headers=auth_header(token),
|
||||
)
|
||||
|
||||
waehrend = await client.get(f"/api/v1/objekte/{objekt.id}", headers=auth_header(token))
|
||||
assert waehrend.json()["letzte_kontrolle_am"] is None # noch nicht abgeschlossen
|
||||
|
||||
await client.post(f"/api/v1/kontrollen/{kontrolle_id}/abschliessen", headers=auth_header(token))
|
||||
|
||||
nach_abschluss = await client.get(f"/api/v1/objekte/{objekt.id}", headers=auth_header(token))
|
||||
assert nach_abschluss.json()["letzte_kontrolle_am"] is not None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_objekt_aus_vorlage_startet_unkontrolliert(
|
||||
client, db_session, objekttyp_factory, material_factory, standort_factory, admin_user
|
||||
|
||||
Reference in New Issue
Block a user