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.
136 lines
4.3 KiB
136 lines
4.3 KiB
import hashlib
|
|
import time
|
|
from django.db.models import Q
|
|
from django.http import Http404
|
|
from lms.decors import response_decor
|
|
from lms.settings import COMMENT_SECRET
|
|
from lms.tools import check_role, comment_auth_data
|
|
from finance.models import Bill, ServiceRequest, Price
|
|
from management.models import News, Faq, FaqTitle
|
|
from courses.models import Course, CourseTheme
|
|
from management.reports import get_now_success_hw, get_second_success_hw
|
|
|
|
|
|
@response_decor(template='super_bill.html')
|
|
def super_bill(request):
|
|
return {}
|
|
|
|
|
|
@response_decor(template='manager_profile.html')
|
|
def profile(request):
|
|
checker = check_role(request.user, 'M')
|
|
if checker['result']:
|
|
return {}
|
|
else:
|
|
return checker
|
|
|
|
|
|
@response_decor(template='manager_account.html')
|
|
def account(request):
|
|
checker = check_role(request.user, 'M')
|
|
if checker['result']:
|
|
return {'prices': Price.objects.filter(public=True)}
|
|
else:
|
|
return checker
|
|
|
|
|
|
@response_decor(template='news_one.html', without_auth=True)
|
|
def news(request, id):
|
|
try:
|
|
news = News.objects.get(id=id)
|
|
except News.DoesNotExist:
|
|
raise Http404
|
|
|
|
return {'news': news}
|
|
|
|
|
|
@response_decor(template='manager_history.html')
|
|
def history(request):
|
|
if request.user.in_role != 'T' and request.user.in_role != 'U':
|
|
return {'yourbills': Bill.objects.filter(manager=request.user).order_by('-id')}
|
|
else:
|
|
raise Http404
|
|
|
|
|
|
@response_decor(template='manager_servicerequest.html')
|
|
def servicerequest(request):
|
|
if request.user.in_role != 'T' and request.user.in_role != 'U':
|
|
return {'servicerequests': ServiceRequest.objects.filter(Q(status='S', manager=request.user)|Q(status='W', manager=request.user)).order_by('date')}
|
|
else:
|
|
raise Http404
|
|
|
|
|
|
@response_decor(template='super_profile.html')
|
|
def super_profile(request):
|
|
checker = check_role(request.user, 'S')
|
|
if checker['result']:
|
|
return {}
|
|
else:
|
|
return checker
|
|
|
|
|
|
@response_decor(template='super_history.html')
|
|
def super_history(request):
|
|
if request.user.in_role != 'T' and request.user.in_role != 'U' and request.user.in_role != 'M':
|
|
return {'yourbills': Bill.objects.all().order_by('-id'), 'failed': ServiceRequest.objects.filter(status='B').order_by('-id')}
|
|
else:
|
|
raise Http404
|
|
|
|
|
|
@response_decor(template='super_servicerequest.html')
|
|
def super_servicerequest(request):
|
|
if request.user.in_role != 'T' and request.user.in_role != 'U' and request.user.in_role != 'M':
|
|
return {'servicerequests': ServiceRequest.objects.filter(Q(status='S')|Q(status='W')).order_by('date')}
|
|
else:
|
|
raise Http404
|
|
|
|
|
|
@response_decor(template='admin_profile.html')
|
|
def admin_profile(request):
|
|
checker = check_role(request.user, 'A')
|
|
if checker['result']:
|
|
return {}
|
|
else:
|
|
return checker
|
|
|
|
|
|
@response_decor(template='faq.html', without_auth=True)
|
|
def faq(request):
|
|
a_faq = False
|
|
if request.user.is_authenticated() and (request.user.is_admin or request.user.is_staff):
|
|
if request.user.is_authenticated():
|
|
if request.user.is_admin:
|
|
a_faq = FaqTitle.objects.filter(Q(is_admin=True)|Q(is_staff=True))
|
|
elif request.user.is_staff:
|
|
a_faq = FaqTitle.objects.filter(is_admin=False, is_staff=True)
|
|
|
|
return {'faqs': [i.get_face() for i in FaqTitle.objects.filter(is_admin=False, is_staff=False)],
|
|
'a_faqs': [i.get_face() for i in a_faq] if a_faq else None,
|
|
'admin': True if request.user.is_authenticated() and (request.user.is_staff or request.user.is_admin) else False}
|
|
|
|
|
|
@response_decor(template='faq_one.html', without_auth=False)
|
|
def faq_one(request, id):
|
|
try:
|
|
faq = Faq.objects.get(id=id)
|
|
except Faq.DoesNotExist:
|
|
raise Http404
|
|
else:
|
|
faq = faq.get_face()
|
|
|
|
return {'faq': faq}
|
|
|
|
|
|
@response_decor(template='progress_report.html')
|
|
def progress_report(request):
|
|
map = []
|
|
for i in Course.objects.filter(public=True):
|
|
c = {'title': i.get_title(), 'themes': CourseTheme.objects.filter(course=i), 'id': i.id,
|
|
'journals': []}
|
|
map.append(c)
|
|
return {'map': map, 'get_now_success_hw': get_now_success_hw(), 'get_second_success_hw': get_second_success_hw()}
|
|
|
|
|
|
@response_decor(template='cabinet.html')
|
|
def render_management_cabinet(request):
|
|
return {} |