def gera_botoes_linha_2(): """Gera uma lista de fragmentos de HTML com os botões da linha 2 do menu geral. Estes botões são mostrados apenas se o usuário está logado e é um administrador.""" ht_input = html_input.gera(None, "text", "id", None, None, True, True, "Id do objeto", None) ht_bt_submit = html_botao_submit.gera("Checar Objeto", "ver_objeto", None, '#ffdd22') form_content = \ ht_input + \ ht_bt_submit ht_input2 = html_input.gera(None, "text", "passageiro", None, None, True, True, "Nome ou documento", None) ht_bt_submit2 = html_botao_submit.gera("Buscar passageiro", "buscar_compras", None, '#ffdd22') form_content2 = \ ht_input2 + \ ht_bt_submit2 botoes = ( html_botao_simples.gera("Acrescentar trecho", "solicitar_pag_acrescentar_trecho", None, '#ffdd22'), html_botao_simples.gera("Trafego", "comando_relatorio_de_trafego", None, '#FF00FF'), html_form.gera(form_content), html_form.gera(form_content2) # html_botao_simples.gera("Alterar trecho", "solicitar_pag_alterar_trecho", None, '#ffdd22'), # html_form_passageiros.gera(), # html_form_buscar_objeto.gera(), ) return botoes
def gera(ses, cpr, erros): id_compra = compra.obtem_identificador(cpr); ht_form = html_form_escolher_pagamento.gera(cpr) ht_cancelar = html_botao_simples.gera("Cancelar", "principal", None, "#ffff00") ht_conteudo = html_form.gera(ht_form + " " + ht_cancelar) pag = html_pag_generica.gera(ses, ht_conteudo, erros) return pag
def gera(): linhas = [].copy() ht_rotulo = html_label.gera("E-mail", ": ") ht_campo = html_input.gera(None, "text", "email", None, None, True, True, "nome@provedor", None) linhas.append(( ht_rotulo, ht_campo, )) ht_rotulo = html_label.gera("Senha", ": ") ht_campo = html_input.gera(None, "password", "senha", None, None, True, True, None, None) linhas.append(( ht_rotulo, ht_campo, )) # Monta a tabela com os fragmentos HTML: ht_table = html_table.gera(linhas, None) ht_bt_login = html_botao_submit.gera("Entrar", 'fazer_login', None, '#55ee55') ht_campos = \ ht_table + \ ht_bt_login ht = html_form.gera(ht_campos) return ht
def gera(atrs, admin): # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = (( "Usuário", "text", "id_usuario", "U-xxxxxxxx", True, True, True, ), ) ht_table = html_form_table.gera(dados_linhas, atrs) ht_submit = html_botao_submit.gera("Buscar", "buscar_compras", None, '#55ee55') ht_cancel = html_botao_simples.gera("Cancelar", "principal", None, '#ff2200') ht_conteudo = \ ht_table + \ ht_submit + \ ht_cancel return html_form.gera(ht_conteudo)
def gera(): linhas = [].copy() ht_rotulo = html_label.gera("Origem", ": ") ht_campo = html_input.gera(None, "text", "origem", None, None, True, True, "VCP", None) linhas.append((ht_rotulo, ht_campo,)) ht_rotulo = html_label.gera("Data mínima de partida", ": ") ht_campo = html_input.gera(None, "text", "dia_min", None, None, True, True, "aaaa-mm-dd", None) ht_campo2 = html_input.gera(None, "text", "hora_min", None, None, True, True, "HH:MM", None) ht_rotulo2 = html_label.gera("UTC", "") linhas.append((ht_rotulo, ht_campo, ht_campo2, ht_rotulo2)) ht_rotulo = html_label.gera("Destino", ": ") ht_campo = html_input.gera(None, "text", "destino", None, None, True, True, "SDU", None) linhas.append((ht_rotulo, ht_campo,)) ht_rotulo = html_label.gera("Data máxima de chegada", ": ") ht_campo = html_input.gera(None, "text", "dia_max", None, None, True, True, "aaaa-mm-dd", None) ht_campo2 = html_input.gera(None, "text", "hora_max", None, None, True, True, "HH:MM", None) ht_rotulo2 = html_label.gera("UTC", "") linhas.append((ht_rotulo, ht_campo, ht_campo2, ht_rotulo2)) # Monta a tabela com os fragmentos HTML: ht_table = html_table.gera(linhas, None) ht_bt_buscar = html_botao_submit.gera("Buscar", 'sugerir_roteiros', None, '#55ee55') ht_campos = \ ht_table + \ ht_bt_buscar ht = html_form.gera(ht_campos) return ht
def gera(cpr): id_compra = compra.obtem_identificador(cpr) ht_titulo = html_label.gera("Selecione o método de pagamento", ": ") ht_opcoes = \ html_botao_radio.gera("metodo", "paypau", "PayPau") + "<br/>" + \ html_botao_radio.gera("metodo", "mrcard", "MonsterCard") + "<br/>" + \ html_botao_radio.gera("metodo", "boleto", "Boleto") + "<br/>" + \ html_botao_radio.gera("metodo", "deposito", "Depósito") + "<br/>" + \ html_botao_radio.gera("metodo", "bois", "Bois gordos") + "<br/>" + \ html_botao_radio.gera("metodo", "balas", "Balinhas") ht_submit = html_botao_submit.gera("Alterar", "alterar_pagamento", {'id_compra': id_compra}, '#55ee55') ht_campos = \ ht_titulo + "<br/>" + \ "" + "<br/>" + \ ht_opcoes + "<br/>" + \ "" + "<br/>" + \ ht_submit return html_form.gera(ht_campos)
def gera(atrs, admin): # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = ( ( "Nome", "text", "nome", "Fulano de tal", True, True, False, ), ( "documento", "text", "documento", "RG 4.444.444-4 SSP SP", True, True, False, ), ( "email", "email", "email", "*****@*****.**", True, True, False, ), ( "telefone", "text", "telefone", "(XX) XXXX-XXXX", True, True, False, ), ( "CPF", "text", "cpf", "XXX.XXX.XXX-XX", True, True, False, ), ) ht_table = html_form_table.gera(dados_linhas, atrs) ht_submit = html_botao_submit.gera("Buscar", "buscar_usuarios", None, '#55ee55') ht_cancel = html_botao_simples.gera("Cancelar", "principal", None, '#ff2200') ht_conteudo = \ ht_table + \ ht_submit + \ ht_cancel return html_form.gera(ht_conteudo)
def gera(id_pol, atrs, admin, ht_submit): if atrs == None: atrs = {} # Por via das dúvidas. atrs = atrs.copy() # Para que as alterações sejam locais. atrs['id_poltrona'] = id_pol # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = [].copy() # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} # Todos os campos são "readonly" para clientes comuns. # Campos 'oferta' e 'preco' são editáveis por administrador. atrs['id_poltrona'] = id_pol # Campos de tipo "checkbox" não podem ser obrigatórios pois isso significa "obrig. True". dados_linhas = \ ( ( "ID", "text", 'id_poltrona', None, admin, False, True, ), ("Trecho", "text", 'id_trecho', None, True, False, True, ), ("Compra", "text", 'id_compra', None, True, False, True, ), ("Número", "text", 'numero', None, True, False, True, ), ("Oferta", "checkbox", 'oferta', None, True, admin, False, ), ("Preço", "numeric", 'preco', "NNN.NN", True, admin, True, ), ) ht_campos = html_form_table.gera(dados_linhas, atrs) ht_conteudo = \ ht_campos + "<br/>" + \ ht_submit ht_form = html_form.gera(ht_conteudo) return ht_form
def gera(id_trecho, atrs, admin, ht_submit): if atrs == None: atrs = {} # Por via das dúvidas. atrs = atrs.copy() # Para que as alterações sejam locais. # Mostra logotipo da empresa: if 'codigo' in atrs and atrs['codigo'] != None: cod_empresa = atrs['codigo'].split()[0] assert re.fullmatch(r'[A-Za-z]+', cod_empresa) ht_logotipo = html_imagem.gera(cod_empresa + '.png', 'Logotipo empresa ' + cod_empresa, 200) else: ht_logotipo = "" # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = [].copy() if id_trecho != None: # Mostrando trecho existente; inclui campo 'id_trecho' no formulário. # O campo é visível para administrador, mas readonly. atrs['id_trecho'] = id_trecho dados_linhas.append( ("ID", "text", "id_trecho", None, admin, False, True)) novo = False else: # Criando um novo trecho. Não há campo 'id_trecho' no formulário. novo = True # Todos os campos a seguir são readonly para clientes normais. # Todos os campos são obrigatórios se criando trecho. # Campos de tipo "checkbox" não podem ser obrigatórios pois isso significa "obrig. True". dados_linhas += [ ( "Código", "text", "codigo", "XX NNNN", True, novo, novo, ), ( "Origem", "text", "origem", "XXX", True, novo, novo, ), ( "Dia de partida", "text", "dia_partida", "YYYY-MM-DD", True, admin, novo, ), ( "Hora de partida", "text", "hora_partida", "HH:MM", True, admin, novo, ), ( "Destino", "text", "destino", "XXX", True, novo, novo, ), ( "Dia de chegada", "text", "dia_chegada", "YYYY-MM-DD", True, admin, novo, ), ( "Hora de chegada", "text", "hora_chegada", "HH:MM", True, admin, novo, ), ( "Veículo", "text", "veiculo", "XXX-NNNN", True, admin, novo, ), ( "Encerrado", "checkbox", "encerrado", None, True, admin, False, ), ] if novo: # Acrescenta um campo para especificar a lista compacta de poltronas: dados_linhas.append(( "Poltronas", "text", "poltronas", "1A-20D,33: 90.00; ...", True, True, True, ), ) # Monta a tabela com os fragmentos HTML: ht_campos = html_form_table.gera(dados_linhas, atrs) ht_conteudo = \ ht_logotipo + '<br clear="all" />' + \ ht_campos + "<br/>" + \ ht_submit ht_form = html_form.gera(ht_conteudo) return ht_form
def cria_form_completo(): linhas = [].copy() # cria campo de texto com valor inicial ht_rotulo = html_label.gera("campo de texto", ": ") ht_campo = html_input.gera(None, "text", "texto1", "blabla", None, True, True, None, None) linhas.append(( ht_rotulo, ht_campo, )) # cria campo de texto sem valor inicial, com dica ht_rotulo = html_label.gera("campo de texto", ": ") ht_campo = html_input.gera(None, "text", "texto2", None, None, True, False, "Lorem ipusm", None) linhas.append(( ht_rotulo, ht_campo, )) # cria campo de senha ht_rotulo = html_label.gera("campo de senha", ": ") ht_campo = html_input.gera(None, "password", "senha", None, None, True, True, None, None) linhas.append(( ht_rotulo, ht_campo, )) # cria campo numerico ht_rotulo = html_label.gera("campo numerico", ": ") ht_campo = html_input.gera(None, "number", "pernas", "17", "5", True, False, None, None) linhas.append(( ht_rotulo, ht_campo, )) # cria campo escondido ht_rotulo = html_label.gera("campo escondido", ": ") ht_campo = html_input.gera(None, "hidden", "segredo", "boo", None, True, False, None, None) linhas.append(( ht_rotulo, ht_campo, )) # Monta a tabela com os fragmentos HTML: ht_table = html_table.gera(linhas, ["TIPO", "ELEMENTO"]) # cria botao de interacao com o formulario ht_botao = html_botao_submit.gera("Botao", 'url test', None, '#55ee55') # counteudo do formulario ht_campos = \ ht_table + \ ht_botao # cria formulario de teste formulario = html_form.gera(ht_campos) return formulario
def gera(id_usr, atrs, admin, ht_bt_submit): # Para simplificar: if atrs == None: atrs = {}.copy() novo = (id_usr == None) if novo: # Não deve haver 'id_usr' no formulário: if 'id_usuario' in atrs: del atrs['id_usuario'] # Por via das dúvidas. else: # Inclui campo 'id_usr' no formulário: atrs['id_usuario'] = id_usr # Limpa 'senha' e 'conf_senha': if 'senha' in atrs: del atrs['senha'] if 'conf_senha' in atrs: del atrs['conf_senha'] # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} cps = [].copy() if not novo: id_edit = False id_vis = admin cps.append(( "ID", "text", "id_usuario", None, id_vis, id_edit, True, )) cps.append(( "Nome", "text", "nome", None, True, True, True, )) ec_edit = novo # Email e CPF editáveis apenas na criação. cps.append(( "E-mail", "email", "email", "*****@*****.**", True, ec_edit, True, )) cps.append(( "CPF", "text", "CPF", "xxx.xxx.xxx-xx", True, ec_edit, True, )) cps.append(( "Telefone", "text", "telefone", "+xx(xx)x-xxxx-xxxx", True, True, True, )) cps.append(( "Documento", "text", "documento", "Número, tipo, órgão", True, True, True, )) cps.append(( "Milhagem", "text", "milhagem", "Número não-negativo", True, id_vis, True, )) cps.append(( "Senha", "password", "senha", None, True, True, True, )) cps.append(( "Confirmar senha", "password", "conf_senha", None, True, True, True, )) if admin: # Checkbox não pode ser obrigatório porque significa "Obrig. True". cps.append(( "Administrador", "checkbox", "administrador", None, True, True, False, )) ht_table = html_form_table.gera(cps, atrs) ht_bt_cancel = html_botao_simples.gera("Cancelar", 'principal', None, '#ee5555') ht_campos = \ ht_table + \ ht_bt_submit + \ ht_bt_cancel return html_form.gera(ht_campos)
def gera(atrs, admin): # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = ( ( "Nome", "text", "nome", "Nome", True, True, True, ), ( "Email", "text", "email", "Email", True, True, True, ), ( "Telefone", "text", "telefone", "Telefone", True, True, True, ), ( "Assunto", "text", "assunto", "Assunto", True, True, True, ), ( "Mensagem", "textarea", "mensagem", "Digite sua mensagem aqui", True, True, True, ), ) ht_table = html_form_table.gera(dados_linhas, atrs) ht_submit = html_botao_submit.gera("Enviar", "enviar_msg_contato", None, '#55ee55') ht_cancel = html_botao_simples.gera("Cancelar", "principal", None, '#ff2200') ht_conteudo = \ ht_table + \ ht_submit + \ ht_cancel return html_form.gera(ht_conteudo)
def gera(atrs, admin): ht_cabe = html_cabecalho.gera("Busca de trechos", False) # Dados para {html_form_table.gera} # {(rotulo,tipo,chave,dica,visivel,editavel,obrigatorio)} dados_linhas = (( "Origem", "text", "origem", "Código do aeroporto", True, True, False, ), ( "Data mínima de partida", "text", "dia_partida", "aaaa-mm-dd", True, True, False, ), ( None, "text", "hora_partida", "hh:mm", True, True, False, ), ( "Destino", "text", "destino", "Código do aeroporto", True, True, False, ), ( "Data máxima de chegada", "text", "dia_chegada", "aaaa-mm-dd", True, True, False, ), ( None, "text", "hora_chegada", "hh:mm", True, True, False, ), ("Veiculo", "text", "veiculo", "Código do veiculo", admin, True, False)) ht_table = html_form_table.gera(dados_linhas, atrs) ht_submit = html_botao_submit.gera("Buscar", "buscar_trechos", None, '#55ee55') ht_cancel = html_botao_simples.gera("Cancelar", "principal", None, '#ff2200') ht_conteudo = \ ht_cabe + "<br/>\n" + \ ht_table + \ ht_submit + \ ht_cancel return html_form.gera(ht_conteudo)
def gera(cpr, editavel, texto_bt, comando_bt): # Obtem atributos a mostrar: valores = {}.copy() id_cpr = compra.obtem_identificador(cpr) atrs_cpr = compra.obtem_atributos(cpr) # Atributos da compra em si valores['id_cpr'] = id_cpr valores['status'] = atrs_cpr['status'] valores['nome_pass'] = atrs_cpr['nome_pass'] valores['doc_pass'] = atrs_cpr['doc_pass'] valores['preco_tot'] = ("%.2f" % compra.calcula_preco(cpr)) # valores['pagamento'] = atrs_cpr['pagamento'] # Cliente que está montando ou montou a compra: usr = compra.obtem_cliente(cpr) valores['id_usr'] = usuario.obtem_identificador(usr) atrs_usr = usuario.obtem_atributos(usr) valores['nome_usr'] = atrs_usr['nome'] # Bilhetes da compra: ids_pols = compra.obtem_poltronas(cpr) num_trechos = len(ids_pols) valores['n_trechos'] = str(num_trechos) if (num_trechos >= 1): # Obtém origem, data, e hora de partida do primeiro trecho: pol_ini = poltrona.busca_por_identificador(ids_pols[0]) id_trc_ini = poltrona.obtem_atributo(pol_ini, 'id_trecho') trc_ini = trecho.busca_por_identificador(id_trc_ini) origem = trecho.obtem_atributo(trc_ini, 'origem') dh_partida = trecho.obtem_dia_e_hora_de_partida(trc_ini) valores['partida'] = origem + " " + dh_partida # Obtém destino, data, e hora de chegada do último trecho: pol_fin = poltrona.busca_por_identificador(ids_pols[-1]) id_trc_fin = poltrona.obtem_atributo(pol_fin, 'id_trecho') trc_fin = trecho.busca_por_identificador(id_trc_fin) destino = trecho.obtem_atributo(trc_fin, 'destino') dh_chegada = trecho.obtem_dia_e_hora_de_chegada(trc_fin) valores['chegada'] = destino + " " + dh_chegada # Linhas para {html_table.gera}: linhas = ( html_cpr_campo("Compra", 'id_cpr', valores, 'text', None, False), html_cpr_campo("Cliente", 'id_usr', valores, 'text', None, False), html_cpr_campo("Nome do cliente", 'nome_usr', valores, 'text', None, False), html_cpr_campo("Nome do passageiro", 'nome_pass', valores, 'text', "Fulano da Silva", editavel), html_cpr_campo("Documento do passageiro", 'doc_pass', valores, 'text', "123.456.789-10", editavel), html_cpr_campo("Número de trechos", 'n_trechos', valores, 'text', None, False), html_cpr_campo("Preço total", 'preco_tot', valores, 'text', None, False), html_cpr_campo("Estado", 'status', valores, 'text', None, False), html_cpr_campo("Partida", 'partida', valores, 'text', None, False), html_cpr_campo("Chegada", 'chegada', valores, 'text', None, False), ) ht_campos = html_table.gera(linhas, ["", ""]) # Botões: if editavel: args_submit = { 'id_compra': id_cpr } # Argumentos adicionais para submissão. ht_submit = html_botao_submit.gera(texto_bt, comando_bt, args_submit, "#44ff44") ht_campos += "<br/>" + ht_submit return html_form.gera(ht_campos)