Browse Source

Fix #1725 Adiciona-permissao-e-altera-layout

pull/1740/head
VictorFabreF 8 years ago
parent
commit
51e8d28404
  1. 43
      sapl/base/forms.py
  2. 30
      sapl/base/views.py
  3. 8
      sapl/templates/auth/user_form.html
  4. 42
      sapl/templates/auth/user_list.html

43
sapl/base/forms.py

@ -67,6 +67,30 @@ class UsuarioCreateForm(ModelForm):
if data['password1'] != data['password2']:
raise ValidationError('Senhas informadas são diferentes')
def __init__(self, *args, **kwargs):
super(UsuarioCreateForm, self).__init__(*args, **kwargs)
row0 = to_row([('username', 12)])
row1 = to_row([('firstname', 6),
('lastname', 6)])
row2 = to_row([('email', 6),
('user_active', 6)])
row3 = to_row(
[('password1', 6),
('password2', 6)])
self.helper = FormHelper()
self.helper.layout = Layout(
row0,
row1,
row3,
row2,
'roles',
form_actions(label='Confirmar'))
class UsuarioEditForm(ModelForm):
ROLES = [(g.id, g.name) for g in Group.objects.all().order_by('name')]
@ -80,6 +104,25 @@ class UsuarioEditForm(ModelForm):
model = get_user_model()
fields = ['email', 'password1', 'password2', 'user_active', 'roles']
def __init__(self, *args, **kwargs):
super(UsuarioEditForm, self).__init__(*args, **kwargs)
row1 = to_row([('email', 6),
('user_active', 6)])
row2 = to_row(
[('password1', 6),
('password2', 6)])
row3 = to_row([(form_actions(label='Salvar Alterações'), 6)])
self.helper = FormHelper()
self.helper.layout = Layout(
row1,
row2,
'roles',
row3)
def clean(self):
super(UsuarioEditForm, self).clean()

30
sapl/base/views.py

@ -1,5 +1,6 @@
from django.conf import settings
from django.contrib.auth import get_user_model, update_session_auth_hash
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.contrib.auth.models import Group
from django.contrib.auth.tokens import default_token_generator
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
@ -19,7 +20,7 @@ from django_filters.views import FilterView
from haystack.views import SearchView
from sapl.base.forms import AutorForm, AutorFormForAdmin, TipoAutorForm
from sapl.base.models import Autor, TipoAutor
from sapl.crud.base import CrudAux
from sapl.crud.base import (CrudAux, make_pagination)
from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa)
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
@ -520,19 +521,32 @@ class RelatorioMateriasPorAutorView(FilterView):
return context
class ListarUsuarioView(ListView):
class ListarUsuarioView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'auth/user_list.html'
context_object_name = 'user_list'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
qs = super(ListarUsuarioView, self).get_queryset()
return qs.order_by('username')
def get_context_data(self, **kwargs):
context = super(ListarUsuarioView, self).get_context_data(**kwargs)
paginator = context['paginator']
page_obj = context['page_obj']
context['page_range'] = make_pagination(
page_obj.number, paginator.num_pages)
context['NO_ENTRIES_MSG'] = 'Nenhum usuário cadastrado.'
return context
class CreateUsuarioView(CreateView):
class CreateUsuarioView(PermissionRequiredMixin, CreateView):
model = get_user_model()
form_class = UsuarioCreateForm
success_message = 'Usuário criado com sucesso'
permission_required = ('base.add_appconfig',)
def get_success_url(self):
return reverse('sapl.base:user_list')
@ -545,13 +559,16 @@ class CreateUsuarioView(CreateView):
new_user.first_name = data['firstname']
new_user.last_name = data['lastname']
new_user.set_password(data['password1'])
new_user.is_superuser = False
new_user.is_staff = False
new_user.save()
return HttpResponseRedirect(self.get_success_url())
class DeleteUsuarioView(DeleteView):
class DeleteUsuarioView(PermissionRequiredMixin, DeleteView):
model = get_user_model()
permission_required = ('base.delete_appconfig',)
def get_success_url(self):
return reverse('sapl.base:user_list')
@ -565,10 +582,11 @@ class DeleteUsuarioView(DeleteView):
class EditUsuarioView(UpdateView):
class EditUsuarioView(PermissionRequiredMixin, UpdateView):
model = get_user_model()
form_class = UsuarioEditForm
success_message = 'Usuário criado com sucesso'
success_message = 'Usuário editado com sucesso'
permission_required = ('base.change_appconfig',)
def get_success_url(self):
return reverse('sapl.base:user_list')

8
sapl/templates/auth/user_form.html

@ -5,14 +5,10 @@
<form action="" method="post">
{% csrf_token %}
<table>
{{ form }}
</table>
<input type="submit" name="salvar" value="Salvar alterações" />
{% crispy form %}
{% if object.pk %}
<a href="{% url 'sapl.base:user_delete' object.pk %}">Remover usuário</a>
<a class="btn btn-warning" href="{% url 'sapl.base:user_delete' object.pk %}">Remover usuário</a>
{% endif %}
</form>
{% endblock base_content %}

42
sapl/templates/auth/user_list.html

@ -1,21 +1,33 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<h1>Usuários</h1>
{% if user_list %}
<ul>
<fieldset>
<h1>Lista de usuários</h1>
{% if not user_list %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Nome de Usuário</th>
<th>E-mail do Usuário</th>
</tr>
</thead>
<tbody>
{% for user in user_list %}
<li>
<a href="{% url 'sapl.base:user_edit' user.pk %}">{{ user.username }}</a> ({{user.email}})
</li>
<tr>
<td>
<a href="{% url 'sapl.base:user_edit' user.pk %}">{{ user.username }}</a>
</td>
<td>{{ user.email }}</td>
</tr>
{% endfor %}
</ul>
{% else %}
<p>Não existem usuários cadastrados</p>
</tbody>
</table>
{% endif %}
<a href="{% url 'sapl.base:user_create' %}">Criar Usuário</a>
<a class="btn btn-default" href="{% url 'sapl.base:user_create' %}">Criar Usuário</a>
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}
Loading…
Cancel
Save