diff --git a/abonapp/templates/abonapp/charts.html b/abonapp/templates/abonapp/charts.html
index 052a0a5..58bfbc0 100644
--- a/abonapp/templates/abonapp/charts.html
+++ b/abonapp/templates/abonapp/charts.html
@@ -11,14 +11,6 @@
{% if charts_data %}
-
{% else %}
{% trans 'Static info was Not found' %}
{% endif %}
+
+
diff --git a/abonapp/views.py b/abonapp/views.py
index 35792d0..018f31e 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -579,21 +579,18 @@ def charts(request, gid, uid):
abon.group = Group.objects.get(pk=gid)
abon.save(update_fields=['group'])
- if abon.ip_address is None:
- charts_data = None
- else:
- charts_data = StatElem.objects.chart(
- abon.username,
- count_of_parts=30,
- want_date=wandate
- )
-
- abontariff = abon.active_tariff()
- if abontariff is not None:
- trf = abontariff.tariff
- high = trf.speedIn + trf.speedOut
- if high > 100:
- high = 100
+ charts_data = StatElem.objects.chart(
+ abon.username,
+ count_of_parts=30,
+ want_date=wandate
+ )
+
+ abontariff = abon.active_tariff()
+ if abontariff is not None:
+ trf = abontariff.tariff
+ high = trf.speedIn + trf.speedOut
+ if high > 100:
+ high = 100
except models.Abon.DoesNotExist:
messages.error(request, _('Abon does not exist'))
diff --git a/statistics/models.py b/statistics/models.py
index 5e772c0..7ce1f3b 100644
--- a/statistics/models.py
+++ b/statistics/models.py
@@ -1,6 +1,6 @@
import math
from datetime import datetime, timedelta, date, time
-from django.db import models, connection
+from django.db import models, connection, ProgrammingError
from django.utils.timezone import now
from mydefs import MyGenericIPAddressField
@@ -28,24 +28,29 @@ class StatManager(models.Manager):
def avarage(elements):
return sum(elements) / len(elements)
- charts_data = self.filter(uname=username)
- charts_times = [cd.cur_time.timestamp()*1000 for cd in charts_data]
- charts_octets = [cd.octets for cd in charts_data]
- if len(charts_octets) > 0 and len(charts_octets) == len(charts_times):
- charts_octets = split_list(charts_octets, count_of_parts)
- charts_octets = [byte_to_mbit(avarage(c)) for c in charts_octets]
-
- charts_times = split_list(charts_times, count_of_parts)
- charts_times = [avarage(t) for t in charts_times]
-
- charts_data = zip(charts_times, charts_octets)
- charts_data = ["{x: new Date(%d), y: %.2f}" % (cd[0], cd[1]) for cd in charts_data]
- midnight = datetime.combine(want_date, time.min)
- charts_data.append("{x:new Date(%d),y:0}" % (int(charts_times[-1:][0]) + 1))
- charts_data.append("{x:new Date(%d),y:0}" % (int((midnight + timedelta(days=1)).timestamp()) * 1000))
- return charts_data
- else:
- return
+ try:
+ charts_data = self.filter(uname=username)
+ charts_times = [cd.cur_time.timestamp()*1000 for cd in charts_data]
+ charts_octets = [cd.octets for cd in charts_data]
+ if len(charts_octets) > 0 and len(charts_octets) == len(charts_times):
+ charts_octets = split_list(charts_octets, count_of_parts)
+ charts_octets = [byte_to_mbit(avarage(c)) for c in charts_octets]
+
+ charts_times = split_list(charts_times, count_of_parts)
+ charts_times = [avarage(t) for t in charts_times]
+
+ charts_data = zip(charts_times, charts_octets)
+ charts_data = ["{x: new Date(%d), y: %.2f}" % (cd[0], cd[1]) for cd in charts_data]
+ midnight = datetime.combine(want_date, time.min)
+ charts_data.append("{x:new Date(%d),y:0}" % (int(charts_times[-1:][0]) + 1))
+ charts_data.append("{x:new Date(%d),y:0}" % (int((midnight + timedelta(days=1)).timestamp()) * 1000))
+ return charts_data
+ else:
+ return
+ except ProgrammingError as e:
+ if "Table 'djing_db_n.flowstat" in str(e):
+ return
+
class StatElem(models.Model):
diff --git a/templates/site_base.html b/templates/site_base.html
new file mode 100644
index 0000000..6585817
--- /dev/null
+++ b/templates/site_base.html
@@ -0,0 +1 @@
+{% include 'all_base.html' %}