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
242257f4
Commit
242257f4
authored
Feb 19, 2019
by
Ulises Morales Ramírez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Admin
parent
9b18475d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
516 additions
and
41 deletions
+516
-41
urls.py
GeoInt_SIDT/urls.py
+1
-0
middleware.py
catalog/middleware.py
+1
-3
base_top.html
catalog/templates/base_top.html
+6
-0
map.html
catalog/templates/map.html
+3
-0
urls.py
catalog/urls.py
+1
-0
views.py
catalog/views.py
+53
-34
mail_notification2.html
mail/templates/mail_notification2.html
+344
-0
views.py
mail/views.py
+17
-2
login.html
templates/registration/login.html
+90
-2
No files found.
GeoInt_SIDT/urls.py
View file @
242257f4
...
...
@@ -27,6 +27,7 @@ urlpatterns = [
url
(
r'^reports/'
,
include
(
'reports.urls'
)),
url
(
r'^$'
,
RedirectView
.
as_view
(
url
=
'/catalog/'
,
permanent
=
True
)),
url
(
r'^accounts/'
,
include
(
'django.contrib.auth.urls'
)),
#url(r'^accounts/', include('registration')),
url
(
r'^mail/'
,
include
(
'mail.urls'
)),
]
# + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
catalog/middleware.py
View file @
242257f4
...
...
@@ -12,8 +12,6 @@ class AuthRequiredMiddleware(object):
# Code to be executed for each request before
# the view (and later middleware) are called.
response
=
self
.
get_response
(
request
)
print
(
request
.
path_info
)
print
(
reverse
(
'login'
))
# if request.path_info == reverse('ws-news-list2'):
# return response
...
...
catalog/templates/base_top.html
View file @
242257f4
...
...
@@ -45,6 +45,12 @@
</a>
<div
class=
"navbar-custom-menu"
>
<ul
class=
"nav navbar-nav"
>
<li>
{% if request.user.is_superuser %}
<a
id=
"product-list-toggle"
href=
"#"
title=
"super user"
><i
class=
"fa fa-gears"
></i></a>
{% endif %}
</li>
<!-- Messages: style can be found in dropdown.less-->
<!-- <li class="dropdown messages-menu"> -->
{#% block messages %#}{#% endblock %#}
...
...
catalog/templates/map.html
View file @
242257f4
...
...
@@ -214,6 +214,9 @@
{% block user %}
{% include "user_button.html" %}
{% endblock %}
{% block user2 %}
{% include "user_button.html" %}
{% endblock %}
{% block content %}
<div
id=
"map"
class=
"map"
tabindex=
"0"
></div>
...
...
catalog/urls.py
View file @
242257f4
...
...
@@ -16,4 +16,5 @@ urlpatterns = [
url
(
r'^cart/$'
,
views
.
showCart
,
name
=
'show-cart'
),
url
(
r'^pay/$'
,
views
.
Pay
,
name
=
'pay'
),
url
(
r'^ipn/$'
,
views
.
IPN
,
name
=
'ipn'
),
url
(
r'^register/$'
,
views
.
Registration
,
name
=
'register'
),
]
catalog/views.py
View file @
242257f4
...
...
@@ -13,6 +13,8 @@ from django.contrib.auth.models import User
import
requests
,
json
,
unicodedata
,
sys
,
base64
import
os
from
geosentinel
import
APISentinel
,
polygonToBox
from
mail.views
import
wsMail
,
wsMail2
dirname
=
os
.
path
.
dirname
(
__file__
)
configfile
=
os
.
path
.
join
(
dirname
,
'../config/config.json'
)
...
...
@@ -233,7 +235,8 @@ def getFromCart(request):
user
=
User
.
objects
.
get
(
id
=
request
.
user
.
id
)
prod_list
=
[]
product_list
=
Purchase
.
objects
.
values
(
'user'
,
'productList'
,
'purchased'
,
'price'
,
'aggreg_date'
,
'id'
,
'search__process__name'
,
'search__startDate'
,
'search__endDate'
)
.
filter
(
user
=
user
,
purchased
=
0
)
'search__process__name'
,
'search__startDate'
,
'search__endDate'
)
.
filter
(
user
=
user
,
purchased
=
0
)
for
products
in
product_list
:
product
=
json
.
loads
(
products
[
'productList'
])
...
...
@@ -543,7 +546,8 @@ def Pay(request):
fidProductsFile
.
write
(
json_data
)
fidProductsFile
.
close
()
os
.
system
(
SENTINEL_PATH
+
"/tools/L2ASCL_AreaProcessing.sh "
+
purchase_dir
+
"/ 1 > "
+
purchase_dir
+
"/L2ASCL_AreaProcessing.log"
)
###ejecuta el proceso
os
.
system
(
SENTINEL_PATH
+
"/tools/L2ASCL_AreaProcessing.sh "
+
purchase_dir
+
"/ 1 > "
+
purchase_dir
+
"/L2ASCL_AreaProcessing.log"
)
###ejecuta el proceso
...
...
@@ -572,18 +576,16 @@ def Pay(request):
# -----------------------------------------------------------------
def
IPN
(
request
):
print
(
"content-type: text/html
\r\n\r\n
"
)
if
request
.
POST
[
'payment_status'
]
==
'Completed'
:
Purchase
.
objects
.
filter
(
user_id
=
request
.
user
.
id
,
purchased
=
0
)
.
update
(
purchased
=
True
)
return
redirect
(
'../../reports'
)
else
:
return
redirect
(
'../cart'
)
#
f.write(request.GET)
#
f.write(request.GET)
#
f.close()
#
f.close()
# PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"
#
# formData = "cmd=_notify-validate&" + parse.unquote(inputraw)
...
...
@@ -608,7 +610,9 @@ def IPN(request):
#
# f.write("\n")
# f.close()
#-----------------------------------------------------------------------
# -----------------------------------------------------------------------
# def Pay3(request):
# VERIFY_URL_PROD = 'https://ipnpb.paypal.com/cgi-bin/webscr'
# VERIFY_URL_TEST = 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr'
...
...
@@ -642,3 +646,18 @@ def IPN(request):
# else:
# pass
# return redirect("https://google.com.mx")
# ------------------------------------------------------
def
Registration
(
request
):
#user = User.objects.filter(email=request.POST['email'])
if
User
.
objects
.
filter
(
email
=
request
.
POST
[
'email'
]):
print
(
"ya existe"
)
return
HttpResponse
(
"el correo ya está registrado"
)
else
:
print
(
"agregado"
)
User
.
objects
.
create_user
(
username
=
request
.
POST
[
'username'
],
email
=
request
.
POST
[
'email'
],
password
=
request
.
POST
[
'password'
],
is_active
=
False
)
message
=
"procesando"
subject
=
"Registro RepSat"
wsMail2
(
request
.
POST
[
'email'
],
request
.
POST
[
'username'
],
message
,
subject
)
return
HttpResponse
({
'message'
:
'your registration is being processed'
})
mail/templates/mail_notification2.html
0 → 100644
View file @
242257f4
<link
href=
"//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css"
rel=
"stylesheet"
id=
"bootstrap-css"
>
<script
src=
"//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"
></script>
<script
src=
"//code.jquery.com/jquery-1.11.1.min.js"
></script>
<!------ Include the above in your HEAD tag ---------->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta
name=
"viewport"
content=
"width=device-width"
/>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<title>
RepSat Notification
</title>
<style>
{
margin
:
0
;
padding
:
0
;
font-family
:
"Helvetica Neue"
,
"Helvetica"
,
Helvetica
,
Arial
,
sans-serif
;
box-sizing
:
border-box
;
font-size
:
14px
;
}
img
{
max-width
:
100%
;
}
body
{
-webkit-font-smoothing
:
antialiased
;
-webkit-text-size-adjust
:
none
;
width
:
100%
!important
;
height
:
100%
;
line-height
:
1.6
;
}
table
td
{
vertical-align
:
top
;
}
body
{
background-color
:
#f6f6f6
;
}
.body-wrap
{
background-color
:
#f6f6f6
;
width
:
100%
;
}
.container
{
display
:
block
!important
;
max-width
:
600px
!important
;
margin
:
0
auto
!important
;
clear
:
both
!important
;
}
.content
{
max-width
:
600px
;
margin
:
0
auto
;
display
:
block
;
padding
:
20px
;
}
.main
{
background
:
#fff
;
border
:
1px
solid
#e9e9e9
;
border-radius
:
3px
;
}
.content-wrap
{
padding
:
20px
;
}
.content-block
{
padding
:
0
0
20px
;
}
.header
{
width
:
100%
;
margin-bottom
:
20px
;
}
.footer
{
width
:
100%
;
clear
:
both
;
color
:
#999
;
padding
:
20px
;
}
.footer
a
{
color
:
#999
;
}
.footer
p
,
.footer
a
,
.footer
unsubscribe
,
.footer
td
{
font-size
:
12px
;
}
.column-left
{
float
:
left
;
width
:
50%
;
}
.column-right
{
float
:
left
;
width
:
50%
;
}
h1
,
h2
,
h3
{
font-family
:
"Helvetica Neue"
,
Helvetica
,
Arial
,
"Lucida Grande"
,
sans-serif
;
color
:
#000
;
margin
:
40px
0
0
;
line-height
:
1.2
;
font-weight
:
400
;
}
h1
{
font-size
:
32px
;
font-weight
:
500
;
}
h2
{
font-size
:
24px
;
}
h3
{
font-size
:
18px
;
}
h4
{
font-size
:
14px
;
font-weight
:
600
;
}
p
,
ul
,
ol
{
margin-bottom
:
10px
;
font-weight
:
normal
;
}
p
li
,
ul
li
,
ol
li
{
margin-left
:
5px
;
list-style-position
:
inside
;
}
a
{
color
:
#348eda
;
text-decoration
:
underline
;
}
.btn-primary
{
text-decoration
:
none
;
color
:
#FFF
;
background-color
:
#348eda
;
border
:
solid
#348eda
;
border-width
:
10px
20px
;
line-height
:
2
;
font-weight
:
bold
;
text-align
:
center
;
cursor
:
pointer
;
display
:
inline-block
;
border-radius
:
5px
;
text-transform
:
capitalize
;
}
.last
{
margin-bottom
:
0
;
}
.first
{
margin-top
:
0
;
}
.padding
{
padding
:
10px
0
;
}
.aligncenter
{
text-align
:
center
;
}
.alignright
{
text-align
:
right
;
}
.alignleft
{
text-align
:
left
;
}
.clear
{
clear
:
both
;
}
.alert
{
font-size
:
16px
;
color
:
#fff
;
font-weight
:
500
;
padding
:
20px
;
text-align
:
center
;
border-radius
:
3px
3px
0
0
;
}
.alert
a
{
color
:
#fff
;
text-decoration
:
none
;
font-weight
:
500
;
font-size
:
16px
;
}
.alert.alert-warning
{
background
:
#ff9f00
;
}
.alert.alert-bad
{
background
:
#d0021b
;
}
.alert.alert-good
{
background
:
#68b90f
;
}
.invoice
{
margin
:
40px
auto
;
text-align
:
left
;
width
:
80%
;
}
.invoice
td
{
padding
:
5px
0
;
}
.invoice
.invoice-items
{
width
:
100%
;
}
.invoice
.invoice-items
td
{
border-top
:
#eee
1px
solid
;
}
.invoice
.invoice-items
.total
td
{
border-top
:
2px
solid
#333
;
border-bottom
:
2px
solid
#333
;
font-weight
:
700
;
}
@media
only
screen
and
(
max-width
:
640px
)
{
h1
,
h2
,
h3
,
h4
{
font-weight
:
600
!important
;
margin
:
20px
0
5px
!important
;
}
h1
{
font-size
:
22px
!important
;
}
h2
{
font-size
:
18px
!important
;
}
h3
{
font-size
:
16px
!important
;
}
.container
{
width
:
100%
!important
;
}
.content
,
.content-wrapper
{
padding
:
10px
!important
;
}
h3
{
font-size
:
32px
!important
;
font-weight
:
bold
!important
;
margin-top
:
0px
!important
;
}
.invoice
{
width
:
100%
!important
;
}
}
</style>
</head>
<body>
<table
class=
"body-wrap"
>
<tr>
<td></td>
<td
class=
"container"
width=
"600"
>
<div
class=
"content"
>
<table
class=
"main"
width=
"100%"
cellpadding=
"0"
cellspacing=
"0"
>
<tr>
<td
class=
"content-wrap"
>
<table
width=
"100%"
cellpadding=
"0"
cellspacing=
"0"
>
<tr>
<td
class=
"content-block"
style=
"text-align:center;"
>
<img
src=
"http://www.geoint.mx/images/logos/geoint2_geoint.png"
width=
"300px"
>
<br>
<b
style=
"color:#e16931; font-size: 3em;"
><span
style=
"color:#6b3721;"
>
Rep
</span>
Sat
</b>
<h3>
{{ message }}
</h3>
</td>
</tr>
<tr
style=
"text-align:center"
>
<td
class=
"content-block"
>
Click on the following link to redirect to the page
</td>
</tr>
<tr
style=
"text-align:center;"
>
<td
class=
"content-block"
>
<a
href=
"localhost:8000"
>
Go to the page
</a>
</td>
</tr>
<tr>
</tr>
</table>
</td>
</tr>
</table>
<div
class=
"footer"
>
<table
width=
"100%"
>
<tr>
<td
class=
"aligncenter content-block"
>
© 2019 Copyright:
<a
href=
"http://geoint.mx/"
>
Centro de Investigación en Ciencias de
Información Geoespacial.
</a>
</td>
</tr>
</table>
</div>
</div>
</td>
<td></td>
</tr>
</table>
</body>
</html>
\ No newline at end of file
mail/views.py
View file @
242257f4
...
...
@@ -3,7 +3,7 @@ from django.shortcuts import render, redirect
# Create your views here.
# -*- coding: utf-8 -*-
from
django.core.mail
import
EmailMultiAlternatives
from
django.core.mail
import
EmailMultiAlternatives
,
send_mail
from
django.http
import
HttpResponse
from
django.template.loader
import
render_to_string
from
django.utils.html
import
strip_tags
...
...
@@ -24,3 +24,18 @@ def wsMail(request):
msg
.
attach_alternative
(
html_content
,
"text/html"
)
msg
.
send
()
return
redirect
(
'../catalog'
)
#-------------------------------
def
wsMail2
(
mail
,
user
,
message
,
subject
):
subject
=
subject
email_from
=
settings
.
EMAIL_HOST_USER
recipient_list
=
[
mail
]
html_content
=
render_to_string
(
'mail_notification2.html'
,
{
'message'
:
message
})
# render with dynamic value
text_content
=
strip_tags
(
html_content
)
# Strip the html tag. So people can see the pure text at least.
# create the email, and attach the HTML version as well.
msg
=
EmailMultiAlternatives
(
subject
,
text_content
,
email_from
,
recipient_list
)
msg
.
attach_alternative
(
html_content
,
"text/html"
)
print
(
msg
.
send
())
return
HttpResponse
(
"enviado"
)
\ No newline at end of file
templates/registration/login.html
View file @
242257f4
...
...
@@ -3,6 +3,7 @@
{% block headMedia %}
<link
rel=
"stylesheet"
href=
"{% static 'catalog/css/login.css' %}"
type=
"text/css"
>
<script
src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"
></script>
{% endblock %}
{% block budy %}
...
...
@@ -19,7 +20,7 @@
<div
class=
"login-box"
>
<!-- /.login-logo -->
<div
class=
"login-box-body"
>
<div
class=
"login-box-body"
id=
"login"
>
<div
class=
"login-logo"
>
<img
src=
"{% static 'catalog/images/geoint_med.png' %}"
width=
"256px"
/>
<br>
...
...
@@ -55,6 +56,7 @@
id=
"{{ form.password.auto_id }}"
autofocus
>
<span
class=
"glyphicon glyphicon-lock form-control-feedback"
></span>
</div>
<p>
{{ message }}
</p>
<div
class=
"row"
>
<!-- /.col -->
...
...
@@ -68,10 +70,75 @@
<br>
<a
href=
"#"
>
I forgot my password
</a><br>
<a
href=
"
register.html
"
class=
"text-center"
>
Register a new membership
</a>
<a
href=
"
#"
onclick=
"show_hide('registration','login')
"
class=
"text-center"
>
Register a new membership
</a>
</div>
<!-- /.login-box-body -->
<!-- /.registration-logo -->
<div
class=
"login-box-body hidden"
id=
"registration"
>
<div
class=
"login-logo"
>
<img
src=
"{% static 'catalog/images/geoint_med.png' %}"
width=
"256px"
/>
<br>
<b><span>
Rep
</span>
Sat
</b>
</div>
<p
class=
"login-box-msg"
>
{% if form.errors %}
<p>
Your username and password didn't match. Please try again.
</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p>
Your account doesn't have access to this page. To proceed, please login with an account that has
access.
</p>
{% else %}
<p>
Favor de firmarse para tener acceso.
</p>
{% endif %}
{% endif %}
</p>
<form
role=
"form"
method=
"post"
action=
"../../catalog/register/"
>
{% csrf_token %}
<div
class=
"form-group has-feedback"
>
<input
class=
"form-control"
placeholder=
"nombre de usuario"
name=
"username"
type=
"text"
id=
"username"
autofocus
required
>
<span
class=
"glyphicon glyphicon-user form-control-feedback"
></span>
</div>
<div
class=
"form-group has-feedback"
>
<input
class=
"form-control"
placeholder=
"correo"
name=
"email"
type=
"email"
id=
"email"
autofocus
required
>
<span
class=
"glyphicon glyphicon-envelope form-control-feedback"
></span>
</div>
<div
class=
"form-group has-feedback"
>
<!-- <input type="password" class="form-control" placeholder="assword">-->
<input
class=
"form-control"
placeholder=
"contraseña"
name=
"password"
type=
"password"
id=
"password"
autofocus
required
>
<span
class=
"glyphicon glyphicon-lock form-control-feedback"
></span>
</div>
<div
class=
"form-group has-feedback"
>
<!-- <input type="password" class="form-control" placeholder="assword">-->
<input
class=
"form-control"
placeholder=
"repetir contraseña"
type=
"password"
id=
"repeat_password"
autofocus
>
<span
class=
"glyphicon glyphicon-lock form-control-feedback"
></span>
</div>
<p
id=
"validate-status"
></p>
<div
class=
"row"
>
<!-- /.col -->
<div
class=
"col-xs-12"
>
<button
id=
"submit-button"
type=
"submit"
class=
"btn btn-primary btn-block btn-flat btnGeo"
>
Register
</button>
</div>
<!-- /.col -->
</div>
</form>
<br>
<!--a href="#">I forgot my password</a><br-->
<a
href=
"../../catalog/register"
onclick=
"show_hide('login','registration')"
class=
"text-center"
>
Back
</a>
</div>
<!-- /.registration-box-body -->
</div>
<!-- /.login-box -->
...
...
@@ -111,6 +178,27 @@
vidFade
();
});
function
show_hide
(
show
,
hide
)
{
$
(
'#'
+
show
).
removeClass
(
"hidden"
);
$
(
'#'
+
hide
).
addClass
(
"hidden"
);
}
$
(
document
).
ready
(
function
()
{
$
(
'#submit-button'
).
prop
(
'disabled'
,
true
);
$
(
"#repeat_password"
).
keyup
(
validate
);
});
function
validate
()
{
var
password1
=
$
(
"#password"
).
val
();
var
password2
=
$
(
"#repeat_password"
).
val
();
if
(
password1
==
password2
)
{
$
(
"#validate-status"
).
text
(
"Passwords Match!"
);
$
(
'#submit-button'
).
prop
(
'disabled'
,
false
);
}
else
{
$
(
"#validate-status"
).
text
(
"Passwords Do Not Match!"
);
$
(
'#submit-button'
).
prop
(
'disabled'
,
true
);
}
}
</script>
{% endblock %}
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