Browse Source

Permite adição e remoção da relação autor-user na tela de Autor

pull/2962/head
Cesar Carvalho 6 years ago
parent
commit
04314df0fd
  1. 8
      sapl/base/forms.py
  2. 20
      sapl/base/migrations/0041_auto_20190911_1541.py
  3. 6
      sapl/base/urls.py
  4. 16
      sapl/base/views.py
  5. 17
      sapl/templates/base/autor_detail.html

8
sapl/base/forms.py

@ -1941,4 +1941,10 @@ class AutorUserForm(ModelForm):
raise ValidationError("Este usuário ({}) já está vinculado a um Autor ({}).".format(
username, AutorUser.objects.get(user=user).autor))
def save(self):
cd = self.cleaned_data
user = User.objects.get(username=cd['username'])
autor = cd['autor']
autor_user = AutorUser.objects.create(autor=autor, user=user)
return autor_user

20
sapl/base/migrations/0041_auto_20190911_1541.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-09-11 18:41
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0040_auto_20190910_1113'),
]
operations = [
migrations.AlterField(
model_name='autor',
name='cargo',
field=models.CharField(blank=True, max_length=50, verbose_name='Cargo'),
),
]

6
sapl/base/urls.py

@ -39,7 +39,8 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
ListarLegislaturaInfindavelView, ListarAnexadasCiclicasView,
ListarAnexadosCiclicosView, pesquisa_textual,
RelatorioHistoricoTramitacaoAdmView, RelatorioDocumentosAcessoriosView,
RelatorioNormasPorAutorView, AutorUserCrud, AutorUserFormView)
RelatorioNormasPorAutorView, AutorUserCrud, AutorUserFormView,
deleta_autoruser)
app_name = AppConfig.name
@ -236,5 +237,8 @@ urlpatterns = [
url(r'^sistema/autor/(?P<autor_pk>\d+)/vincular-usuario/create$',
AutorUserFormView.as_view(), name='vincular-usuario-autor'),
url(r'^sistema/deleta-autoruser/$',
deleta_autoruser, name='deleta_autorser'),
] + recuperar_senha + alterar_senha + admin_user + channels_url

16
sapl/base/views.py

@ -184,7 +184,7 @@ class AutorCrud(CrudAux):
help_topic = 'autor'
class BaseMixin(CrudAux.BaseMixin):
list_field_names = ['tipo', 'nome', 'user']
list_field_names = ['tipo', 'nome']
class DeleteView(CrudAux.DeleteView):
@ -1641,6 +1641,12 @@ def get_estatistica(request):
return JsonResponse(json_dict)
def deleta_autoruser(request):
pk = int(request.GET['pk'])
AutorUser.objects.get(pk=pk).delete()
return JsonResponse({})
class ListarMandatoSemDataInicioView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/mandato_sem_data_inicio.html'
@ -2281,7 +2287,6 @@ class RelatorioNormasPorAutorView(RelatorioMixin, FilterView):
class AutorUserFormView(FormView):
form_class = AutorUserForm
template_name = 'base/autoruser_form.html'
success_url = '/'
def get_initial(self):
initial = super().get_initial()
@ -2292,9 +2297,14 @@ class AutorUserFormView(FormView):
return initial
def form_valid(self, form):
super().form_valid(form)
form.save()
return super().form_valid(form)
@property
def cancel_url(self):
return reverse('sapl.base:autor_detail',
kwargs={'pk': self.kwargs['autor_pk']})
def get_success_url(self):
return reverse('sapl.base:autor_detail',
kwargs={'pk': self.kwargs['autor_pk']})

17
sapl/templates/base/autor_detail.html

@ -22,6 +22,11 @@
{% for au in autor_user %}
<tr>
<td><a href="{% url 'sapl.base:user_edit' au.user.pk %}">{{au.user}}</a></td>
<td>
<button type="button" class="btn btn-danger float-right" onclick='desvincular("{{au.pk}}")'>
Desvincular
</button>
</td>
</tr>
{% endfor %}
</tbody>
@ -33,8 +38,16 @@
<script type="text/javascript">
$(document).ready(function(){
});
function desvincular(pk){
$.get("{% url 'sapl.base:deleta_autorser' %}",
{
pk: pk
}, function(data, status) {
if(status == "success")
console.log("Usuário desvinculado.");
});
location.reload();
}
</script>

Loading…
Cancel
Save