def processa(ses, atrs):

    try:
        # Separa o atributo 'poltronas' em {val_pos}:
        if 'poltronas' in atrs:
            esp_pols = atrs[
                'poltronas']  # String que especfica poltronas e preços.
            del atrs['poltronas']
        else:
            raise ErroAtrib("Coloque as poltronas do trecho.\"")

        # Tenta criar o trecho:
        assert 'encerrado' in atrs
        if atrs['encerrado'] == 'on': atrs['encerrado'] = True  # Necessario?

        trc = trecho.cria(atrs)
        pols = poltrona.cria_conjunto(trc, esp_pols)

        # Mostra o trecho criado:
        pag = html_pag_trecho.gera(ses, trc, None, "Trecho criado")
    except ErroAtrib as ex:
        erros = ex.args[0]
        # Repete a página de acrescentar trecho com os mesmos argumentos e mens de erro:
        pag = html_pag_trecho.gera(ses, None, atrs, erros)
    return pag
예제 #2
0
def processa(ses, args):

    assert ses != None, "Este comando só pode ser usado após login"
    assert sessao.eh_administrador(
        ses), "Este comando é reservado para administradores"

    args = args.copy()  # Por via das dúvidas.

    # Trecho a alterar:
    id_trc = args["id_trecho"] if 'id_trecho' in args else None
    assert id_trc != None  # Paranoia (formulario deve incluir).
    args.pop("id_trecho")
    trc = trecho.busca_por_identificador(id_trc)
    assert trc != None

    try:
        atrs_muda = {'encerrado': True}
        trecho.muda_atributos(trc, atrs_muda)

        # Repete a página de ver trecho com valores correntes (alterados):
        pag = html_pag_trecho.gera(ses, trc, None, "Trecho encerrado")

    except ErroAtrib as ex:
        erros = ex.args[0]
        # Repete a página de ver trecho com os mesmos argumentos e mens de erro:
        pag = html_pag_trecho.gera(ses, trc, args, erros)
    return pag
def processa(ses, args):

    admin = False if ses == None else sessao.eh_administrador(ses)
    assert admin  # Paranóia (cliente comum e deslogado não deeveria ter acesso a este cmd)

    # Obtem o trecho a clonar e seus atributos:
    id_trc = args['id_trecho'] if 'id_trecho' in args else None
    assert id_trc != None  # Paranóia (formulário/botão deveria especificar).
    del args['id_trecho']
    trc = trecho.busca_por_identificador(id_trc)
    assert id_trc != None  # Paranóia.

    # Obtem os atributos correntes do trecho:
    atrs_clone = trecho.obtem_atributos(trc)

    # Elimina atributos que não podem ser mantidos:
    del atrs_clone['dia_partida']
    del atrs_clone['hora_partida']
    del atrs_clone['dia_chegada']
    del atrs_clone['hora_chegada']

    # Acrescenta especificação de poltronas:
    ids_pols = poltrona.busca_por_trecho(trc)
    nums_precos = poltrona.obtem_numeros_e_precos(ids_pols)
    esp_poltronas = resume_numeros_e_precos(nums_precos)
    atrs_clone['poltronas'] = esp_poltronas

    # Mostra página de novo trecho com esses atributos:
    pag = html_pag_trecho.gera(ses, None, atrs_clone, None)
    return pag
def processa(ses, args):
    admin = False if ses == None else sessao.eh_administrador(ses)
    assert admin  # Paranóia (cliente comum e deslogado não deveria ter acesso).

    assert not 'id_trecho' in args  # Paranóia  (formulário não deveria ter este campo).
    pag = html_pag_trecho.gera(ses, None, None, None)
    return pag
예제 #5
0
def processa(ses, args):

    args = args.copy()  # Por via das dúvidas.

    id_trc = args["id_trecho"]
    assert id_trc != None  # Paranóia (formulário deve incluir).
    args.pop("id_trecho")
    trc = trecho.busca_por_identificador(id_trc)
    assert trc != None  # Paranóia.

    # Tenta editar o trecho:
    try:
        trecho.muda_atributos(trc, args)
        # Repete a página de alterar trecho com valores correntes (alterados):
        pag = html_pag_trecho.gera(ses, trc, None, None)
    except ErroAtrib as ex:
        erros = ex.args[0]
        # Repete a página de alterar trecho com os mesmos argumentos e mens de erro:
        pag = html_pag_trecho.gera(ses, trc, args, erros)
    return pag
예제 #6
0
def processa(ses, args):

    admin = False if ses == None else sessao.eh_administrador(ses)
    assert admin  # Paranóia (cliente comum e deslogado não deveria ter acesso a este cmd).

    # Obtem o trecho a alterar:
    id_trc = args['id_trecho'] if 'id_trecho' in args else None
    assert id_trc != None  # Paranóia (formulário deveria especificar).
    trc = trecho.busca_por_identificador(id_trc)
    assert trc != None  # Paranóia.

    pag = html_pag_trecho.gera(ses, trc, None, None)
    return pag
def processa(ses, args):

    # Validações, por via das dúvidas:
    assert 'id_trecho' in args  # Deveria acontecer

    # Monta página:
    id_trecho = args['id_trecho']
    trc = trecho.busca_por_identificador(id_trecho)
    if trc == None:
        erros = ["trecho \"" + id_trecho + "\" não existe"]
        pag = html_pag_mensagem_de_erro(ses, erros)
    else:
        pag = html_pag_trecho.gera(ses, trc, None, None)
    return pag
예제 #8
0
def processa(ses, args):
    usr_ses = None if ses == None else sessao.obtem_usuario(ses)
    assert sessao.eh_administrador(
        ses)  # O dono da sessão deve ser administrador.
    try:
        if not 'id' in args:
            pag = html_pag_mensagem_de_erro.gera(
                ses, 'É necessário adicionar um ID para pesquisar.')
            return pag

        id = args['id']
        if len(id) != 10:
            raise ErroAtrib("O identificador \"" + id + "\" é inválido")

        letra = id[0]
        if letra == "U":
            usr = usuario.busca_por_identificador(id)
            if usr == None:
                raise ErroAtrib("Não existe usuário com identificador " + id)
            usr_atrs = usuario.obtem_atributos(usr)
            usr_atrs['id_usuario'] = usuario.obtem_identificador(usr)
            pag = html_pag_usuario.gera(ses, usr, usr_atrs, None)
        elif letra == "C":
            cpr = compra.busca_por_identificador(id)
            if cpr == None:
                raise ErroAtrib(
                    "Não existe pedido de compra com identificador" + id)
            pag = html_pag_compra.gera(ses, cpr, None, None)
        elif letra == "T":
            trc = trecho.busca_por_identificador(id)
            if trc == None:
                raise ErroAtrib(
                    "Não existe trecho de viagem com identificador" + id)
            pag = html_pag_trecho.gera(ses, trc, None, None)
        elif letra == "S":
            ses_a_ver = sessao.busca_por_identificador(id)
            if ses_a_ver == None:
                raise ErroAtrib("Não existe sessão com identificador" + id)
            pag = html_pag_sessao.gera(ses, ses_a_ver, None)
        elif letra == "A":
            pol = poltrona.busca_por_identificador(id)
            if pol == None:
                raise ErroAtrib("Não existe poltrona com identificador" + id)
            pag = html_pag_poltrona.gera(ses, pol, None, None)
        else:
            raise ErroAtrib("Classe de objeto \"" + letra + "\" inválida")
    except ErroAtrib as ex:
        erros = ex.args[0]
        return html_pag_mensagem_de_erro.gera(ses, erros)
    return pag