Commit 1ab26fd6 authored by Emmanuel René Huchim Puc's avatar Emmanuel René Huchim Puc

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

parents b29c5c73 cf8a3c08
import re
from django.shortcuts import HttpResponseRedirect from django.shortcuts import HttpResponseRedirect
from django.urls import reverse from django.urls import reverse
# from django.core.urlresolvers import reverse # from django.core.urlresolvers import reverse
from catalog.models import Publics, Purchase
class AuthRequiredMiddleware(object): class AuthRequiredMiddleware(object):
def __init__(self, get_response): def __init__(self, get_response):
...@@ -13,19 +15,28 @@ class AuthRequiredMiddleware(object): ...@@ -13,19 +15,28 @@ class AuthRequiredMiddleware(object):
# the view (and later middleware) are called. # the view (and later middleware) are called.
response = self.get_response(request) response = self.get_response(request)
# if request.path_info == reverse('ws-news-list2'):
# return response
if request.path_info ==reverse('ipn'):
print(request.path_info)
elif not request.user.is_authenticated and request.path_info != reverse('login') and not request.user.is_active:
return HttpResponseRedirect(reverse('login'))
if "/reports/" in request.path_info and not request.user.is_authenticated:
if re.match("^(?:\/reports\/)+[0-9]*$", request.path_info):
purchase_id = request.path_info.replace("/reports/", "")
print ("----->", purchase_id)
purchase = Purchase.objects.filter(pk=int(purchase_id))
#if not request.user.is_authenticated and request.path_info != reverse('login') and not request.user.is_active: if len(purchase) > 0 and purchase[0].is_public == True:
#if not request.user.is_authenticated or not request.user.is_active: return response
else:
return HttpResponseRedirect(reverse('login'))
#elif not request.user.is_authenticated and request.path_info == reverse('tile') or request.path_info == reverse('tileinfo') :
# return response
# return HttpResponseRedirect(reverse('login')) elif request.path_info == reverse('ipn'):
return response
elif not request.user.is_authenticated and request.path_info != reverse('login') and not request.user.is_active:
return HttpResponseRedirect(reverse('login'))
# Code to be executed for each request/response after # Code to be executed for each request/response after
# the view is called. # the view is called.
......
...@@ -74,3 +74,8 @@ class Purchase(models.Model): ...@@ -74,3 +74,8 @@ class Purchase(models.Model):
purchased = models.BooleanField(default=False) purchased = models.BooleanField(default=False)
price = models.FloatField(default=0.0) price = models.FloatField(default=0.0)
progress = models.IntegerField(default=0) progress = models.IntegerField(default=0)
is_public = models.BooleanField(default=False)
class Publics(models.Model):
url = models.TextField()
Purchase = models.ForeignKey(Purchase, on_delete=models.CASCADE)
\ No newline at end of file
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="wrmapper"> <div class="wrmapper">
<header class="main-header"> <header class="main-header">
<!-- Logo --> <!-- Logo -->
<a href="{{ BASE_URL }}/catalog" class="logo"> <a {% if request.user.is_authenticated %}href="{{ BASE_URL }}/catalog" {% else %} href="../../../" {% endif %}class="logo">
<!-- mini logo for sidebar mini 50x50 pixels --> <!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b>G</b>eo</span> <span class="logo-mini"><b>G</b>eo</span>
<!-- logo for regular state and mobile devices --> <!-- logo for regular state and mobile devices -->
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button"> <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span> <span class="sr-only">Toggle navigation</span>
</a> </a>
{% if request.user.is_authenticated %}
<div class="navbar-custom-menu"> <div class="navbar-custom-menu">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li> <li>
...@@ -82,6 +83,7 @@ ...@@ -82,6 +83,7 @@
</li> </li>
</ul> </ul>
</div> </div>
{% endif %}
</nav> </nav>
</header> </header>
<!-- Left side column. contains the logo and sidebar --> <!-- Left side column. contains the logo and sidebar -->
......
...@@ -588,6 +588,7 @@ def IPN(request): ...@@ -588,6 +588,7 @@ def IPN(request):
print() print()
f = open(PATH_USERS+"myfile.txt", "w") f = open(PATH_USERS+"myfile.txt", "w")
x = request.POST.dict() x = request.POST.dict()
f.write('variables')
for key, value in x.items(): for key, value in x.items():
f.write(key+": "+value+'\n') f.write(key+": "+value+'\n')
return redirect('../../') return redirect('../../')
......
.map {
height: 400px;
width: 100%;
}
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #f38e19;
}
input:focus + .slider {
box-shadow: 0 0 1px #f38e19;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}
\ No newline at end of file
...@@ -47,33 +47,7 @@ $(function () { ...@@ -47,33 +47,7 @@ $(function () {
$(document).ready(function () { $(document).ready(function () {
$('#example').DataTable $('#example').DataTable
({ ({
language:
{
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ registros",
"sZeroRecords": "No se encontraron resultados",
"sEmptyTable": "Ningún dato disponible en esta tabla",
"sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
"sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
"sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
"sInfoPostFix": "",
"sSearch": "Buscar:",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Cargando...",
"oPaginate":
{
"sFirst": "Primero",
"sLast": "Último",
"sNext": "Siguiente",
"sPrevious": "Anterior"
},
"oAria":
{
"sSortAscending": ": Activar para ordenar la columna de manera ascendente",
"sSortDescending": ": Activar para ordenar la columna de manera descendente"
}
},
responsive: responsive:
{ {
details: details:
...@@ -96,3 +70,86 @@ $(document).ready(function () { ...@@ -96,3 +70,86 @@ $(document).ready(function () {
$(function () { $(function () {
$('#reportPage').show(); $('#reportPage').show();
}); });
function showMyModalSetTitle(name, data) {
$('#map').empty();
$('#myModalTitle').empty();
$('#myModalTitle').append(name);
$("#mapmodal").modal();
setTimeout(function () {
createmap(data);
}, 1000);
//console.log(data)
}
function createmap(data) {
/*var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.fromLonLat([-89.63873079999999, 21.0404457]),
zoom: 5
})
});*/
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
var format = new ol.format.WKT();
var feature = format.readFeature(data);
feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
features: [feature]
})
});
var center = feature.getGeometry();
var map = new ol.Map({
controls: [],
interactions: [],
layers: [raster, vector],
target: 'map',
view: new ol.View({
center: [center.getInteriorPoint().getFirstCoordinate()[0], center.getInteriorPoint().getFirstCoordinate()[1]],
zoom: 9
})
});
}
function change_public(data) {
var checkBox = document.getElementById(data);
if (checkBox.checked == true) {
is_public(data, 'True');
} else {
is_public(data, 'False');
}
}
function is_public(purchase_id, status) {
//alert(purchase_id);
$.ajax({
dataType: "json",
url: '../reports/ws/is_public',
data: {'purchase_id': purchase_id, 'status': status},
success: function (data) {
alert("cambiado");
}
});
};
\ No newline at end of file
...@@ -7,12 +7,7 @@ ...@@ -7,12 +7,7 @@
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" <link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css"
type="text/css"> type="text/css">
<style> <link rel="stylesheet" href="{% static 'reports/css/Reports.css' %}" type="text/css">
.map {
height: 400px;
width: 100%;
}
</style>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script> <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" type="text/css"> <link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" type="text/css">
<!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --> <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
...@@ -162,6 +157,7 @@ ...@@ -162,6 +157,7 @@
<th>End Date</th> <th>End Date</th>
<!--th>Clouds %</th--> <!--th>Clouds %</th-->
<th>Estimated Size</th> <th>Estimated Size</th>
<th>Public</th>
<th>Actions</th> <th>Actions</th>
</thead> </thead>
<tbody id="table_body"> <tbody id="table_body">
...@@ -176,6 +172,12 @@ ...@@ -176,6 +172,12 @@
<td>{{ product.endDate }}</td> <td>{{ product.endDate }}</td>
<!--td>{{product.clouds}} %</td--> <!--td>{{product.clouds}} %</td-->
<td>{{ product.size }}</td> <td>{{ product.size }}</td>
<td>
<label class="switch">
<input id="{{ product.purchase_id }}" type="checkbox" onclick="change_public({{ product.purchase_id }})" {% if product.is_public %} checked {% endif %}>
<span class="slider round"></span>
</label>
</td>
<td class="text-center"> <td class="text-center">
<div class="progress {% if product.progress == 100 %} hidden {% endif %}" <div class="progress {% if product.progress == 100 %} hidden {% endif %}"
id="main_progess{{ product.purchase_id }}"> id="main_progess{{ product.purchase_id }}">
...@@ -193,7 +195,7 @@ ...@@ -193,7 +195,7 @@
class="hidden" {% endif %}> class="hidden" {% endif %}>
<a title="View Report" <a title="View Report"
{% if product.initial_folder %} {% if product.initial_folder %}
href="../reports/{{ product.purchase_id }}/{{ product.initial_folder }}" href="../reports/{{ product.purchase_id }}"
{% endif %} {% endif %}
class="btn btn-success"> class="btn btn-success">
<i class="fa fa-eye"></i> <i class="fa fa-eye"></i>
...@@ -279,66 +281,4 @@ ...@@ -279,66 +281,4 @@
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script src="{% static 'reports/js/Reports_scripts.js' %}"></script> <script src="{% static 'reports/js/Reports_scripts.js' %}"></script>
<script type="text/javascript">
function showMyModalSetTitle(name,data) {
$('#map').empty();
$('#myModalTitle').empty();
$('#myModalTitle').append(name);
$("#mapmodal").modal();
setTimeout(function () {
createmap(data);
}, 1000);
//console.log(data)
}
function createmap(data) {
/*var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.fromLonLat([-89.63873079999999, 21.0404457]),
zoom: 5
})
});*/
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
var format = new ol.format.WKT();
var feature = format.readFeature(data);
feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
features: [feature]
})
});
var center = feature.getGeometry();
var map = new ol.Map({
controls: [],
interactions: [],
layers: [raster, vector],
target: 'map',
view: new ol.View({
center: [center.getInteriorPoint().getFirstCoordinate()[0], center.getInteriorPoint().getFirstCoordinate()[1]],
zoom: 9
})
});
}
</script>
{% endblock %} {% endblock %}
<div class="form-group"> <div class="form-group">
<br> <br>
<ul class="sidebar-menu" data-widget="tree"> <ul class="sidebar-menu" data-widget="tree">
{% if request.user.is_authenticated %}
<li> <li>
<a class="treeview " href="{{ BASE_URL }}/reports"> <a class="treeview " href="{{ BASE_URL }}/reports">
<i class="fa fa-map"></i> <i class="fa fa-map"></i>
...@@ -10,6 +11,7 @@ ...@@ -10,6 +11,7 @@
</span> </span>
</a> </a>
</li> </li>
{% endif %}
{% if folders %} {% if folders %}
<li class="treeview"> <li class="treeview">
<a href="#"> <a href="#">
...@@ -149,7 +151,7 @@ ...@@ -149,7 +151,7 @@
</a> </a>
</li> </li>
<li> <li>
<a class="treeview submenu" href="../../static/reports/tmpImages/repsat_test_dev/{{ request.user.email }}/{{ purchaseID }}/{{ zone }}.pdf" id="downloadPdf" target="_blank"> <a class="treeview submenu" href="../../static/reports/tmpImages/repsat_test_dev/{{ email }}/{{ purchaseID }}/{{ zone }}.pdf" id="downloadPdf" target="_blank">
<i class="fa fa-file-pdf-o"></i> <i class="fa fa-file-pdf-o"></i>
<span>Export to PDF v2</span> <span>Export to PDF v2</span>
<span class="pull-right-container"> <span class="pull-right-container">
...@@ -252,15 +254,7 @@ ...@@ -252,15 +254,7 @@
</span> </span>
</ul> </ul>
</li> </li>
<li>
<a class="treeview " href="#" onclick="window.history.back();">
<i class="fa fa-backward"></i>
<span>Back</span>
<span class="pull-right-container">
<span class="label label-primary pull-right"></span>
</span>
</a>
</li>
<!-- <li> <!-- <li>
<a class="treeview " href="#" onclick="showComparisons()"> <a class="treeview " href="#" onclick="showComparisons()">
......
...@@ -4,9 +4,11 @@ from . import views ...@@ -4,9 +4,11 @@ from . import views
from reports import views from reports import views
urlpatterns = [ urlpatterns = [
url(r'^(?P<purchase_id>(\d+))/(?P<report>[\w\-]+)$', views.report_L2ASCL, name='report'), #url(r'^(?P<purchase_id>(\d+))/(?P<report>[\w\-]+)$', views.report_L2ASCL, name='report'),
url(r'^(?P<purchase_id>(\d+))$', views.report_L2ASCL, name='report'),
url(r'^$', views.Reports, name='reports'), url(r'^$', views.Reports, name='reports'),
url(r'^ws/process_progress$', views.wsProcessProgress, name='wsProcessProgress'), url(r'^ws/process_progress$', views.wsProcessProgress, name='wsProcessProgress'),
url(r'^ws/is_public', views.wsIs_Public, name='wsIs_Public'),
url(r'^tiles/(?P<purchase_id>(\d+))/(?P<report>[\w\-]+)/(?P<layer_type>[\w\-]+)/(?P<date>[0-9]+)/(?P<z>[0-9]+)/(?P<x>[0-9]+)/(?P<y>[0-9]+).png$', url(r'^tiles/(?P<purchase_id>(\d+))/(?P<report>[\w\-]+)/(?P<layer_type>[\w\-]+)/(?P<date>[0-9]+)/(?P<z>[0-9]+)/(?P<x>[0-9]+)/(?P<y>[0-9]+).png$',
views.tiles, name='tile'), views.tiles, name='tile'),
url(r'^tiles/tileinfo$', views.tileinfo, name='tileinfo'), url(r'^tiles/tileinfo$', views.tileinfo, name='tileinfo'),
......
...@@ -9,10 +9,12 @@ from collections import OrderedDict ...@@ -9,10 +9,12 @@ from collections import OrderedDict
from datetime import datetime from datetime import datetime
from django.http import HttpResponse, Http404, JsonResponse from django.http import HttpResponse, Http404, JsonResponse
from django.shortcuts import render from django.shortcuts import render, redirect
from reportlab.lib.pagesizes import letter from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas from reportlab.pdfgen import canvas
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from GeoInt_SIDT.settings import BASE_URL
from catalog.models import Purchase from catalog.models import Purchase
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
...@@ -28,12 +30,17 @@ USERS_PATH = config['PATHS']['PATH_USERS'] ...@@ -28,12 +30,17 @@ USERS_PATH = config['PATHS']['PATH_USERS']
########################################################### ###########################################################
def report_L2ASCL(request, report, purchase_id): def report_L2ASCL(request, purchase_id):
path = USERS_PATH + request.user.email + '/' + purchase_id + '/' template = "sclData.html"
scl_data_path = USERS_PATH + request.user.email + "/" + purchase_id + "/" + report + ".json" reporteDir = 'mask'
folders = ""
purchase = Purchase.objects.values('user__email','is_public').filter(pk=purchase_id)
email = purchase[0]['user__email']
path = USERS_PATH + email + '/' + purchase_id + '/'
scl_data_path = USERS_PATH + email + "/" + purchase_id + "/scl_data.json"
with open(USERS_PATH + request.user.email + "/" + purchase_id + "/findProducts.json") as p: with open(USERS_PATH + email + "/" + purchase_id + "/findProducts.json") as p:
dataProduct = json.load(p) dataProduct = json.load(p)
startDate = str(dataProduct['startDate'])[:4] + '-' + str(dataProduct['startDate'])[4:6] + '-' + str( startDate = str(dataProduct['startDate'])[:4] + '-' + str(dataProduct['startDate'])[4:6] + '-' + str(
dataProduct['startDate'])[6:8] dataProduct['startDate'])[6:8]
...@@ -41,52 +48,9 @@ def report_L2ASCL(request, report, purchase_id): ...@@ -41,52 +48,9 @@ def report_L2ASCL(request, report, purchase_id):
dataProduct['endDate'])[6:8] dataProduct['endDate'])[6:8]
graphData, label, defaultLabel, defaultDataset,datasets = ProcessChartData(scl_data_path) graphData, label, defaultLabel, defaultDataset,datasets = ProcessChartData(scl_data_path)
#print(datasets)
if report == 'scl_data':
template = "sclData.html"
reporteDir='mask'
folders=""
#return render(request,"sclData.html",{"graphData": json.dumps(graphData),
# "report_name": "Aqui va el mapa",
# "startDate": startDate, "endDate": endDate,
# "clouds": dataProduct['clouds'], "platform": dataProduct['platform'],
# "productLevel": dataProduct['productLevel'],'dafaultLabel': defaultLabel,
# 'defaultDataSet': defaultDataset,"purchaseID": purchase_id,
# "labels": graphData['data']['labels']})
else:
template = "L2ASCL_data.html"
reporteDir = report.replace('_sclData', '')
reporteDir += "/mask"
absolute_path = USERS_PATH + request.user.email + "/" + purchase_id + "/out"
folders = os.listdir(absolute_path)
json_route = USERS_PATH + request.user.email + "/" + purchase_id + "/"
for file in os.listdir(json_route):
if file.endswith("_sclData.json") and not file.endswith("merge_out_sclData.json"):
with open(USERS_PATH + request.user.email + "/" + purchase_id + "/" + file) as f:
json_data = OrderedDict(json.load(f))
if len(json_data) == 0:
if file[:6] in folders:
folders.remove(file[:6])
with open(USERS_PATH + request.user.email + "/" + purchase_id + "/" + report + ".json") as f:
json_data = OrderedDict(json.load(f))
if len(json_data) == 0:
graphData = ""
defaultLabel = ""
defaultDataset = ""
folders.remove(reporteDir)
image_path = request.user.email + "/" + purchase_id + "/" + "out/" + reporteDir + "/TCI/thumbnails/" image_path = email + "/" + purchase_id + "/" + "out/" + reporteDir + "/TCI/thumbnails/"
SCL_path = request.user.email + "/" + purchase_id + "/" + "out/" + reporteDir + "/SCL/" SCL_path = email + "/" + purchase_id + "/" + "out/" + reporteDir + "/SCL/"
...@@ -101,7 +65,7 @@ def report_L2ASCL(request, report, purchase_id): ...@@ -101,7 +65,7 @@ def report_L2ASCL(request, report, purchase_id):
'defaultDataSet': defaultDataset, "folders": folders, 'defaultDataSet': defaultDataset, "folders": folders,
"zone": reporteDir, "purchaseID": purchase_id, "zone": reporteDir, "purchaseID": purchase_id,
"labels": graphData['data']['labels'], "labels": graphData['data']['labels'],
"polygon": dataProduct['wkt']}) "polygon": dataProduct['wkt'],"email": email})
# -------------------------------------------------------------------------------def Reports(request): # -------------------------------------------------------------------------------def Reports(request):
...@@ -113,7 +77,7 @@ def Reports(request): ...@@ -113,7 +77,7 @@ def Reports(request):
folders = [] folders = []
zip = "" zip = ""
product_list = Purchase.objects.values('id', 'productList', 'aggreg_date', 'search__clouds', 'search__startDate', product_list = Purchase.objects.values('id', 'productList', 'aggreg_date', 'search__clouds', 'search__startDate',
'search__endDate', 'search__process_id__name', 'search__search_name').filter( 'search__endDate', 'search__process_id__name', 'search__search_name', 'is_public').filter(
user_id=request.user.id, purchased=1) user_id=request.user.id, purchased=1)
for producto in product_list: for producto in product_list:
log_info = USERS_PATH + request.user.email + "/" + str(producto['id']) + "/L2ASCL_AreaProcessing.log" log_info = USERS_PATH + request.user.email + "/" + str(producto['id']) + "/L2ASCL_AreaProcessing.log"
...@@ -198,6 +162,7 @@ def Reports(request): ...@@ -198,6 +162,7 @@ def Reports(request):
"initial_folder": initial_folder, "initial_folder": initial_folder,
"zip": zip, "zip": zip,
"polygon": polygon['wkt'], "polygon": polygon['wkt'],
"is_public": producto['is_public'],
}) })
size = 0 size = 0
final_size = 0 final_size = 0
...@@ -215,12 +180,12 @@ def wsProcessProgress(request): ...@@ -215,12 +180,12 @@ def wsProcessProgress(request):
if request.is_ajax(): if request.is_ajax():
progress = 0 progress = 0
productList2 = [] productList2 = []
product_list = Purchase.objects.values('id', 'productList', 'aggreg_date', 'search__clouds', product_list = Purchase.objects.values('id','user__email', 'productList', 'aggreg_date', 'search__clouds',
'search__startDate', 'search__endDate', 'search__startDate', 'search__endDate',
'search__process_id__name', 'progress').filter(user_id=request.user.id, 'search__process_id__name', 'progress').filter(user_id=request.user.id,
purchased=1) purchased=1)
for producto in product_list: for producto in product_list:
log_info = USERS_PATH + request.user.email + "/" + str(producto['id']) + "/L2ASCL_AreaProcessing.log" log_info = USERS_PATH + producto['user__email'] + "/" + str(producto['id']) + "/L2ASCL_AreaProcessing.log"
##################################################### #####################################################
# progress bar # # progress bar #
...@@ -264,12 +229,15 @@ def wsProcessProgress(request): ...@@ -264,12 +229,15 @@ def wsProcessProgress(request):
# tiles # tiles
def tiles(request, purchase_id, report, layer_type, date, z, x, y): def tiles(request, purchase_id, report, layer_type, date, z, x, y):
purchase = Purchase.objects.values('user__email', 'is_public').filter(pk=purchase_id)
email = purchase[0]['user__email']
split = '/split' if layer_type[:3] == "SCL" else '' split = '/split' if layer_type[:3] == "SCL" else ''
layer_class = layer_type[3:] if layer_type[:3] == "SCL" else '' layer_class = layer_type[3:] if layer_type[:3] == "SCL" else ''
m_number = '60' if layer_type[:3] == "SCL" else '10' m_number = '60' if layer_type[:3] == "SCL" else '10'
image_path = "{}{}/{}/out/{}/{}{}/tiles/{}_{}_{}m{}/{}/{}/{}.png".format( image_path = "{}{}/{}/out/{}/{}{}/tiles/{}_{}_{}m{}/{}/{}/{}.png".format(
USERS_PATH, request.user.email, purchase_id, report, layer_type[:3], split, USERS_PATH, email, purchase_id, report, layer_type[:3], split,
date, layer_type[:3], m_number, layer_class, z, x, y date, layer_type[:3], m_number, layer_class, z, x, y
) )
...@@ -287,14 +255,20 @@ def tileinfo(request): ...@@ -287,14 +255,20 @@ def tileinfo(request):
if request.is_ajax(): if request.is_ajax():
req = dict(request.POST) req = dict(request.POST)
purchase = Purchase.objects.values('user__email').filter(pk=int(req['purchase_id'][0]))
email = purchase[0]['user__email']
resource_path = "{}{}/{}/out/{}/TCI/tiles/{}_TCI_10m/tilemapresource.xml".format( resource_path = "{}{}/{}/out/{}/TCI/tiles/{}_TCI_10m/tilemapresource.xml".format(
USERS_PATH, request.user.email, req['purchase_id'][0], req['report'][0], USERS_PATH, email, req['purchase_id'][0], req['report'][0],
req['date'][0] req['date'][0]
) )
if not os.path.exists(resource_path): if not os.path.exists(resource_path):
raise Http404 raise Http404
tree = ET.parse(resource_path) tree = ET.parse(resource_path)
bounding_box = tree.find('BoundingBox') bounding_box = tree.find('BoundingBox')
sets = [int(set.get('order')) for set in tree.findall('TileSets/TileSet')] sets = [int(set.get('order')) for set in tree.findall('TileSets/TileSet')]
...@@ -318,6 +292,7 @@ def tileinfo(request): ...@@ -318,6 +292,7 @@ def tileinfo(request):
raise Http404 raise Http404
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
def PDFGenerator(request, ruta, reporteDir, datasets): def PDFGenerator(request, ruta, reporteDir, datasets):
thumbs = ruta + 'out/' + reporteDir + '/TCI/thumbnails/' thumbs = ruta + 'out/' + reporteDir + '/TCI/thumbnails/'
...@@ -438,3 +413,19 @@ def ProcessChartData(path): ...@@ -438,3 +413,19 @@ def ProcessChartData(path):
defaultLabel = graphData['data']['labels'][0] defaultLabel = graphData['data']['labels'][0]
defaultDataset = label[0:4] + "/" + label[4:6] + "/" + label[6:] defaultDataset = label[0:4] + "/" + label[4:6] + "/" + label[6:]
return graphData,label,defaultLabel,defaultDataset,data['datasets'] return graphData,label,defaultLabel,defaultDataset,data['datasets']
#---------------------------------------------------------------------------------
def wsIs_Public(request):
if request.is_ajax():
status = request.GET.get("status")
path = "/reports/"+request.GET.get("purchase_id")+"/scl_data"
purchase = Purchase.objects.get(pk=request.GET.get("purchase_id"))
purchase.is_public = request.GET.get("status")
purchase.save()
#print (purchase.aggreg_date)
return HttpResponse("hola")
else:
raise Http404
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