|
|
|
@ -37,7 +37,6 @@ from __future__ import unicode_literals |
|
|
|
|
|
|
|
from django.urls import reverse |
|
|
|
from django.shortcuts import get_object_or_404, render, redirect |
|
|
|
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger |
|
|
|
from django.contrib import messages |
|
|
|
from django.contrib.auth.decorators import login_required, permission_required |
|
|
|
from django.db.models import ProtectedError, Q |
|
|
|
@ -95,6 +94,7 @@ from re2o.views import form |
|
|
|
from re2o.utils import ( |
|
|
|
all_has_access, |
|
|
|
SortTable, |
|
|
|
re2o_paginator |
|
|
|
) |
|
|
|
from re2o.acl import ( |
|
|
|
can_create, |
|
|
|
@ -198,14 +198,12 @@ def state(request, user, userid): |
|
|
|
need droit bureau """ |
|
|
|
state = StateForm(request.POST or None, instance=user) |
|
|
|
if state.is_valid(): |
|
|
|
if state.cleaned_data['state'] == User.STATE_ARCHIVE: |
|
|
|
user.archive() |
|
|
|
elif state.cleaned_data['state'] == User.STATE_ACTIVE: |
|
|
|
user.unarchive() |
|
|
|
elif state.cleaned_data['state'] == User.STATE_DISABLED: |
|
|
|
user.state = User.STATE_DISABLED |
|
|
|
if user.changed_data: |
|
|
|
user.save() |
|
|
|
if state.changed_data: |
|
|
|
if state.cleaned_data['state'] == User.STATE_ARCHIVE: |
|
|
|
user.archive() |
|
|
|
elif state.cleaned_data['state'] == User.STATE_ACTIVE: |
|
|
|
user.unarchive() |
|
|
|
state.save() |
|
|
|
messages.success(request, "Etat changé avec succès") |
|
|
|
return redirect(reverse( |
|
|
|
'users:profil', |
|
|
|
@ -275,7 +273,7 @@ def new_serviceuser(request): |
|
|
|
|
|
|
|
@login_required |
|
|
|
@can_edit(ServiceUser) |
|
|
|
def edit_serviceuser(request, user, userid): |
|
|
|
def edit_serviceuser(request, serviceuser, serviceuserid): |
|
|
|
""" Edit a ServiceUser """ |
|
|
|
user = EditServiceUserForm(request.POST or None, instance=user) |
|
|
|
if user.is_valid(): |
|
|
|
@ -286,19 +284,19 @@ def edit_serviceuser(request, user, userid): |
|
|
|
user_object.save() |
|
|
|
messages.success(request, "L'user a bien été modifié") |
|
|
|
return redirect(reverse('users:index-serviceusers')) |
|
|
|
return form({'userform': user, 'action_name':'Editer un serviceuser'}, 'users/user.html', request) |
|
|
|
return form({'userform': serviceuser, 'action_name':'Editer un serviceuser'}, 'users/user.html', request) |
|
|
|
|
|
|
|
|
|
|
|
@login_required |
|
|
|
@can_delete(ServiceUser) |
|
|
|
def del_serviceuser(request, user, userid): |
|
|
|
def del_serviceuser(request, serviceuser, serviceuserid): |
|
|
|
"""Suppression d'un ou plusieurs serviceusers""" |
|
|
|
if request.method == "POST": |
|
|
|
user.delete() |
|
|
|
messages.success(request, "L'user a été détruite") |
|
|
|
return redirect(reverse('users:index-serviceusers')) |
|
|
|
return form( |
|
|
|
{'objet': user, 'objet_name': 'serviceuser'}, |
|
|
|
{'objet': serviceuser, 'objet_name': 'serviceuser'}, |
|
|
|
'users/delete.html', |
|
|
|
request |
|
|
|
) |
|
|
|
@ -572,16 +570,7 @@ def index(request): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.USERS_INDEX |
|
|
|
) |
|
|
|
paginator = Paginator(users_list, pagination_number) |
|
|
|
page = request.GET.get('page') |
|
|
|
try: |
|
|
|
users_list = paginator.page(page) |
|
|
|
except PageNotAnInteger: |
|
|
|
# If page is not an integer, deliver first page. |
|
|
|
users_list = paginator.page(1) |
|
|
|
except EmptyPage: |
|
|
|
# If page is out of range (e.g. 9999), deliver last page of results. |
|
|
|
users_list = paginator.page(paginator.num_pages) |
|
|
|
users_list = re2o_paginator(request, users_list, pagination_number) |
|
|
|
return render(request, 'users/index.html', {'users_list': users_list}) |
|
|
|
|
|
|
|
|
|
|
|
@ -597,16 +586,7 @@ def index_clubs(request): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.USERS_INDEX |
|
|
|
) |
|
|
|
paginator = Paginator(clubs_list, pagination_number) |
|
|
|
page = request.GET.get('page') |
|
|
|
try: |
|
|
|
clubs_list = paginator.page(page) |
|
|
|
except PageNotAnInteger: |
|
|
|
# If page is not an integer, deliver first page. |
|
|
|
clubs_list = paginator.page(1) |
|
|
|
except EmptyPage: |
|
|
|
# If page is out of range (e.g. 9999), deliver last page of results. |
|
|
|
clubs_list = paginator.page(paginator.num_pages) |
|
|
|
clubs_list = re2o_paginator(request, clubs_list, pagination_number) |
|
|
|
return render(request, 'users/index_clubs.html', {'clubs_list': clubs_list}) |
|
|
|
|
|
|
|
|
|
|
|
@ -622,16 +602,7 @@ def index_ban(request): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.USERS_INDEX_BAN |
|
|
|
) |
|
|
|
paginator = Paginator(ban_list, pagination_number) |
|
|
|
page = request.GET.get('page') |
|
|
|
try: |
|
|
|
ban_list = paginator.page(page) |
|
|
|
except PageNotAnInteger: |
|
|
|
# If page isn't an integer, deliver first page |
|
|
|
ban_list = paginator.page(1) |
|
|
|
except EmptyPage: |
|
|
|
# If page is out of range (e.g. 9999), deliver last page of results. |
|
|
|
ban_list = paginator.page(paginator.num_pages) |
|
|
|
ban_list = re2o_paginator(request, ban_list, pagination_number) |
|
|
|
return render(request, 'users/index_ban.html', {'ban_list': ban_list}) |
|
|
|
|
|
|
|
|
|
|
|
@ -647,16 +618,7 @@ def index_white(request): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.USERS_INDEX_BAN |
|
|
|
) |
|
|
|
paginator = Paginator(white_list, pagination_number) |
|
|
|
page = request.GET.get('page') |
|
|
|
try: |
|
|
|
white_list = paginator.page(page) |
|
|
|
except PageNotAnInteger: |
|
|
|
# If page isn't an integer, deliver first page |
|
|
|
white_list = paginator.page(1) |
|
|
|
except EmptyPage: |
|
|
|
# If page is out of range (e.g. 9999), deliver last page of results. |
|
|
|
white_list = paginator.page(paginator.num_pages) |
|
|
|
white_list = re2o_paginator(request, white_list, pagination_number) |
|
|
|
return render( |
|
|
|
request, |
|
|
|
'users/index_whitelist.html', |
|
|
|
@ -676,16 +638,7 @@ def index_school(request): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.USERS_INDEX_SCHOOL |
|
|
|
) |
|
|
|
paginator = Paginator(school_list, pagination_number) |
|
|
|
page = request.GET.get('page') |
|
|
|
try: |
|
|
|
school_list = paginator.page(page) |
|
|
|
except PageNotAnInteger: |
|
|
|
# If page isn't an integer, deliver first page |
|
|
|
school_list = paginator.page(1) |
|
|
|
except EmptyPage: |
|
|
|
# If page is out of range (e.g. 9999), deliver last page of results. |
|
|
|
school_list = paginator.page(paginator.num_pages) |
|
|
|
school_list = re2o_paginator(request, school_list, pagination_number) |
|
|
|
return render( |
|
|
|
request, |
|
|
|
'users/index_schools.html', |
|
|
|
@ -754,6 +707,8 @@ def profil(request, users, userid): |
|
|
|
request.GET.get('order'), |
|
|
|
SortTable.MACHINES_INDEX |
|
|
|
) |
|
|
|
pagination_large_number = GeneralOption.get_cached_value('pagination_large_number') |
|
|
|
machines = re2o_paginator(request, machines, pagination_large_number) |
|
|
|
factures = Facture.objects.filter(user=users) |
|
|
|
factures = SortTable.sort( |
|
|
|
factures, |
|
|
|
|