summaryrefslogtreecommitdiffstats
path: root/core/views/statistics.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2021-03-31 21:51:17 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2021-03-31 21:51:17 +0100
commit7cccf4daf15f16f3b7b4dc7909862fc2839caf4f (patch)
treec7d01dc580db7d1ce7adce46b3ee172ae645558a /core/views/statistics.py
parente1cf43c260c75b3e047d02c49d8e26b2bb14e153 (diff)
downloadtroggle-7cccf4daf15f16f3b7b4dc7909862fc2839caf4f.tar.gz
troggle-7cccf4daf15f16f3b7b4dc7909862fc2839caf4f.tar.bz2
troggle-7cccf4daf15f16f3b7b4dc7909862fc2839caf4f.zip
move *_views files to /views/*
Diffstat (limited to 'core/views/statistics.py')
-rw-r--r--core/views/statistics.py143
1 files changed, 143 insertions, 0 deletions
diff --git a/core/views/statistics.py b/core/views/statistics.py
new file mode 100644
index 0000000..3102d51
--- /dev/null
+++ b/core/views/statistics.py
@@ -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)