neue Archivfunktion und Optimierung an Artikelbearbeitung
This commit is contained in:
@@ -12,6 +12,7 @@ from sqlalchemy.exc import IntegrityError
|
||||
|
||||
from app.deps import DbSession, VerifiedUser
|
||||
from app.models import Article, Category, ListItem, Market
|
||||
from app.article_ops import change_item_article
|
||||
from app.list_view import build_view, item_out
|
||||
from app.print_view import render_print
|
||||
from app.permissions import EditableList, ReadableList, bump_rev
|
||||
@@ -132,6 +133,13 @@ def update_item(
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, "Eintrag nicht gefunden")
|
||||
|
||||
data = payload.model_dump(exclude_unset=True)
|
||||
rev = bump_rev(db, lst.id)
|
||||
|
||||
if data.get("article_name"):
|
||||
try:
|
||||
change_item_article(db, lst, item, data["article_name"], rev)
|
||||
except ValueError as exc:
|
||||
raise HTTPException(status.HTTP_400_BAD_REQUEST, str(exc)) from None
|
||||
|
||||
if payload.clear_market:
|
||||
item.market_id = None
|
||||
@@ -150,7 +158,7 @@ def update_item(
|
||||
if field in data:
|
||||
setattr(item, field, data[field])
|
||||
|
||||
item.row_rev = bump_rev(db, lst.id)
|
||||
item.row_rev = rev
|
||||
# Nach dem Setzen der Felder: Der Preis wird nur festgehalten, wenn
|
||||
# auch ein Markt zugeordnet ist - ohne den ergibt er keinen
|
||||
# Vergleichswert.
|
||||
|
||||
Reference in New Issue
Block a user