From 51b7d2caff938c2d1a98420c7de657a88e009b3d Mon Sep 17 00:00:00 2001 From: Nicolas Vanvyve Date: Wed, 8 Jan 2020 17:33:05 +0100 Subject: [PATCH] Remove temp file in upload_json() --- ihatemoney/utils.py | 7 ++----- ihatemoney/web.py | 14 +++++--------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/ihatemoney/utils.py b/ihatemoney/utils.py index 5c19007f..126b9dee 100644 --- a/ihatemoney/utils.py +++ b/ihatemoney/utils.py @@ -4,6 +4,7 @@ import ast import operator from io import BytesIO, StringIO + import jinja2 from json import dumps, JSONEncoder from flask import redirect, current_app @@ -11,6 +12,7 @@ from babel import Locale from werkzeug.routing import HTTPException, RoutingException from datetime import datetime, timedelta + import csv @@ -255,8 +257,3 @@ def same_bill(bill1, bill2): if bill1[a] != bill2[a]: return False return True - - -def parse_date(string_date): - date = string_date.split("-") - return datetime(int(date[0]), int(date[1]), int(date[2]), 0, 0, 0) diff --git a/ihatemoney/web.py b/ihatemoney/web.py index c342f7f6..ada7688a 100644 --- a/ihatemoney/web.py +++ b/ihatemoney/web.py @@ -13,6 +13,7 @@ import os from functools import wraps from smtplib import SMTPRecipientsRefused +from dateutil.parser import parse from flask import ( abort, Blueprint, @@ -53,7 +54,6 @@ from ihatemoney.utils import ( LoginThrottler, get_members, same_bill, - parse_date, ) main = Blueprint("main", __name__) @@ -399,17 +399,13 @@ def edit_project(): @main.route("//upload_json", methods=["GET", "POST"]) def upload_json(): form = UploadForm() - pid = g.project.id if form.validate_on_submit(): - filename = pid + "_uploaded_bills.json" - form.file.data.save(filename) + file = form.file.data.stream.read() try: - import_project(filename) + import_project(file) flash(_("Project successfully uploaded")) except ValueError: flash(_("Invalid JSON"), category="error") - finally: - os.remove(filename) return redirect(url_for("main.list_bills")) return render_template("upload_json.html", form=form) @@ -417,7 +413,7 @@ def upload_json(): def import_project(file): # From json : export list of members - json_file = json.load(open(file)) + json_file = json.loads(file) members_json = get_members(json_file) members = g.project.members members_already_here = list() @@ -463,7 +459,7 @@ def import_project(file): form = get_billform_for(g.project) form.what = b["what"] form.amount = b["amount"] - form.date = parse_date(b["date"]) + form.date = parse(b["date"]) form.payer = id_dict[b["payer_name"]] form.payed_for = owers_id