From df0ea96b417d2365199a99a5957bc1f6d0bdd435 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Fri, 17 Mar 2017 15:59:21 -0300 Subject: [PATCH] Adapt history_json return value to ModelForest standards --- kfet/views.py | 115 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 75 insertions(+), 40 deletions(-) diff --git a/kfet/views.py b/kfet/views.py index 888c8001..09755bbf 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -1397,77 +1397,112 @@ def history_json(request): opegroups = opegroups.filter(on_acc=request.user.profile.account_kfet) # Construction de la réponse - ope_list = [] + opegroup_list = [] for opegroup in opegroups: opegroup_dict = { - 'id': 'ope'+str(opegroup.id), 'type': 'opegroup', - 'amount': opegroup.amount, - 'at': opegroup.at, - 'is_cof': opegroup.is_cof, - 'comment': opegroup.comment, - 'trigramme': - opegroup.on_acc and opegroup.on_acc.trigramme or None, - 'day': {'id': opegroup.at.strftime('%Y%m%d'), - 'date': opegroup.at}, + 'content': { + 'id': opegroup.id, + 'amount': opegroup.amount, + 'at': opegroup.at, + 'is_cof': opegroup.is_cof, + 'comment': opegroup.comment, + 'trigramme': + opegroup.on_acc and opegroup.on_acc.trigramme or None, + }, + 'parent': { + 'type': 'day', + 'content': { + 'id': opegroup.at.strftime('%Y%m%d'), + 'date': opegroup.at + }, + 'child_sort': 'opegroup', + }, + 'children': [], } if request.user.has_perm('kfet.is_team'): - opegroup_dict['valid_by'] = ( + opegroup_dict['content']['valid_by'] = ( opegroup.valid_by and opegroup.valid_by.trigramme or None) + for ope in opegroup.opes.all(): ope_dict = { - 'id': 'ope'+str(ope.id), - 'type': ope.type, - 'amount': ope.amount, - 'article_nb': ope.article_nb, - 'is_checkout': ope.is_checkout, - 'addcost_amount': ope.addcost_amount, - 'canceled_at': ope.canceled_at, - 'article_name': - ope.article and ope.article.name or None, - 'addcost_for': - ope.addcost_for and ope.addcost_for.trigramme or None, - 'opegroup': opegroup_dict, + 'content': { + 'id': ope.id, + 'amount': ope.amount, + 'canceled_at': ope.canceled_at, + 'is_cof': opegroup.is_cof, + 'trigramme': + opegroup.on_acc and opegroup.on_acc.trigramme or None, + }, } if request.user.has_perm('kfet.is_team'): - ope_dict['canceled_by'] = ( + ope_dict['content']['canceled_by'] = ( ope.canceled_by and ope.canceled_by.trigramme or None) - ope_list.append(ope_dict) + + if ope.type == Operation.PURCHASE: + ope_dict['type'] = 'purchase' + ope_dict['content'].update({ + 'article_name': ope.article.name, + 'article_nb': ope.article_nb, + 'addcost_amount': ope.addcost_amount, + 'addcost_for': + ope.addcost_for and ope.addcost_for.trigramme or None, + }) + else: + ope_dict['type'] = 'specialope' + ope_dict['content'].update({ + 'type': ope.type, + 'is_checkout': ope.is_checkout, + }) + + opegroup_dict['children'].append(ope_dict) + opegroup_list.append(opegroup_dict) for transfergroup in transfergroups: if transfergroup.filtered_transfers: transfergroup_dict = { - 'id': 'tr'+str(transfergroup.id), 'type': 'transfergroup', - 'at': transfergroup.at, - 'comment': transfergroup.comment, - 'day': {'id': transfergroup.at.strftime('%Y%m%d'), - 'date': transfergroup.at}, + 'content': { + 'id': transfergroup.id, + 'at': transfergroup.at, + 'comment': transfergroup.comment, + }, + 'parent': { + 'type': 'day', + 'content': { + 'id': transfergroup.at.strftime('%Y%m%d'), + 'date': transfergroup.at + }, + }, + 'children': [], } + if request.user.has_perm('kfet.is_team'): - transfergroup_dict['valid_by'] = ( + transfergroup_dict['content']['valid_by'] = ( transfergroup.valid_by and transfergroup.valid_by.trigramme or None) for transfer in transfergroup.filtered_transfers: transfer_dict = { - 'id': 'tr'+str(transfer.id), 'type': 'transfer', - 'amount': transfer.amount, - 'canceled_at': transfer.canceled_at, - 'from_acc': transfer.from_acc.trigramme, - 'to_acc': transfer.to_acc.trigramme, - 'opegroup': transfergroup_dict, + 'content': { + 'id': transfer.id, + 'amount': transfer.amount, + 'canceled_at': transfer.canceled_at, + 'from_acc': transfer.from_acc.trigramme, + 'to_acc': transfer.to_acc.trigramme, + }, } if request.user.has_perm('kfet.is_team'): - transfer_dict['canceled_by'] = ( + transfer_dict['content']['canceled_by'] = ( transfer.canceled_by and transfer.canceled_by.trigramme or None) - ope_list.append(transfer_dict) + transfergroup_dict['children'].append(transfer_dict) + opegroup_list.append(transfergroup_dict) - return JsonResponse(ope_list, safe=False) + return JsonResponse(opegroup_list, safe=False) @teamkfet_required def kpsul_articles_data(request):