mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-22 03:13:12 +00:00
Les limites de pagination et de création machines pour les users sont gérées dans préférences
This commit is contained in:
parent
51759d2c93
commit
6f9932add4
8 changed files with 63 additions and 30 deletions
|
@ -41,8 +41,9 @@ from .models import Facture, Article, Vente, Cotisation, Paiement, Banque
|
||||||
from .forms import NewFactureForm, TrezEditFactureForm, EditFactureForm, ArticleForm, DelArticleForm, PaiementForm, DelPaiementForm, BanqueForm, DelBanqueForm, NewFactureFormPdf, SelectArticleForm
|
from .forms import NewFactureForm, TrezEditFactureForm, EditFactureForm, ArticleForm, DelArticleForm, PaiementForm, DelPaiementForm, BanqueForm, DelBanqueForm, NewFactureFormPdf, SelectArticleForm
|
||||||
from users.models import User
|
from users.models import User
|
||||||
from .tex import render_tex
|
from .tex import render_tex
|
||||||
from re2o.settings import ASSO_NAME, ASSO_ADDRESS_LINE1, ASSO_ADDRESS_LINE2, ASSO_SIRET, ASSO_EMAIL, ASSO_PHONE, LOGO_PATH, PAGINATION_NUMBER
|
from re2o.settings import ASSO_NAME, ASSO_ADDRESS_LINE1, ASSO_ADDRESS_LINE2, ASSO_SIRET, ASSO_EMAIL, ASSO_PHONE, LOGO_PATH
|
||||||
from re2o import settings
|
from re2o import settings
|
||||||
|
from preferences.models import GeneralOption
|
||||||
|
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
@ -339,9 +340,11 @@ def del_banque(request):
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('trésorier')
|
@permission_required('trésorier')
|
||||||
def control(request):
|
def control(request):
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
facture_list = Facture.objects.order_by('date').reverse()
|
facture_list = Facture.objects.order_by('date').reverse()
|
||||||
controlform_set = modelformset_factory(Facture, fields=('control','valid'), extra=0)
|
controlform_set = modelformset_factory(Facture, fields=('control','valid'), extra=0)
|
||||||
paginator = Paginator(facture_list, PAGINATION_NUMBER)
|
paginator = Paginator(facture_list, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
facture_list = paginator.page(page)
|
facture_list = paginator.page(page)
|
||||||
|
@ -380,8 +383,10 @@ def index_banque(request):
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
def index(request):
|
def index(request):
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
facture_list = Facture.objects.order_by('date').select_related('user').select_related('paiement').prefetch_related('vente_set').reverse()
|
facture_list = Facture.objects.order_by('date').select_related('user').select_related('paiement').prefetch_related('vente_set').reverse()
|
||||||
paginator = Paginator(facture_list, PAGINATION_NUMBER)
|
paginator = Paginator(facture_list, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
facture_list = paginator.page(page)
|
facture_list = paginator.page(page)
|
||||||
|
@ -425,8 +430,10 @@ def history(request, object, id):
|
||||||
else:
|
else:
|
||||||
messages.error(request, "Objet inconnu")
|
messages.error(request, "Objet inconnu")
|
||||||
return redirect("/cotisations/")
|
return redirect("/cotisations/")
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
reversions = Version.objects.get_for_object(object_instance)
|
reversions = Version.objects.get_for_object(object_instance)
|
||||||
paginator = Paginator(reversions, PAGINATION_NUMBER)
|
paginator = Paginator(reversions, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
reversions = paginator.page(page)
|
reversions = paginator.page(page)
|
||||||
|
|
|
@ -45,8 +45,7 @@ from cotisations.models import Facture, Vente, Article, Banque, Paiement, Cotisa
|
||||||
from machines.models import Machine, MachineType, IpType, Extension, Interface, Domain, IpList
|
from machines.models import Machine, MachineType, IpType, Extension, Interface, Domain, IpList
|
||||||
from machines.views import all_active_assigned_interfaces_count, all_active_interfaces_count
|
from machines.views import all_active_assigned_interfaces_count, all_active_interfaces_count
|
||||||
from topologie.models import Switch, Port, Room
|
from topologie.models import Switch, Port, Room
|
||||||
|
from preferences.models import GeneralOption
|
||||||
from re2o.settings import PAGINATION_NUMBER, PAGINATION_LARGE_NUMBER
|
|
||||||
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
@ -68,8 +67,10 @@ def form(ctx, template, request):
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
def index(request):
|
def index(request):
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
revisions = Revision.objects.all().order_by('date_created').reverse().select_related('user').prefetch_related('version_set__object')
|
revisions = Revision.objects.all().order_by('date_created').reverse().select_related('user').prefetch_related('version_set__object')
|
||||||
paginator = Paginator(revisions, PAGINATION_NUMBER)
|
paginator = Paginator(revisions, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
revisions = paginator.page(page)
|
revisions = paginator.page(page)
|
||||||
|
|
|
@ -48,7 +48,7 @@ from .forms import IpTypeForm, DelIpTypeForm, AliasForm, DelAliasForm, NsForm, D
|
||||||
from .models import IpType, Machine, Interface, IpList, MachineType, Extension, Mx, Ns, Domain
|
from .models import IpType, Machine, Interface, IpList, MachineType, Extension, Mx, Ns, Domain
|
||||||
from users.models import User
|
from users.models import User
|
||||||
from users.models import all_has_access
|
from users.models import all_has_access
|
||||||
from re2o.settings import PAGINATION_NUMBER, PAGINATION_LARGE_NUMBER, MAX_INTERFACES, MAX_ALIAS
|
from preferences.models import GeneralOption, OptionalMachine
|
||||||
|
|
||||||
def full_domain_validator(request, domain):
|
def full_domain_validator(request, domain):
|
||||||
""" Validation du nom de domaine, extensions dans type de machine, prefixe pas plus long que 63 caractères """
|
""" Validation du nom de domaine, extensions dans type de machine, prefixe pas plus long que 63 caractères """
|
||||||
|
@ -129,12 +129,14 @@ def new_machine(request, userid):
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
messages.error(request, u"Utilisateur inexistant" )
|
messages.error(request, u"Utilisateur inexistant" )
|
||||||
return redirect("/machines/")
|
return redirect("/machines/")
|
||||||
|
options, created = OptionalMachine.objects.get_or_create()
|
||||||
|
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||||
if not request.user.has_perms(('cableur',)):
|
if not request.user.has_perms(('cableur',)):
|
||||||
if user != request.user:
|
if user != request.user:
|
||||||
messages.error(request, "Vous ne pouvez pas ajouter une machine à un autre user que vous sans droit")
|
messages.error(request, "Vous ne pouvez pas ajouter une machine à un autre user que vous sans droit")
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
if user.user_interfaces().count() >= MAX_INTERFACES:
|
if user.user_interfaces().count() >= max_lambdauser_interfaces:
|
||||||
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % MAX_INTERFACES)
|
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_interfaces)
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
machine = NewMachineForm(request.POST or None)
|
machine = NewMachineForm(request.POST or None)
|
||||||
interface = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
interface = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||||
|
@ -241,11 +243,13 @@ def new_interface(request, machineid):
|
||||||
messages.error(request, u"Machine inexistante" )
|
messages.error(request, u"Machine inexistante" )
|
||||||
return redirect("/machines")
|
return redirect("/machines")
|
||||||
if not request.user.has_perms(('cableur',)):
|
if not request.user.has_perms(('cableur',)):
|
||||||
|
options, created = OptionalMachine.objects.get_or_create()
|
||||||
|
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||||
if machine.user != request.user:
|
if machine.user != request.user:
|
||||||
messages.error(request, "Vous ne pouvez pas ajouter une interface à une machine d'un autre user que vous sans droit")
|
messages.error(request, "Vous ne pouvez pas ajouter une interface à une machine d'un autre user que vous sans droit")
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
if machine.user.user_interfaces().count() >= MAX_INTERFACES:
|
if machine.user.user_interfaces().count() >= max_lambdauser_interfaces:
|
||||||
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % MAX_INTERFACES)
|
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_interfaces)
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
interface_form = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
interface_form = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||||
domain_form = AliasForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
domain_form = AliasForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||||
|
@ -544,11 +548,13 @@ def add_alias(request, interfaceid):
|
||||||
messages.error(request, u"Interface inexistante" )
|
messages.error(request, u"Interface inexistante" )
|
||||||
return redirect("/machines")
|
return redirect("/machines")
|
||||||
if not request.user.has_perms(('cableur',)):
|
if not request.user.has_perms(('cableur',)):
|
||||||
|
options, created = OptionalMachine.objects.get_or_create()
|
||||||
|
max_lambdauser_aliases = options.max_lambdauser_aliases
|
||||||
if interface.machine.user != request.user:
|
if interface.machine.user != request.user:
|
||||||
messages.error(request, "Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit")
|
messages.error(request, "Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit")
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
if Domain.objects.filter(cname__in=Domain.objects.filter(interface_parent__in=interface.machine.user.user_interfaces())).count() >= MAX_ALIAS:
|
if Domain.objects.filter(cname__in=Domain.objects.filter(interface_parent__in=interface.machine.user.user_interfaces())).count() >= max_lambdauser_aliases:
|
||||||
messages.error(request, "Vous avez atteint le maximum d'alias autorisées que vous pouvez créer vous même (%s) " % MAX_ALIAS)
|
messages.error(request, "Vous avez atteint le maximum d'alias autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_aliases)
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
alias = AliasForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
alias = AliasForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||||
if alias.is_valid():
|
if alias.is_valid():
|
||||||
|
@ -609,8 +615,10 @@ def del_alias(request, interfaceid):
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
def index(request):
|
def index(request):
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_large_number = options.pagination_large_number
|
||||||
machines_list = Machine.objects.select_related('user').prefetch_related('interface_set__domain__extension').prefetch_related('interface_set__ipv4__ip_type__extension').prefetch_related('interface_set__type').prefetch_related('interface_set__domain__related_domain__extension').order_by('pk')
|
machines_list = Machine.objects.select_related('user').prefetch_related('interface_set__domain__extension').prefetch_related('interface_set__ipv4__ip_type__extension').prefetch_related('interface_set__type').prefetch_related('interface_set__domain__related_domain__extension').order_by('pk')
|
||||||
paginator = Paginator(machines_list, PAGINATION_LARGE_NUMBER)
|
paginator = Paginator(machines_list, pagination_large_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
machines_list = paginator.page(page)
|
machines_list = paginator.page(page)
|
||||||
|
@ -717,8 +725,10 @@ def history(request, object, id):
|
||||||
else:
|
else:
|
||||||
messages.error(request, "Objet inconnu")
|
messages.error(request, "Objet inconnu")
|
||||||
return redirect("/machines/")
|
return redirect("/machines/")
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
reversions = Version.objects.get_for_object(object_instance)
|
reversions = Version.objects.get_for_object(object_instance)
|
||||||
paginator = Paginator(reversions, PAGINATION_NUMBER)
|
paginator = Paginator(reversions, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
reversions = paginator.page(page)
|
reversions = paginator.page(page)
|
||||||
|
|
|
@ -156,10 +156,6 @@ RIGHTS_LINK = {
|
||||||
'bofh' : ['bureau','trésorier'],
|
'bofh' : ['bureau','trésorier'],
|
||||||
}
|
}
|
||||||
|
|
||||||
PAGINATION_NUMBER = 25
|
|
||||||
|
|
||||||
PAGINATION_LARGE_NUMBER = 8
|
|
||||||
|
|
||||||
GRAPH_MODELS = {
|
GRAPH_MODELS = {
|
||||||
'all_applications': True,
|
'all_applications': True,
|
||||||
'group_models': True,
|
'group_models': True,
|
||||||
|
|
|
@ -35,8 +35,7 @@ from machines.models import Machine, Interface
|
||||||
from topologie.models import Port, Switch
|
from topologie.models import Port, Switch
|
||||||
from cotisations.models import Facture
|
from cotisations.models import Facture
|
||||||
from search.models import SearchForm, SearchFormPlus
|
from search.models import SearchForm, SearchFormPlus
|
||||||
|
from preferences.models import GeneralOption
|
||||||
from re2o.settings import SEARCH_RESULT
|
|
||||||
|
|
||||||
def form(ctx, template, request):
|
def form(ctx, template, request):
|
||||||
c = ctx
|
c = ctx
|
||||||
|
@ -106,12 +105,14 @@ def search_result(search, type, request):
|
||||||
recherche['switch_list'] = Switch.objects.filter(details__icontains = search)
|
recherche['switch_list'] = Switch.objects.filter(details__icontains = search)
|
||||||
if not request.user.has_perms(('cableur',)):
|
if not request.user.has_perms(('cableur',)):
|
||||||
recherche['switch_list'] = None
|
recherche['switch_list'] = None
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
search_display_page = options.search_display_page
|
||||||
|
|
||||||
for r in recherche:
|
for r in recherche:
|
||||||
if recherche[r] != None:
|
if recherche[r] != None:
|
||||||
recherche[r] = recherche[r][:SEARCH_RESULT]
|
recherche[r] = recherche[r][:search_display_page]
|
||||||
|
|
||||||
recherche.update({'max_result': SEARCH_RESULT})
|
recherche.update({'max_result': search_display_page})
|
||||||
|
|
||||||
return recherche
|
return recherche
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,9 @@ from users.models import User
|
||||||
|
|
||||||
from machines.forms import AliasForm, NewMachineForm, EditMachineForm, EditInterfaceForm, AddInterfaceForm
|
from machines.forms import AliasForm, NewMachineForm, EditMachineForm, EditInterfaceForm, AddInterfaceForm
|
||||||
from machines.views import free_ip, full_domain_validator, assign_ipv4
|
from machines.views import free_ip, full_domain_validator, assign_ipv4
|
||||||
|
from preferences.models import GeneralOption
|
||||||
|
|
||||||
from re2o.settings import ASSO_PSEUDO, PAGINATION_NUMBER
|
from re2o.settings import ASSO_PSEUDO
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
|
@ -69,8 +70,10 @@ def history(request, object, id):
|
||||||
else:
|
else:
|
||||||
messages.error(request, "Objet inconnu")
|
messages.error(request, "Objet inconnu")
|
||||||
return redirect("/topologie/")
|
return redirect("/topologie/")
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
reversions = Version.objects.get_for_object(object_instance)
|
reversions = Version.objects.get_for_object(object_instance)
|
||||||
paginator = Paginator(reversions, PAGINATION_NUMBER)
|
paginator = Paginator(reversions, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
reversions = paginator.page(page)
|
reversions = paginator.page(page)
|
||||||
|
|
|
@ -42,6 +42,7 @@ from django.core.validators import MinLengthValidator
|
||||||
from topologie.models import Room
|
from topologie.models import Room
|
||||||
from cotisations.models import Cotisation, Facture, Vente
|
from cotisations.models import Cotisation, Facture, Vente
|
||||||
from machines.models import Interface, Machine
|
from machines.models import Interface, Machine
|
||||||
|
from preferences.models import OptionalUser
|
||||||
|
|
||||||
def remove_user_room(room):
|
def remove_user_room(room):
|
||||||
""" Déménage de force l'ancien locataire de la chambre """
|
""" Déménage de force l'ancien locataire de la chambre """
|
||||||
|
@ -687,6 +688,13 @@ class BaseInfoForm(ModelForm):
|
||||||
'telephone',
|
'telephone',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def clean_telephone(self):
|
||||||
|
telephone = self.cleaned_data['telephone']
|
||||||
|
preferences, created = OptionalUser.objects.get_or_create()
|
||||||
|
if not telephone and preferences.is_tel_mandatory:
|
||||||
|
raise forms.ValidationError("Un numéro de téléphone valide est requis")
|
||||||
|
return telephone
|
||||||
|
|
||||||
class EditInfoForm(BaseInfoForm):
|
class EditInfoForm(BaseInfoForm):
|
||||||
class Meta(BaseInfoForm.Meta):
|
class Meta(BaseInfoForm.Meta):
|
||||||
fields = [
|
fields = [
|
||||||
|
|
|
@ -45,9 +45,10 @@ from cotisations.models import Facture
|
||||||
from machines.models import Machine, Interface
|
from machines.models import Machine, Interface
|
||||||
from users.forms import MassArchiveForm, PassForm, ResetPasswordForm
|
from users.forms import MassArchiveForm, PassForm, ResetPasswordForm
|
||||||
from machines.views import unassign_ips, assign_ips
|
from machines.views import unassign_ips, assign_ips
|
||||||
|
from preferences.models import GeneralOption
|
||||||
|
|
||||||
from re2o.login import hashNT
|
from re2o.login import hashNT
|
||||||
from re2o.settings import REQ_EXPIRE_STR, EMAIL_FROM, ASSO_NAME, ASSO_EMAIL, SITE_NAME, PAGINATION_NUMBER
|
from re2o.settings import REQ_EXPIRE_STR, EMAIL_FROM, ASSO_NAME, ASSO_EMAIL, SITE_NAME
|
||||||
|
|
||||||
def archive(user):
|
def archive(user):
|
||||||
""" Archive un utilisateur """
|
""" Archive un utilisateur """
|
||||||
|
@ -534,8 +535,10 @@ def mass_archive(request):
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
def index(request):
|
def index(request):
|
||||||
""" Affiche l'ensemble des users, need droit cableur """
|
""" Affiche l'ensemble des users, need droit cableur """
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
users_list = User.objects.select_related('room').order_by('state', 'name')
|
users_list = User.objects.select_related('room').order_by('state', 'name')
|
||||||
paginator = Paginator(users_list, PAGINATION_NUMBER)
|
paginator = Paginator(users_list, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
users_list = paginator.page(page)
|
users_list = paginator.page(page)
|
||||||
|
@ -551,8 +554,10 @@ def index(request):
|
||||||
@permission_required('cableur')
|
@permission_required('cableur')
|
||||||
def index_ban(request):
|
def index_ban(request):
|
||||||
""" Affiche l'ensemble des ban, need droit cableur """
|
""" Affiche l'ensemble des ban, need droit cableur """
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
ban_list = Ban.objects.order_by('date_start').select_related('user').reverse()
|
ban_list = Ban.objects.order_by('date_start').select_related('user').reverse()
|
||||||
paginator = Paginator(ban_list, PAGINATION_NUMBER)
|
paginator = Paginator(ban_list, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
ban_list = paginator.page(page)
|
ban_list = paginator.page(page)
|
||||||
|
@ -652,8 +657,10 @@ def history(request, object, id):
|
||||||
else:
|
else:
|
||||||
messages.error(request, "Objet inconnu")
|
messages.error(request, "Objet inconnu")
|
||||||
return redirect("/users/")
|
return redirect("/users/")
|
||||||
|
options, created = GeneralOption.objects.get_or_create()
|
||||||
|
pagination_number = options.pagination_number
|
||||||
reversions = Version.objects.get_for_object(object_instance)
|
reversions = Version.objects.get_for_object(object_instance)
|
||||||
paginator = Paginator(reversions, PAGINATION_NUMBER)
|
paginator = Paginator(reversions, pagination_number)
|
||||||
page = request.GET.get('page')
|
page = request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
reversions = paginator.page(page)
|
reversions = paginator.page(page)
|
||||||
|
|
Loading…
Reference in a new issue