Remove temp file in upload_json()

This commit is contained in:
Nicolas Vanvyve 2020-01-08 17:33:05 +01:00
parent 7e6fc168e8
commit 51b7d2caff
2 changed files with 7 additions and 14 deletions

View file

@ -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)

View file

@ -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("/<project_id>/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