Simon Belak <[EMAIL PROTECTED]> writes:

> Interesting. Would you mind posting (privately or here, whichever you prefer)
> the relevant controller code.
>
> Thnaks,
> Simon

Sure, I don't mind passing it here.

The code in question is (don't mind it is just a "draft" yet, it is where I
try widgets and etc., coming from TG 0.8a3 up to the newest svn revision ;-)):

================================================================================
    @turbogears.expose(inputform = formulario_clientes)
    @identity.require(identity.conditions.in_any_group('latam_novo', 'admin'))
    def save(self, cliente_id, nome_abreviado=None, nome_completo=None,
             contrato=None, contrato_assinatura=None,
             contrato_vencimento=None, auto_renovar=False, is_ativo=False,
             endereco=None, cidade=None, estado=None, cep=None, cnpj=None,
             ie=None, cpf=None, contato=None, email=None, fone=None,
             fax=None, tg_errors = None):

#         if cherrypy.request.form_errors:
#             flashData = {"status": "error", "msg": _("Erro no preenchimento 
dos dados")}
#             turbogears.flash(json.write(jsonify(flashData)))
#             return self.index()

        agora = datetime.datetime.now()

        erro = None
        try:
            model.hub.begin()
            cliente = model.Cliente(
                nomeAbreviado = nome_abreviado,
                nomeCompleto = nome_completo,
                isAtivo = is_ativo,
                endereco = endereco,
                cidade = cidade,
                estado = estado,
                cep = cep,
                cnpj = cnpj,
                ie = ie,
                cpf = cpf,
                fone = fone,
                fax = fax,
                email = email,
                contato = contato,
                condicaoPagamento = 0,
                contrato = None,
                tabelaID = 1,
                incluidoPor = identity.current.user,
                incluidoEm = agora,
                alteradoPor = identity.current.user,
                alteradoEm = agora,
                )

            if contrato:
                _contrato = model.Contrato(
                    contrato = contrato,
                    autoRenovar = auto_renovar,
                    dataAssinatura = contrato_assinatura,
                    dataVencimento = None,
                    incluidoPor = identity.current.user,
                    incluidoEm = agora,
                    alteradoPor = identity.current.user,
                    alteradoEm = agora,
                    )

                if contrato_vencimento != '':
                    _contrato.dataVencimento=contrato_vencimento

                _contrato.sync()

                cliente.contrato = _contrato,
                cliente.sync()

            model.hub.commit()
        except model.Cliente._connection.module.ProgrammingError, error:
            erro = error

        model.hub.end()

        if erro is not None:
            flashData = {"status": "error", "msg": str(erro)}
            turbogears.flash(json.write(jsonify(flashData)))
        else:
            flashData = {"status": "success", "msg": _("Registro cadastrado no 
banco de dados!")}
            turbogears.flash(json.write(jsonify(flashData)))

        raise cherrypy.HTTPRedirect(turbogears.url("/clientes/"))
================================================================================

And my template is:

================================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-t
ransitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"; py:extends="'master.kid'" 
xmlns:py="http://purl.org/kid/ns#";>
  <head>
    <title>Cadastro de Amostras</title>
    <script language="JavaScript" 
src="/tg_widgets/turbogears.widgets/calendar.js"> </script>
    <script language="JavaScript" 
src="/tg_widgets/turbogears.widgets/lang/calendar-pt-utf8.js"> </script>
    <script language="JavaScript" 
src="/tg_widgets/turbogears.widgets/calendar-setup.js"> </script>
    <link href="/tg_widgets/turbogears.widgets/calendar-system.css" 
type="text/css" rel="stylesheet"> </link>
  </head>
  <body>
    <div id="mainbar">
      <div py:def="intro()"> </div>

      <?python
      from turbogears.i18n.format import format_date
      ?>

      <h1>Clientes</h1>

      <div py:if='len(clientes) > 0' align="center">
        <p><b>ATENÇÃO</b>: apenas clientes sem quaisquer dados associados a eles
        podem ser removidos.  Para tornar um cliente indisponível para acesso e
        entrada de dados, desmarque-o como ativo.</p>

        <span py:replace="grid_clientes.insert(tudo_clientes, add_link_title = 
add_link_title, show_add_
link = False)" />
        <p align='center'><a href='/clientes/ContratosVencendo/'>Relação de 
contratos que
        vencem nos próximos 7 dias</a></p>
      </div>
      <p align='center'><a href='/'>Retornar à página principal</a></p>

      <p py:if="usuario">Os campos assinalados com um círculo vermelho devem
      obrigatoriamente conter um valor tanto para o cadastro quanto para a
      atualização de informações.</p>

      <div py:if="cliente_id and usuario">
        <br />
        <h1>Editar cliente</h1>
        <span py:replace="formulario.insert(data, action='/clientes/update', 
method = 'post')" />
        <a href='/'>Retornar à página principal</a>
      </div>

      <div py:if="usuario">
        <br />
        <h1>Novo cliente</h1>
        <span py:replace="formulario.insert(data_new, action='/clientes/save')" 
/>
        <a href='/'>Retornar à página principal</a>
      </div>
    </div>
  </body>
</html>
================================================================================



-- 
Jorge Godoy      <[EMAIL PROTECTED]>

Reply via email to