aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney/utils.py
diff options
context:
space:
mode:
authorNicolas Vanvyve <NVanvyve@users.noreply.github.com>2020-01-13 21:17:55 +0100
committerGlandos <bugs-github@antipoul.fr>2020-01-13 21:17:55 +0100
commit9aa7e62d0f77f27590dac1cae5603e8f7efb891f (patch)
treefdccec64b145d2600a18f300bfec5891acd5fc73 /ihatemoney/utils.py
parent73a4d139fffe3fdbabd0a47839eacc9964810066 (diff)
downloadihatemoney-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.py23
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