Джанго посмотреть поток данных - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть функциональный сервис 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)

Я ожидаю что-то вроде изображения с деревом решений или рабочим процессом этого представления.

...