diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2022-04-05 10:37:31 +0300 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2022-04-05 10:38:52 +0300 |
commit | 71ed0815cc2393f68a9c2e8eeeadbe0bed619feb (patch) | |
tree | 7a3aa7522f8c0926b8429521321a94f8b4d9ca7e /core/views/statistics.py | |
parent | 41b2bcee4febf79d90ca83318a8d3110e46951ac (diff) | |
download | troggle-71ed0815cc2393f68a9c2e8eeeadbe0bed619feb.tar.gz troggle-71ed0815cc2393f68a9c2e8eeeadbe0bed619feb.tar.bz2 troggle-71ed0815cc2393f68a9c2e8eeeadbe0bed619feb.zip |
Revert "update oddity with VS Code and WSL2"
This reverts commit 41b2bcee4febf79d90ca83318a8d3110e46951ac.
CR LF != LF issue
Diffstat (limited to 'core/views/statistics.py')
-rw-r--r-- | core/views/statistics.py | 346 |
1 files changed, 173 insertions, 173 deletions
diff --git a/core/views/statistics.py b/core/views/statistics.py index e276f89..ad77199 100644 --- a/core/views/statistics.py +++ b/core/views/statistics.py @@ -1,173 +1,173 @@ -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.troggle import Expedition, Person, PersonExpedition, DataIssue
-from troggle.core.models.caves import Cave, LogbookEntry, Entrance
-from troggle.core.models.survex import SurvexBlock, SurvexStation
-
-import troggle.settings as settings
-
-'''Very simple report pages summarizing data about the whole set of expeditions and of
-the status of data inconsistencies
-'''
-
-def pathsreport(request):
- pathsdict = OrderedDict()
- try:
- pathsdict = {
-# "BOGUS" : str( settings.BOGUS),
- "JSLIB_URL" : str( settings.JSLIB_URL),
- "JSLIB_ROOT" : str( settings.JSLIB_ROOT),
-# "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),
- "LIBDIR" : str( settings.LIBDIR),
- "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),
- "DRAWINGS_DATA" : str( settings.DRAWINGS_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),
- "JSLIB_ROOT" : type( settings.JSLIB_ROOT),
-# "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),
- "LIBDIR" : type( settings.LIBDIR),
- "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),
- "DRAWINGS_DATA" : type(settings.DRAWINGS_DATA),
- "URL_ROOT" : type(settings.URL_ROOT)
- }
- except:
- pathstype["! EXCEPTION !"] = "missing or exta string constant in troggle/settings"
- raise
-
- # 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)
-
-def dataissues(request):
- '''Each issue has a parser, a message and a url linking to the offending object after loading
- '''
- def myFunc(di):
- return di.parser.lower() + di.message.lower()
-
- dilist = list(DataIssue.objects.all())
- dilist.sort(key = myFunc)
-
- return render(request,'dataissues.html', {'didict': dilist})
-
-def eastings(request):
- '''report each Northing/Easting pair wherever recorded
- '''
- ents = []
- entrances = Entrance.objects.all()
- for e in entrances:
- if e.easting or e.northing:
- ents.append(e)
-
- stations = SurvexStation.objects.all()
-
- return render(request,'eastings.html', {'ents': ents, 'stations': stations})
+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.troggle import Expedition, Person, PersonExpedition, DataIssue +from troggle.core.models.caves import Cave, LogbookEntry, Entrance +from troggle.core.models.survex import SurvexBlock, SurvexStation + +import troggle.settings as settings + +'''Very simple report pages summarizing data about the whole set of expeditions and of +the status of data inconsistencies +''' + +def pathsreport(request): + pathsdict = OrderedDict() + try: + pathsdict = { +# "BOGUS" : str( settings.BOGUS), + "JSLIB_URL" : str( settings.JSLIB_URL), + "JSLIB_ROOT" : str( settings.JSLIB_ROOT), +# "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), + "LIBDIR" : str( settings.LIBDIR), + "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), + "DRAWINGS_DATA" : str( settings.DRAWINGS_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), + "JSLIB_ROOT" : type( settings.JSLIB_ROOT), +# "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), + "LIBDIR" : type( settings.LIBDIR), + "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), + "DRAWINGS_DATA" : type(settings.DRAWINGS_DATA), + "URL_ROOT" : type(settings.URL_ROOT) + } + except: + pathstype["! EXCEPTION !"] = "missing or exta string constant in troggle/settings" + raise + + # 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) + +def dataissues(request): + '''Each issue has a parser, a message and a url linking to the offending object after loading + ''' + def myFunc(di): + return di.parser.lower() + di.message.lower() + + dilist = list(DataIssue.objects.all()) + dilist.sort(key = myFunc) + + return render(request,'dataissues.html', {'didict': dilist}) + +def eastings(request): + '''report each Northing/Easting pair wherever recorded + ''' + ents = [] + entrances = Entrance.objects.all() + for e in entrances: + if e.easting or e.northing: + ents.append(e) + + stations = SurvexStation.objects.all() + + return render(request,'eastings.html', {'ents': ents, 'stations': stations}) |