nowe opcje w paragonacch

This commit is contained in:
Mateusz Gruszczyński
2025-07-20 22:08:55 +02:00
parent 62939a9e9a
commit 98f22e0bd1

15
app.py
View File

@@ -155,6 +155,7 @@ class Receipt(db.Model):
filesize = db.Column(db.Integer, nullable=True)
file_hash = db.Column(db.String(64), nullable=True, unique=True)
with app.app_context():
db.create_all()
from werkzeug.security import generate_password_hash
@@ -256,11 +257,12 @@ def enrich_list_data(l):
l.total_expense = sum(e.amount for e in expenses)
return l
def save_resized_image(file, path):
try:
image = Image.open(file)
image.verify() # sprawdzenie poprawności pliku
file.seek(0) # reset do początku
image.verify() # sprawdzenie poprawności pliku
file.seek(0) # reset do początku
image = Image.open(file) # ponowne otwarcie po verify()
except Exception:
raise ValueError("Nieprawidłowy plik graficzny")
@@ -989,7 +991,10 @@ def upload_receipt(list_id):
db.session.add(new_receipt)
db.session.commit()
if request.is_json or request.headers.get("X-Requested-With") == "XMLHttpRequest":
if (
request.is_json
or request.headers.get("X-Requested-With") == "XMLHttpRequest"
):
url = url_for("uploaded_file", filename=webp_filename)
socketio.emit("receipt_added", {"url": url}, to=str(list_id))
return jsonify({"success": True, "url": url})
@@ -1000,7 +1005,6 @@ def upload_receipt(list_id):
return _receipt_error("Niedozwolony format pliku")
@app.route("/uploads/<filename>")
def uploaded_file(filename):
response = send_from_directory(app.config["UPLOAD_FOLDER"], filename)
@@ -1264,6 +1268,7 @@ def rotate_receipt(receipt_id):
return redirect(request.referrer or url_for("admin_receipts", id="all"))
@app.route("/admin/rename_receipt/<int:receipt_id>")
@login_required
@admin_required
@@ -1317,6 +1322,7 @@ def delete_receipt(receipt_id):
return redirect(request.referrer or url_for("admin_receipts", id="all"))
@app.route("/admin/generate_receipt_hash/<int:receipt_id>")
@login_required
@admin_required
@@ -1332,6 +1338,7 @@ def generate_receipt_hash(receipt_id):
return redirect(request.referrer)
import hashlib
try:
with open(file_path, "rb") as f:
file_hash = hashlib.sha256(f.read()).hexdigest()