84 |
84 |
from astakos.im.endpoints.qh import timeline_charge
|
85 |
85 |
from astakos.im.settings import (COOKIE_DOMAIN, LOGOUT_NEXT,
|
86 |
86 |
LOGGING_LEVEL, PAGINATE_BY, RESOURCES_PRESENTATION_DATA, PAGINATE_BY_ALL)
|
87 |
|
from astakos.im.tasks import request_billing
|
|
87 |
#from astakos.im.tasks import request_billing
|
88 |
88 |
from astakos.im.api.callpoint import AstakosCallpoint
|
89 |
89 |
|
90 |
90 |
import astakos.im.messages as astakos_messages
|
... | ... | |
1319 |
1319 |
context_instance=get_context(request),)
|
1320 |
1320 |
|
1321 |
1321 |
|
1322 |
|
#@require_http_methods(["GET"])
|
1323 |
|
@require_http_methods(["POST", "GET"])
|
1324 |
|
@signed_terms_required
|
1325 |
|
@login_required
|
1326 |
|
def billing(request):
|
1327 |
|
|
1328 |
|
today = datetime.today()
|
1329 |
|
month_last_day = calendar.monthrange(today.year, today.month)[1]
|
1330 |
|
start = request.POST.get('datefrom', None)
|
1331 |
|
if start:
|
1332 |
|
today = datetime.fromtimestamp(int(start))
|
1333 |
|
month_last_day = calendar.monthrange(today.year, today.month)[1]
|
1334 |
|
|
1335 |
|
start = datetime(today.year, today.month, 1).strftime("%s")
|
1336 |
|
end = datetime(today.year, today.month, month_last_day).strftime("%s")
|
1337 |
|
r = request_billing.apply(args=('pgerakios@grnet.gr',
|
1338 |
|
int(start) * 1000,
|
1339 |
|
int(end) * 1000))
|
1340 |
|
data = {}
|
1341 |
|
|
1342 |
|
try:
|
1343 |
|
status, data = r.result
|
1344 |
|
data = _clear_billing_data(data)
|
1345 |
|
if status != 200:
|
1346 |
|
messages.error(request, _(astakos_messages.BILLING_ERROR) % status)
|
1347 |
|
except:
|
1348 |
|
messages.error(request, r.result)
|
1349 |
|
|
1350 |
|
return render_response(
|
1351 |
|
template='im/billing.html',
|
1352 |
|
context_instance=get_context(request),
|
1353 |
|
data=data,
|
1354 |
|
zerodate=datetime(month=1, year=1970, day=1),
|
1355 |
|
today=today,
|
1356 |
|
start=int(start),
|
1357 |
|
month_last_day=month_last_day)
|
1358 |
|
|
1359 |
|
|
1360 |
|
def _clear_billing_data(data):
|
1361 |
|
|
1362 |
|
# remove addcredits entries
|
1363 |
|
def isnotcredit(e):
|
1364 |
|
return e['serviceName'] != "addcredits"
|
1365 |
|
|
1366 |
|
# separate services
|
1367 |
|
def servicefilter(service_name):
|
1368 |
|
service = service_name
|
1369 |
|
|
1370 |
|
def fltr(e):
|
1371 |
|
return e['serviceName'] == service
|
1372 |
|
return fltr
|
|
1322 |
##@require_http_methods(["GET"])
|
|
1323 |
#@require_http_methods(["POST", "GET"])
|
|
1324 |
#@signed_terms_required
|
|
1325 |
#@login_required
|
|
1326 |
#def billing(request):
|
|
1327 |
#
|
|
1328 |
# today = datetime.today()
|
|
1329 |
# month_last_day = calendar.monthrange(today.year, today.month)[1]
|
|
1330 |
# start = request.POST.get('datefrom', None)
|
|
1331 |
# if start:
|
|
1332 |
# today = datetime.fromtimestamp(int(start))
|
|
1333 |
# month_last_day = calendar.monthrange(today.year, today.month)[1]
|
|
1334 |
#
|
|
1335 |
# start = datetime(today.year, today.month, 1).strftime("%s")
|
|
1336 |
# end = datetime(today.year, today.month, month_last_day).strftime("%s")
|
|
1337 |
# r = request_billing.apply(args=('pgerakios@grnet.gr',
|
|
1338 |
# int(start) * 1000,
|
|
1339 |
# int(end) * 1000))
|
|
1340 |
# data = {}
|
|
1341 |
#
|
|
1342 |
# try:
|
|
1343 |
# status, data = r.result
|
|
1344 |
# data = _clear_billing_data(data)
|
|
1345 |
# if status != 200:
|
|
1346 |
# messages.error(request, _(astakos_messages.BILLING_ERROR) % status)
|
|
1347 |
# except:
|
|
1348 |
# messages.error(request, r.result)
|
|
1349 |
#
|
|
1350 |
# return render_response(
|
|
1351 |
# template='im/billing.html',
|
|
1352 |
# context_instance=get_context(request),
|
|
1353 |
# data=data,
|
|
1354 |
# zerodate=datetime(month=1, year=1970, day=1),
|
|
1355 |
# today=today,
|
|
1356 |
# start=int(start),
|
|
1357 |
# month_last_day=month_last_day)
|
1373 |
1358 |
|
1374 |
|
data['bill_nocredits'] = filter(isnotcredit, data['bill'])
|
1375 |
|
data['bill_vmtime'] = filter(servicefilter('vmtime'), data['bill'])
|
1376 |
|
data['bill_diskspace'] = filter(servicefilter('diskspace'), data['bill'])
|
1377 |
|
data['bill_addcredits'] = filter(servicefilter('addcredits'), data['bill'])
|
1378 |
1359 |
|
1379 |
|
return data
|
|
1360 |
#def _clear_billing_data(data):
|
|
1361 |
#
|
|
1362 |
# # remove addcredits entries
|
|
1363 |
# def isnotcredit(e):
|
|
1364 |
# return e['serviceName'] != "addcredits"
|
|
1365 |
#
|
|
1366 |
# # separate services
|
|
1367 |
# def servicefilter(service_name):
|
|
1368 |
# service = service_name
|
|
1369 |
#
|
|
1370 |
# def fltr(e):
|
|
1371 |
# return e['serviceName'] == service
|
|
1372 |
# return fltr
|
|
1373 |
#
|
|
1374 |
# data['bill_nocredits'] = filter(isnotcredit, data['bill'])
|
|
1375 |
# data['bill_vmtime'] = filter(servicefilter('vmtime'), data['bill'])
|
|
1376 |
# data['bill_diskspace'] = filter(servicefilter('diskspace'), data['bill'])
|
|
1377 |
# data['bill_addcredits'] = filter(servicefilter('addcredits'), data['bill'])
|
|
1378 |
#
|
|
1379 |
# return data
|
1380 |
1380 |
|
1381 |
1381 |
|
1382 |
1382 |
#@require_http_methods(["GET"])
|