Commit e72f36a7 authored by José Luis Uc's avatar José Luis Uc

Merge branch 'dev' of gitlab.geoint.mx:mario.chirinos/GeoInt_SIDT into dev

parents 46c03e0a 6ddcc845
...@@ -109,7 +109,7 @@ AUTH_PASSWORD_VALIDATORS = [ ...@@ -109,7 +109,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/ # https://docs.djangoproject.com/en/1.11/topics/i18n/
LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC' TIME_ZONE = 'UTC'
......
# Generated by Django 2.1.5 on 2019-02-06 18:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('catalog', '0011_auto_20190206_1555'),
]
operations = [
migrations.AlterField(
model_name='polygon',
name='name',
field=models.CharField(max_length=100, verbose_name='Polygon Name'),
),
migrations.AlterField(
model_name='polygon',
name='source',
field=models.CharField(max_length=100, null=True, verbose_name='Source'),
),
migrations.AlterField(
model_name='product_l1c',
name='file_path',
field=models.CharField(max_length=150),
),
migrations.AlterField(
model_name='product_l1c',
name='identifier',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='product_l2a',
name='file_path',
field=models.CharField(max_length=150),
),
migrations.AlterField(
model_name='product_l2a',
name='identifier',
field=models.CharField(max_length=100),
),
]
...@@ -8,61 +8,68 @@ from django.db import models ...@@ -8,61 +8,68 @@ from django.db import models
class Platform(models.Model): class Platform(models.Model):
name = models.CharField(max_length=64) name = models.CharField(max_length=64)
acronym = models.CharField(max_length=16) acronym = models.CharField(max_length=16)
class Polygon(models.Model): class Polygon(models.Model):
name = models.CharField(verbose_name="Polygon Name", max_length=50) name = models.CharField(verbose_name="Polygon Name", max_length=100)
json_info = models.TextField(verbose_name="JSON Info") json_info = models.TextField(verbose_name="JSON Info")
description = models.TextField(verbose_name="Description", null=True) description = models.TextField(verbose_name="Description", null=True)
source = models.CharField(verbose_name="Source", max_length=50, null=True) source = models.CharField(verbose_name="Source", max_length=100, null=True)
CVE_ENT = models.CharField(verbose_name="State Key", max_length=10, null=True) CVE_ENT = models.CharField(verbose_name="State Key", max_length=10, null=True)
CVE_MUN = models.CharField(verbose_name="City Key", max_length=10, null=True) CVE_MUN = models.CharField(verbose_name="City Key", max_length=10, null=True)
CVE_LOC = models.CharField(verbose_name="Location Key", max_length=10, null=True) CVE_LOC = models.CharField(verbose_name="Location Key", max_length=10, null=True)
CVE_AGEB = models.CharField(verbose_name="AGEB Key", max_length=10, null=True) CVE_AGEB = models.CharField(verbose_name="AGEB Key", max_length=10, null=True)
E_ENT = models.CharField(verbose_name="State Stratum", max_length=10, null=True) E_ENT = models.CharField(verbose_name="State Stratum", max_length=10, null=True)
E_MUN = models.CharField(verbose_name="City Stratum", max_length=10, null=True) E_MUN = models.CharField(verbose_name="City Stratum", max_length=10, null=True)
E_AGEB = models.CharField(verbose_name="AGEB Stratum", max_length=10, null=True) E_AGEB = models.CharField(verbose_name="AGEB Stratum", max_length=10, null=True)
wkt_polygon = models.TextField(null=True) wkt_polygon = models.TextField(null=True)
class Product_l1c(models.Model): class Product_l1c(models.Model):
uuid = models.CharField(max_length=50) uuid = models.CharField(max_length=50)
identifier = models.CharField(max_length=50) identifier = models.CharField(max_length=100)
file_path = models.CharField(max_length=50) file_path = models.CharField(max_length=150)
json = models.TextField(null=True) json = models.TextField(null=True)
class Product_l2a(models.Model): class Product_l2a(models.Model):
prod_l1c = models.ForeignKey(Product_l1c, on_delete=models.CASCADE) prod_l1c = models.ForeignKey(Product_l1c, on_delete=models.CASCADE)
identifier = models.CharField(max_length=50) identifier = models.CharField(max_length=100)
file_path = models.CharField(max_length=50) file_path = models.CharField(max_length=150)
class CartProduct(models.Model): class CartProduct(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
uuid = models.CharField(max_length=50) uuid = models.CharField(max_length=50)
aggreg_date = models.DateTimeField(auto_now=True) ## date of product aggregation aggreg_date = models.DateTimeField(auto_now=True) ## date of product aggregation
info = models.TextField(null=True) info = models.TextField(null=True)
purchased = models.NullBooleanField() purchased = models.NullBooleanField()
#-------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------
class Process(models.Model): class Process(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
platform = models.ForeignKey(Platform, on_delete=models.CASCADE, default='') platform = models.ForeignKey(Platform, on_delete=models.CASCADE, default='')
productLevel = models.CharField(max_length=8, default='') productLevel = models.CharField(max_length=8, default='')
class Search(models.Model): class Search(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) area = models.TextField(null=True)
startDate = models.DateTimeField(verbose_name='Start Date') user = models.ForeignKey(User, on_delete=models.CASCADE)
endDate = models.DateTimeField(verbose_name='End Date') aggreg_date = models.DateTimeField(auto_now=True) # date of product aggregation
process = models.ForeignKey(Process, on_delete=models.CASCADE, default='') startDate = models.DateTimeField(verbose_name='Start Date')
clouds = models.IntegerField(default=4) endDate = models.DateTimeField(verbose_name='End Date')
#process = models.ForeignKey(Process, on_delete=models.CASCADE, default='')
clouds = models.IntegerField(default=4)
class Purchase(models.Model): class Purchase(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) aggreg_date = models.DateTimeField(auto_now=True) # date of product aggregation
search = models.ForeignKey(Search, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
productList = models.TextField(verbose_name="JSON Product List") search = models.ForeignKey(Search, on_delete=models.CASCADE)
purchased = models.BooleanField(default=False) productList = models.TextField(verbose_name="JSON Product List")
price = models.FloatField(default=0.0) purchased = models.BooleanField(default=False)
price = models.FloatField(default=0.0)
...@@ -342,7 +342,10 @@ $(document).ready(function () { ...@@ -342,7 +342,10 @@ $(document).ready(function () {
var clone = document.importNode(temp.content, true); var clone = document.importNode(temp.content, true);
//document.querySelector('#product-list-globe').appendChild(clone); //document.querySelector('#product-list-globe').appendChild(clone);
document.querySelector('#L-' + data.product.tileid).appendChild(clone); // console.log('#L-' + data.product.tileid);
setTimeout(() => {
document.querySelector('#L-' + data.product.tileid).appendChild(clone);
},100);
} }
}); });
...@@ -432,21 +435,23 @@ $(document).ready(function () { ...@@ -432,21 +435,23 @@ $(document).ready(function () {
dataType : 'json', dataType : 'json',
success : function (data) { success : function (data) {
productsToObtain = []; productsToObtain = [];
data.product_list.forEach(function (product) { data.product_list.forEach(function (products) {
var temp_2 = document.querySelector('#product_cart_2'); products.catalog.forEach(function(product){
var temp_2 = document.querySelector('#product_cart_2');
// filling template
temp_2.content.querySelector('li').id = product.uuid; // filling template
temp_2.content.querySelector('h4').id = product.uuid + "-h4"; temp_2.content.querySelector('li').id = product.uuid;
temp_2.content.querySelector('h4').textContent = product.info.producttype + "_" + product.info.tileid; temp_2.content.querySelector('h4').id = product.uuid + "-h4";
temp_2.content.querySelector('p').textContent = product.info.beginposition; temp_2.content.querySelector('h4').textContent = product.info.producttype + "_" + product.info.tileid;
temp_2.content.querySelector('img').src = "data:image/jpeg;base64, " + product.info.img; temp_2.content.querySelector('p').textContent = product.info.beginposition;
temp_2.content.querySelectorAll('span')[1].textContent = product.info.identifier; temp_2.content.querySelector('img').src = "data:image/jpeg;base64, " + product.info.img;
temp_2.content.querySelectorAll('span')[2].textContent = product.info.size; temp_2.content.querySelectorAll('span')[1].textContent = product.info.identifier;
temp_2.content.querySelectorAll('span')[3].textContent = product.info.instrumentname; temp_2.content.querySelectorAll('span')[2].textContent = product.info.size;
temp_2.content.querySelectorAll('span')[3].textContent = product.info.instrumentname;
var clone_2 = document.importNode(temp_2.content, true);
document.querySelector('#product-list-cart-items').appendChild(clone_2); var clone_2 = document.importNode(temp_2.content, true);
document.querySelector('#product-list-cart-items').appendChild(clone_2);
});
}); });
} }
}); });
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.shortcuts import render from django.shortcuts import render
from catalog.forms import ASFSearchForm from catalog.forms import ASFSearchForm
from catalog.models import Polygon, CartProduct, Product_l1c from catalog.models import Polygon, CartProduct, Product_l1c, Search, Purchase
from django.http import HttpResponse, JsonResponse, HttpResponseRedirect from django.http import HttpResponse, JsonResponse, HttpResponseRedirect
from django.urls import reverse from django.urls import reverse
from django.views.generic.base import View from django.views.generic.base import View
...@@ -62,10 +62,12 @@ def productList(request): ...@@ -62,10 +62,12 @@ def productList(request):
req = dict(request.POST) req = dict(request.POST)
req.pop('csrfmiddlewaretoken', None) req.pop('csrfmiddlewaretoken', None)
user = User.objects.get(id=request.user.id)
process = req['platform'][0] process = req['platform'][0]
area = req['polygon'][0] area = req['polygon'][0]
init_date = req['start'][0][:10] init_date = req['start'][0][:10]
end_date = req['end'][0][:10] end_date = req['end'][0][:10]
clouds = req['cloudPercentage'][0]
cloud_percentage = "[0 TO " + req['cloudPercentage'][0] + "]" cloud_percentage = "[0 TO " + req['cloudPercentage'][0] + "]"
...@@ -107,6 +109,17 @@ def productList(request): ...@@ -107,6 +109,17 @@ def productList(request):
'img' : img_preview 'img' : img_preview
}) })
if(len(catalog)!=0):
listSearch = Search(
user = user,
startDate = init_date,
endDate = end_date,
#process = process,
clouds = clouds,
area = area
)
listSearch.save()
return JsonResponse({'catalog': catalog}); return JsonResponse({'catalog': catalog});
# return HttpResponse(status=204) # return HttpResponse(status=204)
...@@ -171,22 +184,17 @@ def saveInCart(request): ...@@ -171,22 +184,17 @@ def saveInCart(request):
user = User.objects.get(id=request.user.id) user = User.objects.get(id=request.user.id)
product_list = json.loads(request.POST['cart_product_list']) product_list = json.loads(request.POST['cart_product_list'])
search = Search.objects.filter(user=user).last()
for product in product_list:
p_uuid = product['uuid'] if(len(product_list)!=0):
p_info = product['info'] cartProd = Purchase(
PRODUCT_EXISTS = CartProduct.objects.filter(uuid=p_uuid, user=user).exists() user = user,
search = search,
if not PRODUCT_EXISTS: productList = json.dumps(product_list, indent=3, sort_keys=True, ensure_ascii=True),
cartProd = CartProduct( purchased = False,
user = user, price = 5.0
uuid = p_uuid, )
info = json.dumps(p_info, indent=3, sort_keys=True, ensure_ascii=True), cartProd.save()
purchased = False
)
cartProd.save()
return HttpResponse(status=204) return HttpResponse(status=204)
...@@ -197,16 +205,16 @@ def getFromCart(request): ...@@ -197,16 +205,16 @@ def getFromCart(request):
""" """
user = User.objects.get(id=request.user.id) user = User.objects.get(id=request.user.id)
prod_uuid_list = request.POST['product_uuid_list'].split(",")
prod_list = [] prod_list = []
product_list = Purchase.objects.values('user', 'productList', 'purchased','price').filter(user=user, purchased=0)
for prod_uuid in prod_uuid_list:
product = CartProduct.objects.filter(uuid=prod_uuid, user=user).first() for products in product_list:
product = json.loads(products['productList'])
prod_list.append({ prod_list.append({
'uuid' : product.uuid, 'purchased': products['purchased'],
'info' : json.loads(product.info) 'price' : products['price'],
'catalog': product
}) })
return JsonResponse({'product_list': prod_list}) return JsonResponse({'product_list': prod_list})
##------------------------------------------------------------------------------- ##-------------------------------------------------------------------------------
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment