Browse Source

Correções no tratamento de telefones na interface mobile categoria 2

stable/1.0
Sesostris Vieira 12 years ago
parent
commit
1ec4ffbae5
  1. 9
      media/js/diagnosticos/diagnosticos_categorias_form.js
  2. 2
      sigi/apps/contatos/models.py
  3. 28
      sigi/apps/diagnosticos/views.py
  4. 1
      sigi/templates/diagnosticos/diagnosticos_categoria_contatos_form.html

9
media/js/diagnosticos/diagnosticos_categorias_form.js

@ -26,6 +26,15 @@ $('#page').live('pageinit', function(event){
error.html(data.erros[campo].join('\n'));
}
}
//Novos telefones
for (var campo in data.fones) {
painel = $("#" + campo);
painel.html(painel.html() + data.fones[campo]);
}
//Limpar campos
for (var campo in data.clean) {
$("#" + data.clean[campo]).val('');
}
},
error: function(msg) {
nun_ajax--;

2
sigi/apps/contatos/models.py

@ -138,7 +138,7 @@ class Telefone(models.Model):
class Meta:
ordering = ('numero',)
# unique_together = ('numero', 'tipo')
unique_together = ('numero', 'tipo')
def __unicode__(self):
return unicode(self.numero)

28
sigi/apps/diagnosticos/views.py

@ -158,18 +158,32 @@ def categoria_contatos(request, id_diagnostico):
for n, l in Funcionario.SETOR_CHOICES]
if request.method == "POST":
forms = [FuncionariosMobileForm(
request.POST, prefix=f.setor, instance=f) for f, c in funcionarios]
forms = []
for f, c in funcionarios:
try:
forms.append(FuncionariosMobileForm(request.POST, prefix=f.setor, instance=f))
except:
pass
resposta = {
'mensagem': 'sucesso',
'erros' : {}
'erros' : {},
'fones' : {},
'clean' : (),
}
# valida e salva um formulario por vez
for form in forms:
if form.is_valid():
form.save()
s = ''
for form_telefones in form.telefones.forms:
tel = form_telefones.instance
if tel._state.adding and tel.numero != '':
s += '<p>Novo telefone %s: %s</p>' % (form_telefones.instance.get_tipo_display(), form_telefones.instance.numero)
resposta['clean'] += ('id_' + form_telefones.prefix + '-numero',)
if s != '':
resposta['fones'][form.prefix] = s
else:
# Montando a estrutura das mensagens de erro no formato JSON
resposta['mensagem'] = 'erro'
@ -181,8 +195,12 @@ def categoria_contatos(request, id_diagnostico):
if (form_telefones.fields['id'].initial is not None
and form_telefones.fields['tipo'].initial == 'I'
and form_telefones.fields['numero'].initial is None):
Telefone.objects.get(pk=form_telefones.fields['id'].initial).delete()
resposta['erros'][form_telefones.prefix + "-id-errors"] = u'Este telefone foi excluído da base de dados'
if Telefone.objects.filter(pk=form_telefones.fields['id'].initial).exists():
Telefone.objects.get(pk=form_telefones.fields['id'].initial).delete()
if not resposta['fones'].has_key(form.prefix):
resposta['fones'][form.prefix] = ''
resposta['fones'][form.prefix] += u'<p>O telefone %s %s foi excluído da base de dados</p>' % (
form_telefones.instance.get_tipo_display(), form_telefones.instance.numero)
else:
for key, value in form_telefones.errors.iteritems():
key = form_telefones.prefix + "-id-errors"

1
sigi/templates/diagnosticos/diagnosticos_categoria_contatos_form.html

@ -37,6 +37,7 @@
{% endfor %}
</div>
{% endfor %}
<span id="{{ form.prefix }}"></span>
{{ form.telefones.management_form }}
<hr/>
{% endfor %}

Loading…
Cancel
Save