def controller_menu_psw_contrato_sucesso(user, *args):
    menu_titulo("Menu PSW")

    if not user.is_authenticated:
        return controller_menu_inicial(user)

    if not DRIVER.autenticado:
        return controller_psw_login(user)

    opcoes = (
        {
            'texto': 'Retornar ao menu principal',
            'controller': controller_menu_principal,
        },
        {
            'texto': 'Realizar baixa da ONT no sistema',
            'controller': controller_ont_baixa,
        },
        {
            'texto': 'Buscar outro contrato',
            'controller': controller_psw_busca_contrato,
        },
    )

    context = {
        'opcoes': opcoes,
    }

    return menu(user, context, controller_menu_psw_contrato_sucesso, *args)
def controller_menu_psw_contrato_sem_dados(user, *args):
    menu_titulo("Menu PSW")

    if not user.is_authenticated:
        mensagem(({'type': 0, 'texto': 'Usuário não autenticado'}, ))
        return controller_menu_inicial(user)

    if not DRIVER.autenticado:
        mensagem(({'type': 0, 'texto': 'Usuário não autenticado no PSW'}, ))
        return controller_psw_login(user)

    opcoes = (
        {
            'texto': 'Retornar ao menu principal',
            'controller': controller_menu_principal,
        },
        {
            'texto':
            'Inserir contrato na lista de contratos pendentes de baixa',
            'controller': controller_ont_lista,
        },
        {
            'texto': 'Buscar outro contrato',
            'controller': controller_psw_busca_contrato,
        },
    )

    context = {
        'opcoes': opcoes,
    }

    return menu(user, context, controller_menu_psw_contrato_sem_dados, *args)
def controller_menu_principal(user, *args):
    menu_titulo("Menu Principal")

    if not user.is_authenticated:
        return controller_menu_inicial(user)

    opcoes = (
        {
            'texto': 'logout',
            'controller': controller_logout,
        },
        {
            'texto': 'realizar baixa de ONT\'s',
            'controller': controller_psw_login,
        },
        {
            'texto': 'Sair',
            'controller': controller_sair,
        },
    )

    context = {
        'opcoes': opcoes,
    }

    return menu(user, context, controller_menu_principal, *args)
def controller_menu_inicial(user, *args):
    menu_titulo("Menu inicial")

    if user.is_authenticated:
        return controller_menu_principal(user, *args)

    opcoes = (
        {
            'texto': 'Sair',
            'controller': controller_sair,
        },
        {
            'texto': 'autenticar no sistema Constel.tk',
            'controller': controller_login_web_constel,
        },
    )

    context = {
        'opcoes': opcoes,
    }

    return menu(user, context, controller_menu_inicial, *args)