# Path: gpsmap/models.py
# class UltimosGps(models.Model):
#     patente = models.CharField(max_length=7, blank=True, null=True)
#     servicio = models.CharField(max_length=50, blank=True, null=True)
#     servicio_usuario = models.CharField(max_length=50, blank=True, null=True)
#     tiempo = models.DateTimeField(blank=True, null=True)
#     latitud = models.FloatField(blank=True, null=True)
#     longitud = models.FloatField(blank=True, null=True)
#     x = models.IntegerField(blank=True, null=True)
#     y = models.IntegerField(blank=True, null=True)
#     dist_en_ruta = models.IntegerField(blank=True, null=True)
#     dist_a_ruta = models.IntegerField(blank=True, null=True)
#     velocidad_instantanea = models.IntegerField(blank=True, null=True)
#     velocidad_2gps = models.IntegerField(blank=True, null=True)
#     velocidad_4gps = models.IntegerField(blank=True, null=True)
#     operador = models.IntegerField(blank=True, null=True)
#     orientacion = models.IntegerField(blank=True, null=True)
#     tipo = models.CharField(max_length=10, blank=True, null=True)
#     capacidad = models.IntegerField(blank=True, null=True)
# 
#     class Meta:
#         managed = False
#         db_table = 'ultimos_gps'
# 
# class BusesDiarios(models.Model):
#     servicio = models.CharField(max_length=50, primary_key=True)
#     patente = models.CharField(max_length=7, primary_key=True)
#     t_inicial = models.DateTimeField(primary_key=True)
#     t_final = models.DateTimeField(blank=True, null=True)
#     km_en_ruta = models.FloatField(blank=True, null=True)
#     km_fuera_ruta = models.FloatField(blank=True, null=True)
#     costo_en_ruta = models.FloatField(blank=True, null=True)
#     costo_fuera_ruta = models.FloatField(blank=True, null=True)
#     ultima_modificacion = models.DateTimeField(blank=True, null=True)
#     t_en_ruta = models.DurationField(blank=True, null=True)
#     t_fuera_ruta = models.DurationField(blank=True, null=True)
#     velocidad_media = models.FloatField(blank=True, null=True)
#     tipo_expedicion = models.IntegerField(blank=True, null=True)
#     existe_ruta = models.IntegerField(blank=True, null=True)
#     no_detenciones = models.IntegerField(blank=True, null=True)
# 
#     class Meta:
#         managed = False
#         db_table = 'buses_diarios'
#         unique_together = (('servicio', 'patente', 't_inicial'),)


from django.http import JsonResponse
from django.shortcuts import render
from django.views.generic import View
from gpsmap.models import UltimosGps, BusesDiarios

	response = []
	for aPosition in positions:
	    response.append({'patente': aPosition.patente, 
                             'servicioCodigo': aPosition.servicio, 
                	     'servicio': aPosition.servicio_usuario, 
                	     'distEnRuta': aPosition.dist_en_ruta, 
                	     'distARuta': aPosition.dist_a_ruta, 
                	     'velocidadInstantanea': aPosition.velocidad_instantanea, 
                	     'velocidad2GPS': aPosition.velocidad_2gps, 
                	     'velocidad4GPS': aPosition.velocidad_4gps, 
                	     'operador': aPosition.operador, 
                	     'latitud': aPosition.latitud, 
                	     'longitud': aPosition.longitud, 
                	     'tiempo': aPosition.tiempo,
                	     'orientacion': aPosition.orientacion,
                	     'tipo': aPosition.tipo,
                	     'capacidad': aPosition.capacidad})
	    #response.append({'patente': aPosition.patente, 'servicio': aPosition.servicio, 'latitud': aPosition.latitud, 'longitud': aPosition.longitud, 'tiempo': aPosition.tiempo})
	return JsonResponse(response, safe=False)

class GetMapPositionsByService(View):
    '''This class requests to the database the values of the actives users'''

    def __init__(self):
        """the contructor, context are the parameter given to the html template"""
	self.context={}

    def get(self, request, service, direction):
	# the position of interest are the ones ocurred in the last 10 minutes

