forked from expo/troggle
move *_views files to /views/*
This commit is contained in:
143
core/views/statistics.py
Normal file
143
core/views/statistics.py
Normal file
@@ -0,0 +1,143 @@
|
||||
import datetime
|
||||
import os.path
|
||||
import re
|
||||
from collections import OrderedDict
|
||||
|
||||
import django.db.models
|
||||
from django.db.models import Min, Max
|
||||
from django.shortcuts import render
|
||||
from django.template import Context, loader
|
||||
from django.template.defaultfilters import slugify
|
||||
from django.utils import timezone
|
||||
#from django.views.generic.list import ListView
|
||||
|
||||
from troggle.core.models import Expedition, Person, PersonExpedition
|
||||
from troggle.core.models_caves import Cave, LogbookEntry
|
||||
from troggle.core.models_survex import SurvexBlock
|
||||
|
||||
import troggle.settings as settings
|
||||
|
||||
|
||||
def pathsreport(request):
|
||||
pathsdict = OrderedDict()
|
||||
try:
|
||||
pathsdict = {
|
||||
# "BOGUS" : str( settings.BOGUS),
|
||||
"JSLIB_URL" : str( settings.JSLIB_URL),
|
||||
# "CSSLIB_URL" : str( settings.CSSLIB_URL),
|
||||
"CAVEDESCRIPTIONS" : str( settings.CAVEDESCRIPTIONS),
|
||||
"DIR_ROOT" : str( settings.DIR_ROOT),
|
||||
"ENTRANCEDESCRIPTIONS" : str( settings.ENTRANCEDESCRIPTIONS),
|
||||
"EXPOUSER_EMAIL" : str( settings.EXPOUSER_EMAIL),
|
||||
"EXPOUSERPASS" : str("<redacted>"),
|
||||
"EXPOUSER" : str( settings.EXPOUSER),
|
||||
"EXPOWEB" : str( settings.EXPOWEB),
|
||||
"EXPOWEB_URL" : str( settings.EXPOWEB_URL),
|
||||
"FILES" : str( settings.FILES),
|
||||
"LOGFILE" : str( settings.LOGFILE),
|
||||
"LOGIN_REDIRECT_URL" : str( settings.LOGIN_REDIRECT_URL),
|
||||
"MEDIA_ROOT" : str( settings.MEDIA_ROOT),
|
||||
"MEDIA_URL" : str( settings.MEDIA_URL),
|
||||
"PHOTOS_URL" : str( settings.PHOTOS_URL),
|
||||
"PYTHON_PATH" : str( settings.PYTHON_PATH),
|
||||
"REPOS_ROOT_PATH" : str( settings.REPOS_ROOT_PATH),
|
||||
"ROOT_URLCONF" : str( settings.ROOT_URLCONF),
|
||||
"STATIC_URL" : str( settings.STATIC_URL),
|
||||
"SURVEX_DATA" : str( settings.SURVEX_DATA),
|
||||
"SURVEY_SCANS" : str( settings.SURVEY_SCANS),
|
||||
"SURVEYS" : str( settings.SURVEYS),
|
||||
"SURVEYS_URL" : str( settings.SURVEYS_URL),
|
||||
"SURVEXPORT" : str( settings.SURVEXPORT),
|
||||
"THREEDCACHEDIR" : str( settings.THREEDCACHEDIR),
|
||||
"TUNNEL_DATA" : str( settings.TUNNEL_DATA),
|
||||
"URL_ROOT" : str( settings.URL_ROOT)
|
||||
}
|
||||
except:
|
||||
pathsdict["! EXCEPTION !"] = "missing or exta string constant in troggle/settings"
|
||||
|
||||
pathstype = OrderedDict()
|
||||
try:
|
||||
pathstype = {
|
||||
# "BOGUS" : type(settings.BOGUS),
|
||||
"JSLIB_URL" : type(settings.JSLIB_URL),
|
||||
# "CSSLIB_URL" : type(settings.CSSLIB_URL),
|
||||
"CAVEDESCRIPTIONS" : type(settings.CAVEDESCRIPTIONS),
|
||||
"DIR_ROOT" : type(settings.DIR_ROOT),
|
||||
"ENTRANCEDESCRIPTIONS" : type(settings.ENTRANCEDESCRIPTIONS),
|
||||
"EXPOUSER_EMAIL" : type(settings.EXPOUSER_EMAIL),
|
||||
"EXPOUSERPASS" : type(settings.EXPOUSERPASS),
|
||||
"EXPOUSER" : type(settings.EXPOUSER),
|
||||
"EXPOWEB" : type(settings.EXPOWEB),
|
||||
"EXPOWEB_URL" : type(settings.EXPOWEB_URL),
|
||||
"FILES" : type(settings.FILES),
|
||||
"LOGFILE" : type(settings.LOGFILE),
|
||||
"LOGIN_REDIRECT_URL" : type(settings.LOGIN_REDIRECT_URL),
|
||||
"MEDIA_ROOT" : type(settings.MEDIA_ROOT),
|
||||
"MEDIA_URL" : type(settings.MEDIA_URL),
|
||||
"PHOTOS_URL" : type(settings.PHOTOS_URL),
|
||||
"PYTHON_PATH" : type(settings.PYTHON_PATH),
|
||||
"REPOS_ROOT_PATH" : type(settings.REPOS_ROOT_PATH),
|
||||
"ROOT_URLCONF" : type(settings.ROOT_URLCONF),
|
||||
"STATIC_URL" : type(settings.STATIC_URL),
|
||||
"SURVEX_DATA" : type(settings.SURVEX_DATA),
|
||||
"SURVEY_SCANS" : type(settings.SURVEY_SCANS),
|
||||
"SURVEYS" : type(settings.SURVEYS),
|
||||
"SURVEYS_URL" : type(settings.SURVEYS_URL),
|
||||
"SURVEXPORT" : type(settings.SURVEXPORT),
|
||||
"THREEDCACHEDIR" : type(settings.THREEDCACHEDIR),
|
||||
"TUNNEL_DATA" : type(settings.TUNNEL_DATA),
|
||||
"URL_ROOT" : type(settings.URL_ROOT)
|
||||
}
|
||||
except:
|
||||
pathstype["! EXCEPTION !"] = "missing or exta string constant in troggle/settings"
|
||||
|
||||
# settings are unique by paths are not
|
||||
ncodes = len(pathsdict)
|
||||
bycodeslist = sorted(pathsdict.items()) # a list of tuples
|
||||
bycodeslist2 = []
|
||||
|
||||
for k, p in bycodeslist:
|
||||
bycodeslist2.append((k, p, str(pathstype[k])))
|
||||
|
||||
bypaths = sorted(pathsdict.values()) # a list
|
||||
bypathslist = []
|
||||
|
||||
for p in bypaths:
|
||||
for k in pathsdict.keys():
|
||||
if pathsdict[k] == p:
|
||||
bypathslist.append((p, k, str(pathstype[k])))
|
||||
del pathsdict[k]
|
||||
break
|
||||
|
||||
return render(request, 'pathsreport.html', {
|
||||
"pathsdict":pathsdict,
|
||||
"bycodeslist":bycodeslist2,
|
||||
"bypathslist":bypathslist,
|
||||
"ncodes":ncodes})
|
||||
|
||||
def stats(request):
|
||||
statsDict={}
|
||||
statsDict['expoCount'] = "{:,}".format(Expedition.objects.count())
|
||||
statsDict['caveCount'] = "{:,}".format(Cave.objects.count())
|
||||
statsDict['personCount'] = "{:,}".format(Person.objects.count())
|
||||
statsDict['logbookEntryCount'] = "{:,}".format(LogbookEntry.objects.count())
|
||||
|
||||
legsbyexpo = [ ]
|
||||
addupsurvexlength = 0
|
||||
for expedition in Expedition.objects.all():
|
||||
survexblocks = expedition.survexblock_set.all()
|
||||
legsyear=0
|
||||
survexleglength = 0.0
|
||||
for survexblock in survexblocks:
|
||||
survexleglength += survexblock.legslength
|
||||
try:
|
||||
legsyear += int(survexblock.legsall)
|
||||
except:
|
||||
pass
|
||||
addupsurvexlength += survexleglength
|
||||
legsbyexpo.append((expedition, {"nsurvexlegs": "{:,}".format(legsyear),
|
||||
"survexleglength":"{:,.0f}".format(survexleglength)}))
|
||||
legsbyexpo.reverse()
|
||||
|
||||
renderDict = {**statsDict, **{ "addupsurvexlength":addupsurvexlength/1000, "legsbyexpo":legsbyexpo }} # new syntax
|
||||
return render(request,'statistics.html', renderDict)
|
||||
Reference in New Issue
Block a user