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