forked from expo/troggle
import fixes & statistics table
This commit is contained in:
112
core/views_statistics.py
Normal file
112
core/views_statistics.py
Normal file
@@ -0,0 +1,112 @@
|
||||
import datetime
|
||||
import os.path
|
||||
import re
|
||||
|
||||
import django.db.models
|
||||
from django.db.models import Min, Max
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import render, render_to_response
|
||||
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 SurvexLeg, SurvexBlock
|
||||
|
||||
import troggle.settings as settings
|
||||
from settings import *
|
||||
|
||||
|
||||
def pathsreport(request):
|
||||
pathsdict={
|
||||
"ADMIN_MEDIA_PREFIX" : ADMIN_MEDIA_PREFIX,
|
||||
"ADMIN_MEDIA_PREFIX" : ADMIN_MEDIA_PREFIX,
|
||||
"CAVEDESCRIPTIONSX" : CAVEDESCRIPTIONS,
|
||||
"DIR_ROOT" : DIR_ROOT,
|
||||
"ENTRANCEDESCRIPTIONS" : ENTRANCEDESCRIPTIONS,
|
||||
"EXPOUSER_EMAIL" : EXPOUSER_EMAIL,
|
||||
"EXPOUSERPASS" :"<redacted>",
|
||||
"EXPOUSER" : EXPOUSER,
|
||||
"EXPOWEB" : EXPOWEB,
|
||||
"EXPOWEB_URL" : EXPOWEB_URL,
|
||||
"FILES" : FILES,
|
||||
"JSLIB_URL" : JSLIB_URL,
|
||||
"LOGFILE" : LOGFILE,
|
||||
"LOGIN_REDIRECT_URL" : LOGIN_REDIRECT_URL,
|
||||
"MEDIA_ADMIN_DIR" : MEDIA_ADMIN_DIR,
|
||||
"MEDIA_ROOT" : MEDIA_ROOT,
|
||||
"MEDIA_URL" : MEDIA_URL,
|
||||
#"PHOTOS_ROOT" : PHOTOS_ROOT,
|
||||
"PHOTOS_URL" : PHOTOS_URL,
|
||||
"PYTHON_PATH" : PYTHON_PATH,
|
||||
"REPOS_ROOT_PATH" : REPOS_ROOT_PATH,
|
||||
"ROOT_URLCONF" : ROOT_URLCONF,
|
||||
"STATIC_ROOT" : STATIC_ROOT,
|
||||
"STATIC_URL" : STATIC_URL,
|
||||
"SURVEX_DATA" : SURVEX_DATA,
|
||||
"SURVEY_SCANS" : SURVEY_SCANS,
|
||||
"SURVEYS" : SURVEYS,
|
||||
"SURVEYS_URL" : SURVEYS_URL,
|
||||
"SVX_URL" : SVX_URL,
|
||||
"TEMPLATE_DIRS" : TEMPLATE_DIRS,
|
||||
"THREEDCACHEDIR" : THREEDCACHEDIR,
|
||||
"TINY_MCE_MEDIA_ROOT" : TINY_MCE_MEDIA_ROOT,
|
||||
"TINY_MCE_MEDIA_URL" : TINY_MCE_MEDIA_URL,
|
||||
"TUNNEL_DATA" : TUNNEL_DATA,
|
||||
"URL_ROOT" : URL_ROOT
|
||||
}
|
||||
|
||||
ncodes = len(pathsdict)
|
||||
|
||||
bycodeslist = sorted(pathsdict.items())
|
||||
bypathslist = sorted(iter(pathsdict.items()), key=lambda x: x[1])
|
||||
|
||||
return render(request, 'pathsreport.html', {
|
||||
"pathsdict":pathsdict,
|
||||
"bycodeslist":bycodeslist,
|
||||
"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())
|
||||
|
||||
blockroots = SurvexBlock.objects.filter(name="rootblock")
|
||||
if len(blockroots)>1:
|
||||
print(" ! more than one root survexblock {}".format(len(blockroots)))
|
||||
for sbr in blockroots:
|
||||
print("{} {} {} {}".format(sbr.id, sbr.name, sbr.text, sbr.date))
|
||||
sbr = blockroots[0]
|
||||
totalsurvexlength = sbr.totalleglength
|
||||
try:
|
||||
nimportlegs = int(sbr.text)
|
||||
except:
|
||||
print("{} {} {} {}".format(sbr.id, sbr.name, sbr.text, sbr.date))
|
||||
nimportlegs = -1
|
||||
|
||||
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.totalleglength
|
||||
try:
|
||||
legsyear += int(survexblock.text)
|
||||
except:
|
||||
pass
|
||||
addupsurvexlength += survexleglength
|
||||
legsbyexpo.append((expedition, {"nsurvexlegs": "{:,}".format(legsyear),
|
||||
"survexleglength":"{:,.0f}".format(survexleglength)}))
|
||||
legsbyexpo.reverse()
|
||||
survexlegs = SurvexLeg.objects.all()
|
||||
|
||||
renderDict = {**statsDict, **{ "nsurvexlegs": "{:,}".format(nimportlegs), "totalsurvexlength":totalsurvexlength/1000, "addupsurvexlength":addupsurvexlength/1000, "legsbyexpo":legsbyexpo }} # new syntax
|
||||
return render(request,'statistics.html', renderDict)
|
||||
Reference in New Issue
Block a user