Browse Source

Ajusta mudanças para a tela de update

pull/1323/head
Eduardo Calil 9 years ago
parent
commit
cf6aad83d3
  1. 25
      sapl/materia/views.py
  2. 9
      sapl/templates/materia/autoria_form.html

25
sapl/materia/views.py

@ -1215,7 +1215,23 @@ def atualizar_autores(request):
autores = autores_ativos(materia, tipo=tipo_autor)
autores_list = [(a.id, a.__str__()) for a in autores]
return JsonResponse({'lista_autores': autores_list})
# Se já houver algum autor selecionado (ex: view de update)
# no campo correspondente e caso o TipoAutor selecionado
# seja o mesmo do autor que está aualmente marcado
# deve ser enviado um sinal (manter autor) para que o javascript
# mantenha este selecionado
manter_autor = False
if 'autor_id' in request.GET and request.GET['autor_id']:
try:
autor = Autor.objects.get(id=request.GET['autor_id'])
except ObjectDoesNotExist:
pass
else:
if autor.tipo.id == int(tipo_autor):
manter_autor = True
return JsonResponse({'lista_autores': autores_list,
'manter_autor': manter_autor})
class AutoriaCrud(MasterDetailCrud):
@ -1253,6 +1269,13 @@ class AutoriaCrud(MasterDetailCrud):
def layout_key(self):
return 'AutoriaUpdate'
def get_initial(self):
return {
'tipo_autor': self.object.autor.tipo.id,
'autor': self.object.autor.id,
'primeiro_autor': self.object.primeiro_autor
}
def get_context_data(self, **kwargs):
context = super(UpdateView, self).get_context_data(**kwargs)

9
sapl/templates/materia/autoria_form.html

@ -9,13 +9,14 @@
function atualizar_autores() {
var tipo_autor = $("#id_tipo_autor").val();
var materia_id = {{ root_pk }}
var materia_id = {{ root_pk }};
var autor_id = $("#id_autor").val();
// Limpa a listagem para atualizar
$("#id_autor").find("option").remove();
$.get("/materia/autoria/atualizar-autores",
{tipo_autor: tipo_autor, materia_id: materia_id},
{tipo_autor: tipo_autor, materia_id: materia_id, autor_id: autor_id},
function(data) {
// Caso não venha nenhum dado da requisição, retorna null
if ($.isEmptyObject(data)){
@ -29,6 +30,10 @@
'<option value="' + lista_autores[i][0] + '">' +
lista_autores[i][1] + '</option>');
}
if (data['manter_autor'] == true){
$('#id_autor').val(autor_id);
}
});
}
$("#id_tipo_autor").change(function () {

Loading…
Cancel
Save