import trecho
import html_texto
import html_botao_simples
import html_imagem
import html_span

def gera(trc, bt_ver, bt_alterar, bt_clonar, bt_fechar):
  id_trc = trecho.obtem_identificador(trc)
  atrs_trc = trecho.obtem_atributos(trc)
  
  # Pega/monta atributos a mostrar:
  codigo = atrs_trc['codigo']
  empresa = codigo.split(" ")[0] # Sigla da empresa. 
  origem = atrs_trc['origem']
  destino = atrs_trc['destino']
  dt_partida = atrs_trc['dia_partida'] + " " + atrs_trc['hora_partida']
  dt_chegada = atrs_trc['dia_chegada'] + " " + atrs_trc['hora_chegada']
  veiculo = atrs_trc['veiculo']
  num_poltronas_total = str(trecho.numero_de_poltronas(trc))
  num_poltronas_livres = str(trecho.numero_de_poltronas_livres(trc))
  num_poltronas = num_poltronas_livres + " / " + num_poltronas_total
  
  # !!! Deveria mostrar também atributo 'aberto' !!!

  # Formata informações em HTML:
  ht_logo = html_imagem.gera("/" + empresa + ".png", "logo", 20)
  ht_codigo = formata_texto(codigo)
  ht_origem = formata_texto(origem)
  ht_destino = formata_texto(destino)
  ht_dt_partida = formata_texto(dt_partida)
  ht_dt_chegada = formata_texto(dt_chegada)
  ht_veiculo = formata_texto(veiculo)
  ht_num_poltronas = formata_texto(num_poltronas)

  ht_campos = [ ht_logo, ht_codigo, ht_origem, ht_dt_partida, ht_destino, ht_dt_chegada, ht_num_poltronas ]
  
  args_bt = {'id_trecho': id_trc} # Argumentos para os botões.
  cor_bt_normal = '#00FF00' # Cor para botões de uso geral.
  cor_bt_admin = '#FFA700' # Cor para botões de adminstrador.
  
  if bt_ver:
    ht_bt_ver = html_botao_simples.gera("Ver", 'ver_trecho', args_bt, cor_bt_normal)
    ht_campos.append(ht_bt_ver)

  if bt_alterar:
    ht_bt_alterar = html_botao_simples.gera("Alterar", 'solicitar_pag_alterar_trecho', args_bt, cor_bt_admin)
    ht_campos.append(ht_bt_alterar)
  
  if bt_clonar:
    ht_bt_clonar = html_botao_simples.gera("Clonar", 'solicitar_pag_clonar_trecho', args_bt, cor_bt_admin)
    ht_campos.append(ht_bt_clonar)
 
  if bt_fechar:
    ht_bt_fechar = html_botao_simples.gera("Encerrar", "encerrar_trecho", args_bt, cor_bt_admin)
    ht_campos.append(ht_bt_fechar)

  return ht_campos

def formata_texto(txt):
  """Formata o texto {txt} com um estilo apropriado."""
  estilo = "font-weight:bold"
  return html_span.gera(estilo, txt)

