You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
# -*- coding: utf-8 -*-
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import render, get_object_or_404, redirect
|
|
|
|
from models import Tariff
|
|
import mydefs
|
|
import forms
|
|
|
|
|
|
@login_required
|
|
@mydefs.only_admins
|
|
def tarifs(request):
|
|
tars = Tariff.objects.all()
|
|
|
|
# фильтр
|
|
dir, field = mydefs.order_helper(request)
|
|
if field:
|
|
tars = tars.order_by(field)
|
|
|
|
tars = mydefs.pag_mn(request, tars)
|
|
|
|
return render(request, 'tariff_app/tarifs.html', {
|
|
'tariflist': tars,
|
|
'dir': dir,
|
|
'order_by': request.GET.get('order_by')
|
|
})
|
|
|
|
|
|
@login_required
|
|
@mydefs.only_admins
|
|
def edit_tarif(request, tarif_id=0):
|
|
tarif_id = mydefs.safe_int(tarif_id)
|
|
|
|
warntext = ''
|
|
if request.method == 'POST':
|
|
frm = forms.TariffForm(request.POST)
|
|
if frm.is_valid():
|
|
frm.save()
|
|
return redirect('tarifs_link')
|
|
else:
|
|
warntext = u'Не все поля заполнены правильно, проверте и попробуйте ещё раз'
|
|
else:
|
|
if tarif_id == 0:
|
|
tarif = Tariff()
|
|
else:
|
|
tarif = get_object_or_404(Tariff, id=tarif_id)
|
|
frm = forms.TariffForm(instance=tarif)
|
|
|
|
return render(request, 'tariff_app/editTarif.html', {
|
|
'warntext': warntext,
|
|
'form': frm,
|
|
'tarif_id': tarif_id
|
|
})
|
|
|
|
|
|
@login_required
|
|
@mydefs.only_admins
|
|
def del_tarif(request, id):
|
|
tar_id = mydefs.safe_int(id)
|
|
get_object_or_404(Tariff, id=tar_id).delete()
|
|
return mydefs.res_success(request, 'tarifs_link')
|