summaryrefslogtreecommitdiffstats
path: root/core/views_statistics.py
blob: 5419c661f1be488429d598849abf13f04f5b7438 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import datetime
import os.path
import re

import django.db.models
from django.db.models import Min, Max
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, render_to_response
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 SurvexLeg, SurvexBlock

import troggle.settings as settings
from settings import *


def pathsreport(request):
    pathsdict={
    "ADMIN_MEDIA_PREFIX" : ADMIN_MEDIA_PREFIX,
    "ADMIN_MEDIA_PREFIX" : ADMIN_MEDIA_PREFIX,
    "CAVEDESCRIPTIONSX" : CAVEDESCRIPTIONS,
    "DIR_ROOT" : DIR_ROOT,
    "ENTRANCEDESCRIPTIONS" : ENTRANCEDESCRIPTIONS,
    "EXPOUSER_EMAIL" : EXPOUSER_EMAIL,
    "EXPOUSERPASS" :"<redacted>",
    "EXPOUSER" : EXPOUSER,
    "EXPOWEB" : EXPOWEB,
    "EXPOWEB_URL" : EXPOWEB_URL,
    "FILES" : FILES,
    "JSLIB_URL" : JSLIB_URL,
    "LOGFILE" : LOGFILE,
    "LOGIN_REDIRECT_URL" : LOGIN_REDIRECT_URL,
    "MEDIA_ADMIN_DIR" : MEDIA_ADMIN_DIR,
    "MEDIA_ROOT" : MEDIA_ROOT,
    "MEDIA_URL" : MEDIA_URL,
    #"PHOTOS_ROOT" : PHOTOS_ROOT,
    "PHOTOS_URL" : PHOTOS_URL,
    "PYTHON_PATH" : PYTHON_PATH,
    "REPOS_ROOT_PATH" : REPOS_ROOT_PATH,
    "ROOT_URLCONF" : ROOT_URLCONF,
    "STATIC_ROOT" : STATIC_ROOT,
    "STATIC_URL" : STATIC_URL,
    "SURVEX_DATA" : SURVEX_DATA,
    "SURVEY_SCANS" : SURVEY_SCANS,
    "SURVEYS" : SURVEYS,
    "SURVEYS_URL" : SURVEYS_URL,
    "SVX_URL" : SVX_URL,
#    "TEMPLATE_DIRS" : TEMPLATE_DIRS,
    "THREEDCACHEDIR" : THREEDCACHEDIR,
#    "TINY_MCE_MEDIA_ROOT" : TINY_MCE_MEDIA_ROOT,
#    "TINY_MCE_MEDIA_URL" : TINY_MCE_MEDIA_URL,
    "TUNNEL_DATA" : TUNNEL_DATA,
    "URL_ROOT" : URL_ROOT
    }
    # settings are unique by paths are not
    ncodes = len(pathsdict)
    bycodeslist = sorted(pathsdict.items())
    
    # create a temporary list
    bypathslist = []
    # iterate through the dictionary and append each tuple into the temporary list 
    for key, value in pathsdict.items():
        tmptuple = (key, value)
        bypathslist.append(tmptuple)
    # bypathslist = sorted(bypathslist)

    return render(request, 'pathsreport.html', { 
        "pathsdict":pathsdict, 
        "bycodeslist":bycodeslist, 
        "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())
    try:
        blockroots = SurvexBlock.objects.filter(name="rootblock")
        if len(blockroots)>1:
            print(" ! more than one root survexblock {}".format(len(blockroots)))
            for sbr in blockroots:
                    print("{} {} {} {}".format(sbr.id, sbr.name, sbr.legsall, sbr.date))
        sbr = blockroots[0]
        totalsurvexlength = sbr.totalleglength
        nimportlegs = sbr.legsall
    except:
        # if no files yet imported into database
        #survexfile = models_survex.SurvexFile(path=settings.SURVEX_TOPNAME, cave=None)
        #survexblockdummy = models_survex.SurvexBlock(name="dummy", survexpath="", cave=None, survexfile=survexfile, 
        #legsall=0, legssplay=0, legssurfc=0, totalleglength=0.0)
        #sbr = survexblockdummy
        totalsurvexlength = 0.0
        nimportlegs = -1
        print("{} {} {} {}".format(sbr.id, sbr.name, sbr.legsall, sbr.date))

    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.totalleglength
            try:
                legsyear += int(survexblock.legsall)
            except:
                pass
        addupsurvexlength += survexleglength
        legsbyexpo.append((expedition, {"nsurvexlegs": "{:,}".format(legsyear), 
                "survexleglength":"{:,.0f}".format(survexleglength)}))
    legsbyexpo.reverse() 
    #survexlegs = SurvexLeg.objects.all()

    renderDict = {**statsDict, **{ "nsurvexlegs": "{:,}".format(nimportlegs), "totalsurvexlength":totalsurvexlength/1000, "addupsurvexlength":addupsurvexlength/1000, "legsbyexpo":legsbyexpo }} # new syntax
    return render(request,'statistics.html',  renderDict)