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
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
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
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
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