Commit 83887981 authored by Luis Ernesto Dominguez Uriostegui's avatar Luis Ernesto Dominguez Uriostegui
parents 712a5e56 f7d2d7c0
......@@ -331,7 +331,7 @@ div .menu-info h4 {
/*}*/
div #product-list-globe {
max-height: 773px;
max-height: 820px;
overflow: auto;
}
......@@ -363,6 +363,11 @@ ul.product_list_category li:hover div.bg-geo {
display: block;
}
div #product-list-cart{
max-height: 820px;
overflow: auto;
}
/*div #product-list-cart-items {
max-height: 167px;
overflow: auto;
......
......@@ -17,7 +17,8 @@ html, body
position:absolute;
bottom:0;
border: 0px solid blue;
z-index: 99999;
/* z-index: 99999; */
z-index: 6 !important;
width: 100%;
height:32px;
vertical-align: middle;
......
......@@ -66,6 +66,42 @@ var makeRequest = function (value) {
});
};
function updateCart(){
$("#product-list-cart").empty();
$.ajax({
type: 'POST',
url: prod_from_cartDB_url,
data: {
'csrfmiddlewaretoken': document.getElementsByName('csrfmiddlewaretoken')[0].value
},
dataType: 'json',
success: function (data) {
productsToObtain = [];
createProductContainer(data.product_list);
data.product_list.forEach(function (products) {
let id = "L-" + products.aggreg_date.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "-");
products.catalog.forEach(function (product) {
var temp_2 = document.querySelector('#product_cart_2');
// filling template
temp_2.content.querySelector('li').id = product.uuid;
temp_2.content.querySelector('h4').id = product.uuid + "-h4";
temp_2.content.querySelector('h4').textContent = product.info.producttype + "_" + product.info.tileid;
temp_2.content.querySelector('p').textContent = product.info.beginposition;
temp_2.content.querySelector('img').src = "data:image/jpeg;base64, " + product.info.img;
temp_2.content.querySelectorAll('span')[1].textContent = product.info.identifier;
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);
document.querySelector('#' + id).appendChild(clone_2);
});
});
}
});
};
function drawPolygon(element) {
polygonList.forEach(function (polygon) {
......@@ -171,14 +207,15 @@ function drawApiResponse(element) {
}
function createProductContainer() {
var temp_1 = document.querySelector('#product_cart_1');
// filling template
temp_1.content.querySelector('span').textContent = "Product";
var clone_1 = document.importNode(temp_1.content, true);
document.querySelector('#product-list-cart').appendChild(clone_1);
function createProductContainer(products) {
products.forEach(function(list){
var temp_1 = document.querySelector('#product_cart_1');
let name = list.aggreg_date.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "-");
temp_1.content.querySelector('span').textContent = name;
temp_1.content.querySelector('ul .control-sidebar-menu').id = "L-" + name;
var clone_1 = document.importNode(temp_1.content, true);
document.querySelector('#product-list-cart').appendChild(clone_1);
})
}
let productCategory = new Map();
......@@ -416,45 +453,7 @@ $(document).ready(function () {
success: function () {
cartProductList = [];
productUUIDListCart.push.apply(productUUIDListCart, productsToObtain);
if (!IS_PRODUCT_CONTAINER) {
// building product container
createProductContainer();
IS_PRODUCT_CONTAINER = true; // this flag is set to false when products are purchased
}
// request to DB for showing the products in cart
// variable prod_from_cartDB_url in map.html
$.ajax({
type : 'POST',
url : prod_from_cartDB_url,
data : {
'csrfmiddlewaretoken' : document.getElementsByName('csrfmiddlewaretoken')[0].value,
'product_uuid_list' : productsToObtain.toString()
},
dataType : 'json',
success : function (data) {
productsToObtain = [];
data.product_list.forEach(function (products) {
products.catalog.forEach(function(product){
var temp_2 = document.querySelector('#product_cart_2');
// filling template
temp_2.content.querySelector('li').id = product.uuid;
temp_2.content.querySelector('h4').id = product.uuid + "-h4";
temp_2.content.querySelector('h4').textContent = product.info.producttype + "_" + product.info.tileid;
temp_2.content.querySelector('p').textContent = product.info.beginposition;
temp_2.content.querySelector('img').src = "data:image/jpeg;base64, " + product.info.img;
temp_2.content.querySelectorAll('span')[1].textContent = product.info.identifier;
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);
});
});
}
});
updateCart();
}
});
} else {
......@@ -491,9 +490,10 @@ $(document).ready(function () {
'csrfmiddlewaretoken' : document.getElementsByName('csrfmiddlewaretoken')[0].value,
'product_objects' : JSON.stringify(productObject),
'wkt' : $("#product-form input[name=polygon]").val(),
'startDate' : $("#product-form input[name=start]").val(),
'endDate' : $("#product-form input[name=end]").val(),
'clouds' : $("#product-form input[name=cloudPercentage]").val(),
'startDate' : $("#product-form input[name=start]").val(),
'endDate' : $("#product-form input[name=end]").val(),
'clouds' : $("#product-form input[name=cloudPercentage]").val(),
'usuario' : $("#product-form input[name=user_name]").val()
},
dataType : 'json'
});
......
......@@ -104,7 +104,7 @@
<!-- Create the tabs -->
<ul class="nav nav-tabs nav-justified control-sidebar-tabs">
<li id="globe"><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-globe"></i></a></li>
<li id="cart"><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-shopping-cart"></i></a>
<li id="cart"><a href="#control-sidebar-settings-tab" onclick="updateCart()" data-toggle="tab"><i class="fa fa-shopping-cart"></i></a>
</li>
</ul>
<!-- Tab panes -->
......@@ -134,7 +134,7 @@
<!-- /.tab-pane -->
<!-- Settings tab content -->
<div class="tab-pane" id="control-sidebar-settings-tab">
<form id='purchased-product-form' role="form" method="post">
{% comment %}<form id='purchased-product-form' role="form" method="post">
{% csrf_token %}
<div class="container">
<div class="sidebar-title">
......@@ -148,7 +148,21 @@
</div>
<!-- this ul element is filled with data -->
<ul id="product-list-cart" class="sidebar-menu" data-widget="tree"></ul>
</form>
</form>{% endcomment %}
<div class="container">
<div class="sidebar-title">
<h3><b>My cart</b></h3>
</div>
<div class="sidebar-button">
{% comment %}<button type="submit" name="search" id="purchase" class="btn btn-primary">
Purchase
</button>{% endcomment %}
{% comment %}<a href="cart" id="purchase" class="btn btn-primary">Purchase</a>{% endcomment %}
<button onclick="location.href='cart'" id="purchase" class="btn btn-primary">Purchase</button>
</div>
</div>
<!-- this ul element is filled with data -->
<ul id="product-list-cart" class="sidebar-menu" data-widget="tree"></ul>
</div>
<!-- /.tab-pane -->
</div>
......
......@@ -137,6 +137,7 @@
<!-- <form role="form" target="catalogFrame" action="{% url 'productList' %}" method="post"> -->
<form id='product-form' role="form" method="post">
{% csrf_token %}
<input type="hidden" id="user_name" name="user_name" value={{user.get_username}}>
<ul class="sidebar-menu" data-widget="tree">
<li class="treeview">
<a href="#">
......
This diff is collapsed.
......@@ -80,7 +80,7 @@
</a>
<ul class="treeview-menu sidebar-form">
<li>
<ul id="product-list-cart-items" class="control-sidebar-menu"></ul>
<ul id="" class="control-sidebar-menu product_list_category"></ul>
</li>
</ul>
</li>
......@@ -95,7 +95,7 @@
<p></p>
</div>
</a>
<div class="info-product-cart-box bg-geo">
<div class="info-product-box bg-geo">
<span class="info-product-box-img">
<img src="">
</span>
......
......@@ -12,4 +12,5 @@ urlpatterns = [
url(r'^cartrequest/$', views.saveInCart, name='cart-rqst'),
url(r'^fromcartrqst/$', views.getFromCart, name='from-cart-rqst'),
url(r'^purchcartrqst/$', views.purchaseProduct, name='purch-prod-rqst'),
url(r'^cart/$', views.showCart, name='show-cart'),
]
......@@ -12,12 +12,14 @@ from django.core import management
#from urllib import urlencode
#from collections import OrderedDict
import requests, json, unicodedata, sys, base64
import os
import sys
sys.path.append('/home/luis/django-apps/Geosentinel')
from geosentinel import APISentinel, polygonToBox
sentinel = APISentinel.APISentinel('emmhp', 'geoemm29')
NAS_PATH = '/home/david/NAS/'
# Create your views here.
......@@ -211,13 +213,14 @@ def getFromCart(request):
user = User.objects.get(id=request.user.id)
prod_list = []
product_list = Purchase.objects.values('user', 'productList', 'purchased','price').filter(user=user, purchased=0)
product_list = Purchase.objects.values('user', 'productList', 'purchased', 'price', 'aggreg_date').filter(user=user, purchased=0)
for products in product_list:
product = json.loads(products['productList'])
prod_list.append({
'purchased': products['purchased'],
'price' : products['price'],
'aggreg_date' : products['aggreg_date'],
'catalog': product
})
return JsonResponse({'product_list': prod_list})
......@@ -265,35 +268,76 @@ def purchaseProduct(request):
For now to purchase a product consists in verifying whether L1C products in cart already exist in DB.
"""
# ------------- crear archivo findProducts.json
print("Comprar productos!!!!")
print(request)
print("start date:")
print(request.POST['wkt'])
print(request.POST['startDate'])
print(request.POST['endDate'])
print(request.POST['clouds'])
#obtiene los datos para el json
user = User.objects.get(id=request.user.id)
prod_list = []
product_list = Search.objects.values('user', 'area', 'startDate', 'endDate','clouds').filter(user=user, purchased=0)
data = {}
data['wkt'] = request.POST['wkt']
data['platform'] = 'Sentinel-2'
data['productLevel'] = 'L2A'
data['startDate'] = request.POST['startDate']
data['endDate'] = request.POST['endDate']
data['clouds'] = request.POST['clouds']
data['productsDir'] = '/home/david/NAS/sentinelImages/L2A/'
data['linksDir'] = '/home/david/centroGEO/repsat/tests/L2A/'
data['username'] = 'mario-chirinos'
data['password'] = 'r4nc0r4u'
#json_data = json.dumps(data, indent=4,sort_keys=True)
#formatea el json
json_data = json.dumps(data, indent=4)
print(json_data)
#escribe el json en el archivo
fidProductsFile = open("/home/david/centroGEO/repsat/GeoInt_SIDT/findProducts.json", "w")
fidProductsFile.write(json_data)
fidProductsFile.close()
for products in product_list:
print(products)
#~ product = json.loads(products['productList'])
#~ prod_list.append({
#~ 'purchased': products['purchased'],
#~ 'price' : products['price'],
#~ 'aggreg_date' : products['aggreg_date'],
#~ 'catalog': product
#~ })
#~ return JsonResponse({'product_list': prod_list})
#~ print("Comprar productos!!!!")
#~ print(request)
#~ print("start date:")
#~ print(request.POST['wkt'])
#~ print(request.POST['startDate'])
#~ print(request.POST['endDate'])
#~ print(request.POST['clouds'])
#~ print(request.POST['usuario'])
#~ username = request.POST['usuario']
#~ fecha_inicio = request.POST['startDate']
#~ fecha_fin = request.POST['endDate']
#~ print(fecha_inicio.replace("-", ""))
#~ print(fecha_fin.replace("-", ""))
#~ userdir = NAS_PATH + "repsat_test_dev/"+username ##crea el directorio del usuario
#~ if not os.path.exists(userdir):
#~ os.makedirs(userdir)
#~ products_dir = NAS_PATH + "sentinelImages/L2A/"
#~ linksDir = userdir+"/L2A/"
#~ #obtiene los datos para el json
#~ data = {}
#~ data['wkt'] = request.POST['wkt']
#~ data['platform'] = 'Sentinel-2'
#~ data['productLevel'] = 'L2A'
#~ data['startDate'] = fecha_inicio.replace("-", "") #quita los guiones de la fecha
#~ data['endDate'] = fecha_fin.replace("-", "") #quita los guiones de la fecha
#~ # data['startDate'] = request.POST['startDate']
#~ # data['endDate'] = request.POST['endDate']
#~ data['clouds'] = request.POST['clouds']
#~ # data['productsDir'] = '/home/david/NAS/sentinelImages/L2A/'
#~ # data['linksDir'] = '/home/david/centroGEO/repsat/tests/L2A/'
#~ data['productsDir'] = products_dir
#~ data['linksDir'] = linksDir
#~ data['username'] = 'mario-chirinos'
#~ data['password'] = 'r4nc0r4u'
#~ #json_data = json.dumps(data, indent=4,sort_keys=True)
#~ #formatea el json
#~ json_data = json.dumps(data, indent=4)
#~ print(json_data)
#~ #escribe el json en el archivo
#~ fidProductsFile = open(userdir+"/findProducts.json", "w")
#~ fidProductsFile.write(json_data)
#~ fidProductsFile.close()
#-------------------------------------------------
......@@ -378,3 +422,103 @@ def purchaseProduct(request):
# return HttpResponse(status=204)
#-------------------------------------------------------------------------------
def showCart(request):
#---------------test process----------------------
print("showcart!!!")
user = User.objects.get(id=request.user.id)
query = []
query = Purchase.objects.values('search__area','user','user__username','user__email', 'search_id', 'search__clouds','search__startDate','search__endDate').filter(user=user, purchased=0)
for values in query:
print(values['user__username'])
print(values['user__email'])
print(values['search_id'])
print(str(values['search__startDate'].date()).replace("-", ""))
print(str(values['search__endDate'].date()).replace("-", ""))
print(values['search__clouds'])
print(values['search__area'])
username = values['user__username']
useremail = values['user__email']
userdir = NAS_PATH + "repsat_test_dev/"+useremail ##crea el directorio del usuario
if not os.path.exists(userdir):
os.makedirs(userdir)
search_dir = userdir+"/"+str(values['search_id'])
if not os.path.exists(search_dir):
os.makedirs(search_dir)
products_dir = NAS_PATH + "sentinelImages/L2A/"
linksDir = search_dir+"/L2A/"
#obtiene los datos para el json
data = {}
data['wkt'] = values['search__area']
data['platform'] = 'Sentinel-2'
data['productLevel'] = 'L2A'
data['startDate'] = str(values['search__startDate'].date()).replace("-", "") #quita los guiones de la fecha
data['endDate'] = str(values['search__endDate'].date()).replace("-", "") #quita los guiones de la fecha
# data['startDate'] = request.POST['startDate']
# data['endDate'] = request.POST['endDate']
data['clouds'] = values['search__clouds']
# data['productsDir'] = '/home/david/NAS/sentinelImages/L2A/'
# data['linksDir'] = '/home/david/centroGEO/repsat/tests/L2A/'
data['productsDir'] = products_dir
data['linksDir'] = linksDir
data['username'] = 'emmhp'
data['password'] = 'geoemm29'
#json_data = json.dumps(data, indent=4,sort_keys=True)
#formatea el json
json_data = json.dumps(data, indent=4)
print(json_data)
#escribe el json en el archivo
fidProductsFile = open(search_dir+"/findProducts.json", "w")
fidProductsFile.write(json_data)
fidProductsFile.close()
#~ user = User.objects.get(id=request.user.id)
#~ prod_list = []
#~ product_list = Search.objects.values('user', 'area', 'startDate', 'endDate','clouds').filter(user=user)
#~ data = {}
#~ for products in product_list:
#~ print(products)
#~ product = json.loads(products['productList'])
#~ prod_list.append({
#~ 'purchased': products['purchased'],
#~ 'price' : products['price'],
#~ 'aggreg_date' : products['aggreg_date'],
#~ 'catalog': product
#~ })
#~ return JsonResponse({'product_list': prod_list})
#-------------------------------------
user = User.objects.get(id=request.user.id)
prod_list = []
product_list = Purchase.objects.values('user', 'productList', 'purchased', 'price', 'aggreg_date').filter(user=user, purchased=0)
total_price = 0
total_products = 0
for products in product_list:
product = json.loads(products['productList'])
prod_list.append({
'purchased': products['purchased'],
'price': products['price'],
'aggreg_date': products['aggreg_date'],
'catalog': product
})
total_price += products['price']
total_products += 1
return render(request, 'show_cart.html', {'product_list': prod_list, 'total_price': total_price, 'total_products': total_products})
......@@ -18,7 +18,7 @@ from GeoInt_SIDT import settings
def report_L2ASCL(request, report):
with open("/home/ulises/REPSAT_NAS/mario_repsat_test/"+report+".json") as f:
with open("/home/emmanuelhp/NAS/mario_repsat_test/"+report+".json") as f:
json_data = OrderedDict(json.load(f))
graphData = dict()
graphData['type'] = "line"
......@@ -46,6 +46,8 @@ def report_L2ASCL(request, report):
item['backgroundColor'] = colors[int(l)]
data['datasets'].append(item)
data['datasets'].sort(key=lambda k: max(k['data']))
graphData['data'] = data
#print(settings.BASE_URL)
# graphData['options']['responsive']=True
......
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