diff options
Diffstat (limited to 'core/views/statistics.py')
-rw-r--r-- | core/views/statistics.py | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/core/views/statistics.py b/core/views/statistics.py index 6c1e538..8bd7072 100644 --- a/core/views/statistics.py +++ b/core/views/statistics.py @@ -15,21 +15,12 @@ from troggle.parsers.people import GetPersonExpeditionNameLookup, foreign_friend # from django.views.generic.list import ListView """Very simple report pages summarizing data about the whole set of expeditions and of -the status of data inconsistencies +the status of data inconsistencies. Also the wallets summary report. """ - -def svxfilewild(request, year=None): - """Looks for survexfiles which do not have an associated - wallet, per year - """ +def legs_by_expo(expos): legsbyexpo = [] addupsurvexlength = 0.0 addupsurvexlegs = 0 - - if not year: - expos = Expedition.objects.all() - else: - expos = Expedition.objects.filter(year=year) for expedition in expos: survexblocks = expedition.survexblock_set.all() @@ -42,7 +33,9 @@ def svxfilewild(request, year=None): addupsurvexlegs += legsyear legsbyexpo.append((expedition, {"nsurvexlegs": legsyear, "survexleglength": survexleglength})) legsbyexpo.reverse() - + return legsbyexpo, addupsurvexlegs, addupsurvexlength + +def legs_and_lengths(expos): svxwild = [] svxforeign = [] wildlength = 0.0 @@ -66,6 +59,23 @@ def svxfilewild(request, year=None): for p in people: team.append(p.personname) sb.team = team + return svxwild, svxforeign, wildlength, foreignlength + +def svxfilewild(request, year=None): + """Looks for survexfiles which do not have an associated + wallet, per year. This should not be in this file, but with the other wallets reports. + """ + + + if not year: + expos = Expedition.objects.all() + else: + expos = Expedition.objects.filter(year=year) + + legsbyexpo, addupsurvexlegs, addupsurvexlength = legs_by_expo(expos) + + svxwild, svxforeign, wildlength, foreignlength = legs_and_lengths(expos) + walletslength = 0.0 if year: wallets = Wallet.objects.filter(walletyear__year=year) @@ -73,7 +83,7 @@ def svxfilewild(request, year=None): for sb in w.survexblock_set.all(): walletslength += sb.legslength if not year: - year = current_expo() + year = " - all years" return render(request, "survexfilewild.html", {"addupsurvexlength": addupsurvexlength / 1000, "legsbyexpo": legsbyexpo, @@ -86,7 +96,27 @@ def svxfilewild(request, year=None): "svxwild": svxwild, "svxforeign": svxforeign} ) - + +def stats(request): + """Calculates number of survey blocks, the number of survey legs and the survey length for each year. + This is only underground survey legs, but includes ARGE as well as Expo survex files. + """ + statsDict = {} + statsDict["expoCount"] = f"{Expedition.objects.count():,}" + statsDict["caveCount"] = f"{Cave.objects.count():,}" + statsDict["personCount"] = f"{Person.objects.count():,}" + statsDict["walletsCount"] = f"{Wallet.objects.count():,}" + statsDict["logbookEntryCount"] = f"{LogbookEntry.objects.count():,}" + + expos = Expedition.objects.all() + legsbyexpo, addupsurvexlegs, addupsurvexlength = legs_by_expo(expos) + + renderDict = { + **statsDict, + **{"addupsurvexlength": addupsurvexlength / 1000, "legsbyexpo": legsbyexpo, "nsurvexlegs": addupsurvexlegs, "year": current_expo()}, + } # new syntax + return render(request, "statistics.html", renderDict) + def therionissues(request): """Page displaying contents of a file produced during data import""" logname = "therionrefs.log" @@ -229,36 +259,6 @@ def pathsreport(request): ) -def stats(request): - """Calculates number of survey blocks, the number of survey legs and the survey length for each year. - This is only underground survey legs, but includes ARGE as well as Expo survex files. - """ - statsDict = {} - statsDict["expoCount"] = f"{Expedition.objects.count():,}" - statsDict["caveCount"] = f"{Cave.objects.count():,}" - statsDict["personCount"] = f"{Person.objects.count():,}" - statsDict["logbookEntryCount"] = f"{LogbookEntry.objects.count():,}" - - legsbyexpo = [] - addupsurvexlength = 0.0 - addupsurvexlegs = 0 - for expedition in Expedition.objects.all(): - survexblocks = expedition.survexblock_set.all() - legsyear = 0 - survexleglength = 0.0 - for survexblock in survexblocks: - survexleglength += survexblock.legslength - legsyear += int(survexblock.legsall) - addupsurvexlength += survexleglength - addupsurvexlegs += legsyear - legsbyexpo.append((expedition, {"nsurvexlegs": legsyear, "survexleglength": survexleglength})) - legsbyexpo.reverse() - - renderDict = { - **statsDict, - **{"addupsurvexlength": addupsurvexlength / 1000, "legsbyexpo": legsbyexpo, "nsurvexlegs": addupsurvexlegs, "year": current_expo()}, - } # new syntax - return render(request, "statistics.html", renderDict) def dataissues(request): |