Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GeoInt_SIDT
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mario Chirinos Colunga
GeoInt_SIDT
Commits
1ab26fd6
Commit
1ab26fd6
authored
Mar 26, 2019
by
Emmanuel René Huchim Puc
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of gitlab.geoint.mx:mario.chirinos/GeoInt_SIDT into dev
parents
b29c5c73
cf8a3c08
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
247 additions
and
180 deletions
+247
-180
middleware.py
catalog/middleware.py
+21
-10
models.py
catalog/models.py
+5
-0
base_top.html
catalog/templates/base_top.html
+3
-1
views.py
catalog/views.py
+1
-0
Reports.css
reports/static/reports/css/Reports.css
+64
-0
Reports_scripts.js
reports/static/reports/js/Reports_scripts.js
+84
-27
Reports.html
reports/templates/Reports.html
+15
-75
aside.html
reports/templates/aside.html
+4
-10
urls.py
reports/urls.py
+3
-1
views.py
reports/views.py
+47
-56
No files found.
catalog/middleware.py
View file @
1ab26fd6
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.
...
...
catalog/models.py
View file @
1ab26fd6
...
@@ -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
catalog/templates/base_top.html
View file @
1ab26fd6
...
@@ -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 -->
...
...
catalog/views.py
View file @
1ab26fd6
...
@@ -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
(
'../../'
)
...
...
reports/static/reports/css/Reports.css
0 → 100644
View file @
1ab26fd6
.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
reports/static/reports/js/Reports_scripts.js
View file @
1ab26fd6
...
@@ -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
reports/templates/Reports.html
View file @
1ab26fd6
...
@@ -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 %}
reports/templates/aside.html
View file @
1ab26fd6
<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()">
...
...
reports/urls.py
View file @
1ab26fd6
...
@@ -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'
),
...
...
reports/views.py
View file @
1ab26fd6
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment