mirror of https://github.com/interlegis/sapl.git
Browse Source
* Fix #2877 - Possibilidade de múltiplos usuários por autor * Permite adição e remoção da relação autor-user na tela de Autor * Remove campo user do model Autor e retira referências a este campo * Fix testes em matéria * Corrige formulário antigo de Autor * Reduz migrations e corrige bugs * Remove comentários * Fix migrations * Remove Crud desnecessário * Update sapl/base/models.py Co-Authored-By: Edward <9326037+edwardoliveira@users.noreply.github.com>pull/3009/head
Cesar Augusto de Carvalho
5 years ago
committed by
Edward
13 changed files with 311 additions and 197 deletions
@ -0,0 +1,56 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.11.20 on 2019-09-13 15:28 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.conf import settings |
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
def migra_autores_usuarios(apps, schema_editor): |
|||
Autor = apps.get_model('base', 'Autor') |
|||
AutorUser = apps.get_model('base', 'AutorUser') |
|||
|
|||
for a in Autor.objects.filter(user__isnull=False): |
|||
AutorUser.objects.create(autor=a, user=a.user) |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|||
('base', '0038_auto_20190604_1109'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='AutorUser', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Autor - Usuário', |
|||
'verbose_name_plural': 'Autores - Usuários', |
|||
'ordering': ('autor__nome',), |
|||
}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='autor', |
|||
name='cargo', |
|||
field=models.CharField(blank=True, max_length=50, verbose_name='Cargo'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='autoruser', |
|||
name='autor', |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='base.Autor', verbose_name='Autor'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='autoruser', |
|||
name='user', |
|||
field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='Usuário'), |
|||
), |
|||
migrations.RunPython(migra_autores_usuarios), |
|||
migrations.RemoveField( |
|||
model_name='autor', |
|||
name='user', |
|||
) |
|||
] |
@ -0,0 +1,62 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
|
|||
{% block sub_actions %} |
|||
{{block.super}} |
|||
<div class="actions btn-group btn-group-sm" role="group"> |
|||
<a href="{% url 'sapl.base:vincular-usuario-autor' object.pk %}" class="btn btn-outline-primary">Vincular Usuário</a> |
|||
</div> |
|||
{% endblock sub_actions %} |
|||
|
|||
{% block detail_content %} |
|||
{{block.super}} |
|||
{% if autor_user %} |
|||
<h2 class="legend">Usuários vinculados</h2> |
|||
<table class="table table-striped table-hover table-link-ordering"> |
|||
<thead> |
|||
<tr> |
|||
<th>Usuário</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{% 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> |
|||
</table> |
|||
{% endif %} |
|||
{% endblock %} |
|||
|
|||
{% block extra_js %} |
|||
|
|||
<script type="text/javascript"> |
|||
|
|||
function desvincular(pk){ |
|||
$.get("{% url 'sapl.base:deleta_autorser' %}", |
|||
{ |
|||
pk: pk |
|||
}, function(data, status) { |
|||
if(status == "success") |
|||
console.log("Usuário desvinculado."); |
|||
}); |
|||
location.reload(); |
|||
} |
|||
|
|||
$(document).ready(function(){ |
|||
// Esconde cargo se o mesmo for vazio |
|||
if(!$('.form-control-static').last().text()) |
|||
$('#div_id_cargo').hide(); |
|||
else |
|||
$('#div_id_cargo').show(); |
|||
}) |
|||
|
|||
</script> |
|||
|
|||
{% endblock %} |
@ -0,0 +1,2 @@ |
|||
{% extends "crud/form.html" %} |
|||
{% load i18n %} |
Loading…
Reference in new issue