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
09a55449
Commit
09a55449
authored
Mar 01, 2019
by
Ulises Morales Ramírez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dashboard
parent
70fc998e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
111 additions
and
50 deletions
+111
-50
views.py
administration/views.py
+102
-43
dataRetrieval.js
catalog/static/catalog/js/dataRetrieval.js
+1
-1
map.html
catalog/templates/map.html
+2
-2
views.py
catalog/views.py
+6
-4
No files found.
administration/views.py
View file @
09a55449
...
...
@@ -19,16 +19,24 @@ from catalog.models import Purchase, Search
from
catalog.views
import
config
USERS_PATH
=
config
[
'PATHS'
][
'PATH_NAS'
]
size_sentinel
=
0
size_repsat
=
0
#------------------------------------------------------------
def
Dashboard
(
request
):
# Total de compras #
total
=
Purchase
.
objects
.
filter
(
purchased
=
True
)
.
count
()
# Usuarios activos #
usuarios
=
User
.
objects
.
filter
(
is_active
=
True
)
.
count
()
# Solicitudes de Alta #
Request
=
User
.
objects
.
filter
(
is_active
=
False
)
.
count
()
# Compras en progreso #
in_process
=
Purchase
.
objects
.
filter
(
purchased
=
True
)
.
exclude
(
progress
=
100
)
.
count
()
# lista de meses #
month_lst
=
[
{
'quantity'
:
0
,
'date'
:
'January'
},
{
'quantity'
:
0
,
'date'
:
'February'
},
...
...
@@ -43,6 +51,7 @@ def Dashboard(request):
{
'quantity'
:
0
,
'date'
:
'November'
},
{
'quantity'
:
0
,
'date'
:
'December'
}]
# Obtener el nombre del mes #
for
date
in
Purchase
.
objects
.
filter
()
.
extra
({
'month'
:
"Extract(month from aggreg_date)"
})
.
values_list
(
'month'
)
.
annotate
(
Count
(
'id'
)):
date_name
=
calendar
.
month_name
[
int
(
date
[
0
])]
...
...
@@ -50,27 +59,42 @@ def Dashboard(request):
for
month
in
month_lst
:
if
month
[
'date'
]
==
date_name
:
month
[
'quantity'
]
=
date
[
1
]
search_names
=
[
''
]
# Obtener las 5 busquedas m'as comunes #
search_names
=
[
''
]
Searches
=
Search
.
objects
.
values
(
'search_name'
)
.
exclude
(
search_name__in
=
search_names
)
.
annotate
(
count
=
Count
(
'search_name'
))
.
order_by
(
'-count'
)[:
5
]
repsat
=
os
.
stat
(
USERS_PATH
+
"/repsat_test_dev"
)
.
st_size
if
repsat
>
1024
:
size2
=
repsat
/
1024
size_repsat
=
str
(
round
(
size2
,
2
))
+
" GB"
else
:
size_repsat
=
str
(
round
(
repsat
,
2
))
+
" MB"
# Espacio Usado en Sentinel #
bytes_size
=
0
for
path
,
directories
,
files
in
os
.
walk
(
USERS_PATH
+
"sentinelImages"
):
for
filename
in
files
:
bytes_size
+=
os
.
lstat
(
os
.
path
.
join
(
path
,
filename
))
.
st_size
for
directory
in
directories
:
bytes_size
+=
os
.
lstat
(
os
.
path
.
join
(
path
,
directory
))
.
st_size
bytes_size
+=
os
.
path
.
getsize
(
USERS_PATH
+
"sentinelImages"
)
size_sentinel
=
best_unit_size
(
bytes_size
)
# Espacio Usado en Repsat #
bytes_size
=
0
for
path
,
directories
,
files
in
os
.
walk
(
USERS_PATH
+
"repsat_test_dev"
):
for
filename
in
files
:
bytes_size
+=
os
.
lstat
(
os
.
path
.
join
(
path
,
filename
))
.
st_size
for
directory
in
directories
:
bytes_size
+=
os
.
lstat
(
os
.
path
.
join
(
path
,
directory
))
.
st_size
bytes_size
+=
os
.
path
.
getsize
(
USERS_PATH
+
"repsat_test_dev"
)
size_repsat
=
best_unit_size
(
bytes_size
)
sentinel
=
os
.
stat
(
USERS_PATH
+
"/sentinelImages"
)
.
st_size
if
sentinel
>
1024
:
size2
=
repsat
/
1024
size_sentinel
=
str
(
round
(
size2
,
2
))
+
" GB"
else
:
size_sentinel
=
str
(
round
(
sentinel
,
2
))
+
" MB"
return
render
(
request
,
'dashboard.html'
,
{
"Viewname"
:
"Dashboard"
,
"Usuarios"
:
usuarios
,
"Total_compras"
:
total
,
"Solicitud"
:
Request
,
"Descargando"
:
in_process
,
"dates"
:
month_lst
,
"search"
:
Searches
,
"size_repsat"
:
size_repsat
,
"size_sentinel"
:
size_sentinel
})
"Descargando"
:
in_process
,
"dates"
:
month_lst
,
"search"
:
Searches
,
"size_repsat"
:
size_repsat
,
"size_sentinel"
:
size_sentinel
})
# ----------------------------------------------------------
...
...
@@ -135,7 +159,8 @@ def active_users(request):
# messages.success(request, 'your registration is being processed')
return
render
(
request
,
'users_table.html'
,
{
'users'
:
user_list
,
"Viewname"
:
"Request"
})
#----------------------------------------------------------------------
# ----------------------------------------------------------------------
# @csrf_exempt
# def wsPurchasesPM (request):
# if request.is_ajax():
...
...
@@ -153,44 +178,78 @@ def active_users(request):
@
csrf_exempt
def
wsPurchasesPM
(
request
):
global
mes
print
(
request
.
POST
.
get
(
'title'
))
#
print(request.POST.get('title'))
if
request
.
is_ajax
():
date_list
=
Purchase
.
objects
.
dates
(
'aggreg_date'
,
'month'
)
for
meses
in
date_list
:
datee
=
datetime
.
datetime
.
strptime
(
str
(
meses
),
"
%
Y-
%
m-
%
d"
)
mes
=
calendar
.
month_name
[
int
(
datee
.
month
)]
print
(
mes
)
#
print(mes)
#data =Purchase.objects.filter(Q(date__month=1) | Q(date__month=2) | Q(date__month=3))
#data = Purchase.objects.values('user__username').filter(Q(aggreg_date__month=to_if(mes))|Q(user__purchase_user_id = user__user_id))
data
=
Purchase
.
objects
.
filter
()
for
dato
in
data
:
print
(
dato
.
username
)
# data =Purchase.objects.filter(Q(date__month=1) | Q(date__month=2) | Q(date__month=3))
# data = Purchase.objects.values('user__username').filter(Q(aggreg_date__month=to_if(mes))|Q(user__purchase_user_id = user__user_id))
# data = Purchase.objects.values('user__username').filter(aggreg_date__month=to_if(mes)).annotate(count=Count('user_id')).order_by('-count')[:1]
data
=
Purchase
.
objects
.
values
(
'id'
,
'user__username'
,
'aggreg_date'
,
'search__clouds'
,
'search__startDate'
,
'search__endDate'
,
'search__process_id__name'
)
.
filter
(
aggreg_date__month
=
to_if
(
mes
))
.
annotate
(
count_purchases
=
Count
(
'id'
))
.
order_by
(
'id'
)
print
(
data
)
for
dato
in
data
:
print
(
dato
[
'count_purchases'
])
#return HttpResponse(json.dumps(request.POST.get('title')))
#
return HttpResponse(json.dumps(request.POST.get('title')))
return
HttpResponse
(
json
.
dumps
(
to_if
(
mes
)))
else
:
raise
Http404
#----------------------------------------------------------------------
# ----------------------------------------------------------------------
def
to_if
(
name
):
if
name
==
"January"
:
return
1
elif
name
==
"February"
:
return
2
elif
name
==
"March"
:
return
3
elif
name
==
"April"
:
return
4
elif
name
==
"May"
:
return
5
elif
name
==
"June"
:
return
6
elif
name
==
"July"
:
return
7
elif
name
==
"August"
:
return
8
elif
name
==
"September"
:
return
9
elif
name
==
"October"
:
return
10
elif
name
==
"November"
:
return
11
elif
name
==
"December"
:
return
12
else
:
raise
ValueError
\ No newline at end of file
if
name
==
"January"
:
return
1
elif
name
==
"February"
:
return
2
elif
name
==
"March"
:
return
3
elif
name
==
"April"
:
return
4
elif
name
==
"May"
:
return
5
elif
name
==
"June"
:
return
6
elif
name
==
"July"
:
return
7
elif
name
==
"August"
:
return
8
elif
name
==
"September"
:
return
9
elif
name
==
"October"
:
return
10
elif
name
==
"November"
:
return
11
elif
name
==
"December"
:
return
12
else
:
raise
ValueError
#-----------------------------------------------
def
best_unit_size
(
bytes_size
):
"""
Obtenga un tamaño en bytes y conviértalo en el mejor prefijo IEC para facilitar la lectura.
Devuelva un diccionario con tres pares de claves / valores:
"s" - (flotador) Tamaño del camino convertido a la mejor unidad para una fácil lectura
"u" - (str) El prefijo (IEC) para s (de bytes (2 ^ 0) a YiB (2 ^ 80))
"b" - (int / long) El tamaño original en bytes
"""
for
exp
in
range
(
0
,
90
,
10
):
bu_size
=
abs
(
bytes_size
)
/
pow
(
2.0
,
exp
)
if
int
(
bu_size
)
<
2
**
10
:
unit
=
{
0
:
"bytes"
,
10
:
"KB"
,
20
:
"MB"
,
30
:
"GB"
,
40
:
"TB"
,
50
:
"PB"
,
60
:
"EB"
,
70
:
"ZB"
,
80
:
"YB"
}[
exp
]
break
return
str
(
round
(
bu_size
,
2
))
+
" "
+
unit
catalog/static/catalog/js/dataRetrieval.js
View file @
09a55449
...
...
@@ -524,7 +524,7 @@ $(document).ready(function () {
'producttype'
:
data
.
product
.
producttype
,
'tileid'
:
data
.
product
.
tileid
,
'beginposition'
:
data
.
product
.
beginposition
,
'img'
:
data
.
img
,
//
'img' : data.img,
'identifier'
:
data
.
product
.
identifier
,
'size'
:
data
.
product
.
size
,
'instrumentname'
:
data
.
product
.
instrumentname
...
...
catalog/templates/map.html
View file @
09a55449
...
...
@@ -120,7 +120,7 @@
<!-- search form -->
<form
role=
"form"
action=
"#"
method=
"get"
class=
"sidebar-form"
>
<div
class=
"input-group"
>
<input
type=
"text"
id=
"ajax-input"
name=
"value"
class=
"form-control"
autocomplete=
"off"
placeholder=
"Search region..."
>
<input
type=
"text"
id=
"ajax-input"
value=
""
name=
"value"
class=
"form-control"
autocomplete=
"off"
placeholder=
"Search region..."
>
<span
class=
"input-group-btn"
>
<button
type=
"button"
name=
"search"
id=
"erase-btn"
class=
"btn btn-flat"
onclick=
"erase_input()"
>
<i
class=
"fa fa-eraser"
></i>
...
...
@@ -139,7 +139,7 @@
<form
id=
'product-form'
role=
"form"
method=
"post"
>
{% csrf_token %}
<input
type=
"hidden"
id=
"user_name"
name=
"user_name"
value=
{{user.get_username}}
>
<input
type=
"hidden"
id=
"search_name"
name=
"search_name"
>
<input
type=
"hidden"
id=
"search_name"
name=
"search_name"
value=
"Drawn Polygon"
>
<ul
class=
"sidebar-menu"
data-widget=
"tree"
>
<li
class=
"treeview"
>
<a
href=
"#"
>
...
...
catalog/views.py
View file @
09a55449
...
...
@@ -64,10 +64,13 @@ def map(request):
# -------------------------------------------------------------------------------
def
requestToImage
(
request
):
img_link
=
request
.
GET
[
'value'
]
#print(img_link)
r
=
requests
.
get
(
img_link
,
auth
=
(
"emmhp"
,
"geoemm29"
),
stream
=
True
)
print
(
r
.
content
)
img_str
=
base64
.
b64encode
(
r
.
content
)
img_str
=
img_str
.
decode
(
'utf-8'
)
#print(img_str)
img_str
=
img_str
.
decode
(
'utf-8'
)
#print(img_str)
return
JsonResponse
({
'img'
:
img_str
})
...
...
@@ -86,8 +89,7 @@ def productList(request):
end_date
=
req
[
'end'
][
0
][:
10
]
clouds
=
req
[
'cloudPercentage'
][
0
]
search_name
=
req
[
'search_name'
][
0
]
if
search_name
==
''
:
search_name
=
'Drawn Polygon'
print
(
search_name
)
cloud_percentage
=
"[0 TO "
+
req
[
'cloudPercentage'
][
0
]
+
"]"
## ----- aqui llamada a api sentinel
...
...
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