예제 #1
0
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
예제 #2
0
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
예제 #4
0
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)
예제 #5
0
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
예제 #11
0
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)
예제 #14
0
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)