Revision f8f86e83 snf-astakos-app/astakos/im/views.py
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
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"]) |
Also available in: Unified diff