From 9aa7e62d0f77f27590dac1cae5603e8f7efb891f Mon Sep 17 00:00:00 2001 From: Nicolas Vanvyve Date: Mon, 13 Jan 2020 21:17:55 +0100 Subject: Import previously exported json data (#518) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #417 * New tab upload * Extract data from JSON * Add users * Black format * Try to add bill * Import bills * Add french translation msg * Black reformat missing * Deactivated users are supported * Test import * Remove temp file in upload_json() * Incomplete tests * tests import * Update ihatemoney/translations/fr/LC_MESSAGES/messages.po Co-Authored-By: Rémy HUBSCHER * Remove useless variable and check json format * Use String.IO and test for wrong json * Remove coma Co-authored-by: Rémy HUBSCHER --- ihatemoney/utils.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'ihatemoney/utils.py') diff --git a/ihatemoney/utils.py b/ihatemoney/utils.py index cdc11c9..126b9de 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 @@ -234,3 +236,24 @@ def eval_arithmetic_expression(expr): raise ValueError("Error evaluating expression: {}".format(expr)) return result + + +def get_members(file): + members_list = list() + for item in file: + if (item["payer_name"], item["payer_weight"]) not in members_list: + members_list.append((item["payer_name"], item["payer_weight"])) + for item in file: + for ower in item["owers"]: + if ower not in [i[0] for i in members_list]: + members_list.append((ower, 1)) + + return members_list + + +def same_bill(bill1, bill2): + attr = ["what", "payer_name", "payer_weight", "amount", "date", "owers"] + for a in attr: + if bill1[a] != bill2[a]: + return False + return True -- cgit v1.1