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