1 |
9791e4f3
|
Marc Nicolas
|
|
2 |
|
|
|
3 |
|
|
from django.shortcuts import render, get_object_or_404
|
4 |
|
|
from webstat.forms import webstatForm
|
5 |
|
|
import models
|
6 |
|
|
from django.http import HttpResponseRedirect
|
7 |
|
|
from django.core.urlresolvers import reverse
|
8 |
|
|
from webstat.libStatSitools import *
|
9 |
|
|
|
10 |
|
|
'''
|
11 |
|
|
def home(request):
|
12 |
|
|
text = "Welcome on SiTools2 Webstat Interface"
|
13 |
|
|
return render(request, 'home.html', locals())
|
14 |
|
|
'''
|
15 |
|
|
|
16 |
|
|
def statview(request):
|
17 |
|
|
|
18 |
|
|
if request.method == 'POST':
|
19 |
|
|
form = webstatForm(request.POST)
|
20 |
|
|
if form.is_valid():
|
21 |
|
|
try:
|
22 |
|
|
form.save()
|
23 |
|
|
form_id = models.webstatModel.objects.filter().order_by('-id')[0].id
|
24 |
|
|
request.session['form_id'] = form_id
|
25 |
|
|
except BaseException, e:
|
26 |
|
|
print "Save FAILED : ", str(e)
|
27 |
|
|
return render(request, '500.html', locals())
|
28 |
|
|
return HttpResponseRedirect(reverse('webstat:results'))
|
29 |
|
|
else:
|
30 |
|
|
form = webstatForm()
|
31 |
|
|
return render(request, 'formWebStat.html', locals())
|
32 |
|
|
|
33 |
|
|
|
34 |
|
|
def result_view(request):
|
35 |
|
|
|
36 |
|
|
form_id = request.session.get('form_id')
|
37 |
|
|
form = get_object_or_404(models.webstatModel, pk=form_id)
|
38 |
|
|
|
39 |
|
|
if form.start_date is None:
|
40 |
|
|
start_tmp = "2012-03-01 00:00:00"
|
41 |
|
|
form.start_date = datetime(int(start_tmp[0:4]), int(start_tmp[5:7]), int(start_tmp[8:10]),
|
42 |
|
|
int(start_tmp[11:13]), int(start_tmp[14:16])).date()
|
43 |
|
|
if form.end_date is None:
|
44 |
|
|
form.end_date = datetime.now().date()
|
45 |
|
|
|
46 |
|
|
form_dico = instance_dict(form)
|
47 |
|
|
data = stat_log(form.application, form_dico)
|
48 |
|
|
return render(request, 'webStatResults.html', locals())
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
def instance_dict(instance, key_format=None):
|
52 |
|
|
"Returns a dictionary containing field names and values for the given instance"
|
53 |
|
|
from django.db.models.fields.related import ForeignKey
|
54 |
|
|
if key_format:
|
55 |
|
|
assert '%s' in key_format, 'key_format must contain a %s'
|
56 |
|
|
key = lambda key: key_format and key_format % key or key
|
57 |
|
|
|
58 |
|
|
d = {}
|
59 |
|
|
for field in instance._meta.fields:
|
60 |
|
|
attr = field.name
|
61 |
|
|
value = getattr(instance, attr)
|
62 |
|
|
if value is not None and isinstance(field, ForeignKey):
|
63 |
|
|
value = value._get_pk_val()
|
64 |
|
|
d[key(attr)] = value
|
65 |
|
|
for field in instance._meta.many_to_many:
|
66 |
|
|
d[key(field.name)] = [obj._get_pk_val() for obj in getattr(instance, field.attname).all()]
|
67 |
|
|
return d |