Browse Source

Merge branch 'devel' of https://github.com/bashmak/djing into devel

devel
http 9 years ago
parent
commit
0859c243bd
  1. 17
      abonapp/templates/abonapp/charts.html
  2. 14
      abonapp/views.py
  3. 16
      static/js/Chart.bundle.min.js
  4. 24
      static/js/all.min.js
  5. 2
      static/js/bootstrap-datetimepicker.min.js
  6. 2
      templates/all_base.html

17
abonapp/templates/abonapp/charts.html

@ -15,11 +15,11 @@
type: 'line',
data: {
datasets: [{
label: 'Траффик абонента',
label: 'Траффик в Mbit/s',
data: [{{ charts_data }}],
borderWidth: 1,
pointRadius: 1,
lineTension: 0.1
pointRadius: 0,
lineTension: 0
}]
},
options: {
@ -29,12 +29,15 @@
time: {
unit: 'hour',
min: {{ time_min }},
max: {{ time_max }},
displayFormats: {
hour: 'HH:MM:SS'
}
max: {{ time_max }}
},
position: 'bottom'
}],
yAxes: [{
scaleLabel: {
display: true,
labelString: 'Mbit/s'
}
}]
}
}

14
abonapp/views.py

@ -710,6 +710,9 @@ def clear_dev(request, gid, uid):
def charts(request, gid, uid):
from statistics.models import getModel
from datetime import datetime, date, time, timedelta
def byte_to_mbit(x):
return ((x/60)*8)/2**20
try:
StatElem = getModel()
abon = models.Abon.objects.get(pk=uid)
@ -722,9 +725,10 @@ def charts(request, gid, uid):
charts_data = None
else:
charts_data = StatElem.objects.filter(ip=abon.ip_address.ip)
oct_limit = StatElem.percentile([cd.octets for cd in charts_data], 0.05)
charts_data = ["{x:%d,y:%d}" % (cd.cur_time.timestamp(), cd.octets) for cd in charts_data if
cd.octets < oct_limit and cd.octets > 102400]
oct_limit = StatElem.percentile([cd.octets for cd in charts_data], 0.01)
# ниже возвращаем пары значений трафика который переведён в mByte, и unix timestamp
charts_data = ["{x:%d,y:%.4f}" % (cd.cur_time.timestamp(), byte_to_mbit(cd.octets)) for cd in charts_data if
cd.octets < oct_limit]
except models.Abon.DoesNotExist:
messages.error(request, _('Abon does not exist'))
@ -742,8 +746,8 @@ def charts(request, gid, uid):
'abon_group': abongroup,
'abon': abon,
'charts_data': ','.join(charts_data),
'time_min': midnight.timestamp(),
'time_max': (midnight + timedelta(hours=23, minutes=59, seconds=59)).timestamp()
'time_min': int(midnight.timestamp()),
'time_max': int((midnight + timedelta(hours=23, minutes=59, seconds=59)).timestamp())
})

16
static/js/Chart.bundle.min.js
File diff suppressed because it is too large
View File

24
static/js/all.min.js
File diff suppressed because it is too large
View File

2
static/js/bootstrap-datetimepicker.min.js
File diff suppressed because it is too large
View File

2
templates/all_base.html

@ -8,8 +8,6 @@
<link rel="stylesheet" href="/static/css/all.min.css">
<link rel="stylesheet" href="/static/css/custom.css">
<script src="/static/js/all.min.js"></script>
<script type="text/javascript" src="/static/js/datetime_with_moment.min.js"></script>
<script src="/static/js/Chart.min.js"></script>
<script src="/static/js/my.js"></script>
<link rel="shortcut icon" href="/static/img/favicon_m.ico">
<meta name="author" content="Дмитрий Новиков">

Loading…
Cancel
Save