summaryrefslogtreecommitdiffstats
path: root/core/views/statistics.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2022-04-05 10:37:31 +0300
committerPhilip Sargent <philip.sargent@klebos.com>2022-04-05 10:38:52 +0300
commit71ed0815cc2393f68a9c2e8eeeadbe0bed619feb (patch)
tree7a3aa7522f8c0926b8429521321a94f8b4d9ca7e /core/views/statistics.py
parent41b2bcee4febf79d90ca83318a8d3110e46951ac (diff)
downloadtroggle-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.py346
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})