diff options
| author | Nicolas Vanvyve <NVanvyve@users.noreply.github.com> | 2020-01-13 21:17:55 +0100 |
|---|---|---|
| committer | Glandos <bugs-github@antipoul.fr> | 2020-01-13 21:17:55 +0100 |
| commit | 9aa7e62d0f77f27590dac1cae5603e8f7efb891f (patch) | |
| tree | fdccec64b145d2600a18f300bfec5891acd5fc73 /ihatemoney/utils.py | |
| parent | 73a4d139fffe3fdbabd0a47839eacc9964810066 (diff) | |
| download | ihatemoney-mirror-9aa7e62d0f77f27590dac1cae5603e8f7efb891f.zip ihatemoney-mirror-9aa7e62d0f77f27590dac1cae5603e8f7efb891f.tar.gz ihatemoney-mirror-9aa7e62d0f77f27590dac1cae5603e8f7efb891f.tar.bz2 | |
Import previously exported json data (#518)
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 <hubscher.remy@gmail.com>
* Remove useless variable and check json format
* Use String.IO and test for wrong json
* Remove coma
Co-authored-by: Rémy HUBSCHER <hubscher.remy@gmail.com>
Diffstat (limited to 'ihatemoney/utils.py')
| -rw-r--r-- | ihatemoney/utils.py | 23 |
1 files changed, 23 insertions, 0 deletions
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 |
