From: yomguy Date: Wed, 30 Jan 2013 12:03:22 +0000 (+0100) Subject: re-add host context processor X-Git-Tag: 1.3-TC~51 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=be1882e22158dcb76cda83aa176965fd3e511060;p=teleforma.git re-add host context processor --- diff --git a/teleforma/context_processors.py b/teleforma/context_processors.py index c1475798..c71332d9 100644 --- a/teleforma/context_processors.py +++ b/teleforma/context_processors.py @@ -35,6 +35,56 @@ from teleforma.views.core import * +from django.conf import settings +import socket +import fcntl +import struct + +interfaces = ['eth0', 'eth1', 'eth2', 'eth0-eth2', 'eth3', 'eth4', + 'wlan0', 'wlan1', 'wlan2', 'wlan3', 'wlan4'] + +def get_ip_address(ifname): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + ip = socket.inet_ntoa(fcntl.ioctl( + s.fileno(), + 0x8915, # SIOCGIFADDR + struct.pack('256s', ifname[:15]) + )[20:24]) + return ip + +def get_local_host(): + ip = '' + for interface in interfaces: + try: + ip = get_ip_address(interface) + if ip: + local_ip = ip + break + except: + local_ip = '127.0.0.1' + return local_ip + + +def get_http_host(request): + host = request.META['REMOTE_ADDR'] + if ':' in host: + host = host.split(':')[0] + return host + + +def host(request): + request_host = get_http_host(request) + local_host = get_local_host() + + if request_host.split('.')[0] == local_host.split('.')[0] or \ + request_host == '127.0.0.1' or request_host == 'localhost': + # LAN access + ip = local_host + else: + ip = settings.ROUTER_IP + + return {'HOST': ip } + def seminar_progress(user, seminar): """return the user progress of a seminar in percent @@ -154,3 +204,5 @@ def total_progress(request): return {'total_progress': int(progress/len(seminars))} else: return {'total_progress': 0} + + diff --git a/teleforma/views/core.py b/teleforma/views/core.py index eb47e34c..873cad03 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -155,9 +155,9 @@ def get_periods(user): periods = Period.objects.all() if settings.TELEFORMA_E_LEARNING_TYPE == 'CRFPA': - student = user.crfpa_student.all() + student = user.student.all() if student: - student = user.crfpa_student.get() + student = user.student.get() periods = student.period.all() elif settings.TELEFORMA_E_LEARNING_TYPE == 'AE':