[pricelist] save and load pictures
This commit is contained in:
parent
eb1e146da9
commit
dca890dad9
|
@ -137,8 +137,17 @@ class Drink(db.Model, ModelSerializeMixin):
|
|||
cost_price_pro_volume: Optional[float] = db.Column(db.Numeric(precision=5, scale=3, asdecimal=False))
|
||||
cost_price_package_netto: Optional[float] = db.Column(db.Numeric(precision=5, scale=3, asdecimal=False))
|
||||
|
||||
uuid = db.Column(db.String(36))
|
||||
|
||||
_type_id = db.Column("type_id", db.Integer, db.ForeignKey("drink_type.id"))
|
||||
|
||||
tags: Optional[list[Tag]] = db.relationship("Tag", secondary=drink_tag_association, cascade="save-update, merge")
|
||||
type: Optional[DrinkType] = db.relationship("DrinkType", foreign_keys=[_type_id])
|
||||
volumes: list[DrinkPriceVolume] = db.relationship(DrinkPriceVolume)
|
||||
|
||||
|
||||
class _Picture:
|
||||
"""Wrapper class for pictures binaries"""
|
||||
|
||||
mimetype = ""
|
||||
binary = bytearray()
|
||||
|
|
|
@ -2,10 +2,13 @@ from werkzeug.exceptions import BadRequest, NotFound
|
|||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
from flaschengeist import logger
|
||||
from flaschengeist.config import config
|
||||
from flaschengeist.database import db
|
||||
from .models import Drink, DrinkPrice, Ingredient, Tag, DrinkType, DrinkPriceVolume, DrinkIngredient, ExtraIngredient
|
||||
|
||||
from math import ceil
|
||||
from flaschengeist.utils.picture import save_picture, get_picture
|
||||
|
||||
from uuid import uuid4
|
||||
|
||||
|
||||
def update():
|
||||
|
@ -366,3 +369,20 @@ def delete_extra_ingredient(identifier):
|
|||
extra_ingredient = get_extra_ingredient(identifier)
|
||||
db.session.delete(extra_ingredient)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def save_drink_picture(identifier, file):
|
||||
drink = get_drink(identifier)
|
||||
if not drink.uuid:
|
||||
drink.uuid = str(uuid4())
|
||||
db.session.commit()
|
||||
path = config["pricelist"]["path"]
|
||||
save_picture(file, f"{path}/{drink.uuid}")
|
||||
|
||||
|
||||
def get_drink_picture(identifier, size=None):
|
||||
drink = get_drink(identifier)
|
||||
if not drink.uuid:
|
||||
raise BadRequest
|
||||
path = config["pricelist"]["path"]
|
||||
return get_picture(f"{path}/{drink.uuid}")
|
||||
|
|
Loading…
Reference in New Issue