# Path: gpsmap/models.py
# class UltimosGps(models.Model):
#     patente = models.CharField(max_length=7, blank=True, null=True)
#     servicio = models.CharField(max_length=50, blank=True, null=True)
#     servicio_usuario = models.CharField(max_length=50, blank=True, null=True)
#     tiempo = models.DateTimeField(blank=True, null=True)
#     latitud = models.FloatField(blank=True, null=True)
#     longitud = models.FloatField(blank=True, null=True)
#     x = models.IntegerField(blank=True, null=True)
#     y = models.IntegerField(blank=True, null=True)
#     dist_en_ruta = models.IntegerField(blank=True, null=True)
#     dist_a_ruta = models.IntegerField(blank=True, null=True)
#     velocidad_instantanea = models.IntegerField(blank=True, null=True)
#     velocidad_2gps = models.IntegerField(blank=True, null=True)
#     velocidad_4gps = models.IntegerField(blank=True, null=True)
#     operador = models.IntegerField(blank=True, null=True)
#     orientacion = models.IntegerField(blank=True, null=True)
#     tipo = models.CharField(max_length=10, blank=True, null=True)
#     capacidad = models.IntegerField(blank=True, null=True)
# 
#     class Meta:
#         managed = False
#         db_table = 'ultimos_gps'
# 
# class BusesDiarios(models.Model):
#     servicio = models.CharField(max_length=50, primary_key=True)
#     patente = models.CharField(max_length=7, primary_key=True)
#     t_inicial = models.DateTimeField(primary_key=True)
#     t_final = models.DateTimeField(blank=True, null=True)
#     km_en_ruta = models.FloatField(blank=True, null=True)
#     km_fuera_ruta = models.FloatField(blank=True, null=True)
#     costo_en_ruta = models.FloatField(blank=True, null=True)
#     costo_fuera_ruta = models.FloatField(blank=True, null=True)
#     ultima_modificacion = models.DateTimeField(blank=True, null=True)
#     t_en_ruta = models.DurationField(blank=True, null=True)
#     t_fuera_ruta = models.DurationField(blank=True, null=True)
#     velocidad_media = models.FloatField(blank=True, null=True)
#     tipo_expedicion = models.IntegerField(blank=True, null=True)
#     existe_ruta = models.IntegerField(blank=True, null=True)
#     no_detenciones = models.IntegerField(blank=True, null=True)
# 
#     class Meta:
#         managed = False
#         db_table = 'buses_diarios'
#         unique_together = (('servicio', 'patente', 't_inicial'),)


# Path: gpsmap/views.py
from django.http import JsonResponse
from django.shortcuts import render
from django.views.generic import View
from gpsmap.models import UltimosGps, BusesDiarios


	response = []
	for aPosition in positions:
	    response.append({'patente': aPosition.patente, 
                             'servicioCodigo': aPosition.servicio, 
                	     'servicio': aPosition.servicio_usuario, 
                	     'distEnRuta': aPosition.dist_en_ruta, 
                	     'distARuta': aPosition.dist_a_ruta, 
                	     'velocidadInstantanea': aPosition.velocidad_instantanea, 
                	     'velocidad2GPS': aPosition.velocidad_2gps, 
                	     'velocidad4GPS': aPosition.velocidad_4gps, 
                	     'operador': aPosition.operador, 
                	     'latitud': aPosition.latitud, 
                	     'longitud': aPosition.longitud, 
                	     'tiempo': aPosition.tiempo,
                	     'orientacion': aPosition.orientacion,
                	     'tipo': aPosition.tipo,
                	     'capacidad': aPosition.capacidad})
	    #response.append({'patente': aPosition.patente, 'servicio': aPosition.servicio, 'latitud': aPosition.latitud, 'longitud': aPosition.longitud, 'tiempo': aPosition.tiempo})
	return JsonResponse(response, safe=False)

class GetMapPositionsByService(View):
    '''This class requests to the database the values of the actives users'''

    def __init__(self):
        """the contructor, context are the parameter given to the html template"""
	self.context={}

    def get(self, request, service, direction):
	# the position of interest are the ones ocurred in the last 10 minutes

	positions = UltimosGps.objects.filter(servicio_usuario__iregex=r'{0}{1}$'.format(service, direction))