У меня есть функциональный сервис django в течение более одного года, который реализует некоторые безумные правила оплаты для команды продаж. Иногда директора меняют эти правила, поэтому для экономии времени в деликатной части кода мне нужен быстрый способ анализа потока информации в представлении django. Кстати, у меня есть огромные тесты, чтобы проверить, не взорвало ли какое-нибудь изменение всю систему Представление интереса показано ниже.
from datetime import date
from collections import OrderedDict
from sales_report.models import *
from django.http import JsonResponse
from django.contrib.auth.decorators import login_required
from itertools import chain
import pprint
from django.conf import settings
def report(request, month, year):
month_lock_status = report_lock.get_month(month, year)
if month_lock_status['cod'] != 'ok':
return JsonResponse(month_lock_status)
if month_lock_status['msg'].is_locked == 1:
response = {
'cod': 'report month is locked',
'msg': 'Carga travada para mês: ' + str(month) + ' ano: ' + str(year)
}
return JsonResponse(response)
if month_lock_status['msg'].is_locked == 0:
seller_history.clear_data(month, year)
seller_report.clear_data(month, year)
# sellers = seller.get_active_sellers()
list_of_sellers = {}
total_sales = 0
total_payment = 0
special_super_prize = prize.get_super_prize()
ret = ''
# É necessário percorrer os supervisores depois para que se faça o cálculo dos ganhos da equipe
non_managers_qs = role_hist.get_managers(month, year, False)
managers_qs = role_hist.get_managers(month, year, True)
sellers = chain(non_managers_qs, managers_qs)
if settings.TESTING:
print('\n\nsales_report/views/report.py')
pprint.pprint('vendedores: ' + str(len(non_managers_qs)))
pprint.pprint('gerentes: ' + str(len(managers_qs)))
# percorre apenas os vendedores ativos
for s in sellers:
"""
Lots of decisions
"""
if ret == '':
ret = 'ok'
response = {
'cod': 'report ok',
'msg': ret
}
return JsonResponse(response)
Я ожидаю что-то вроде изображения с деревом решений или рабочим процессом этого представления.