diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-03-31 21:51:17 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-03-31 21:51:17 +0100 |
commit | 7cccf4daf15f16f3b7b4dc7909862fc2839caf4f (patch) | |
tree | c7d01dc580db7d1ce7adce46b3ee172ae645558a /core/views/statistics.py | |
parent | e1cf43c260c75b3e047d02c49d8e26b2bb14e153 (diff) | |
download | troggle-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.py | 143 |
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) |