Admin

parent 9b18475d
......@@ -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)
......@@ -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
......@@ -23,5 +21,5 @@ class AuthRequiredMiddleware(object):
# Code to be executed for each request/response after
# the view is called.
return response
......@@ -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 %#}
......
......@@ -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>
......
......@@ -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'),
]
......@@ -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'])
......@@ -492,8 +495,8 @@ def Pay(request):
user = User.objects.get(id=request.user.id)
product_list = []
product_list = Purchase.objects.values('id', 'search__area', 'user', 'user__username', 'user__email', 'search_id',
'search__clouds', 'search__startDate', 'search__endDate').filter(user=user,
purchased=0)
'search__clouds', 'search__startDate', 'search__endDate').filter(user=user,
purchased=0)
for product in product_list:
......@@ -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,43 +576,43 @@ 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.close()
# PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"
#
# formData = "cmd=_notify-validate&" + parse.unquote(inputraw)
#
# f.write(formData);
# f.write("\n") # write into file 1st data package from paypal
#
# req = urllib.request.Request(PAYPAL_URL, formData.encode())
# req.add_header("Content-type", "application/x-www-form-urlencoded")
# response = urllib.request.urlopen(req)
# status = str(response.read())
#
# f.write(status) # write back into file what you received from paypal the 2nd time
# f.write("\n")
#
# if (not status == "b'VERIFIED'"):
# f.write("OH NO")
# # ERROR
# else:
# # HERE WE WILL TRIGGER STUFF WITH THE DATA FROM PAYPAL
# f.write("OH YES")
#
# f.write("\n")
# f.close()
#-----------------------------------------------------------------------
# f.write(request.GET)
# f.close()
# PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"
#
# formData = "cmd=_notify-validate&" + parse.unquote(inputraw)
#
# f.write(formData);
# f.write("\n") # write into file 1st data package from paypal
#
# req = urllib.request.Request(PAYPAL_URL, formData.encode())
# req.add_header("Content-type", "application/x-www-form-urlencoded")
# response = urllib.request.urlopen(req)
# status = str(response.read())
#
# f.write(status) # write back into file what you received from paypal the 2nd time
# f.write("\n")
#
# if (not status == "b'VERIFIED'"):
# f.write("OH NO")
# # ERROR
# else:
# # HERE WE WILL TRIGGER STUFF WITH THE DATA FROM PAYPAL
# f.write("OH YES")
#
# 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'})
<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
......@@ -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
......@@ -23,4 +23,19 @@ def wsMail(request):
msg = EmailMultiAlternatives(subject, text_content, email_from, recipient_list)
msg.attach_alternative(html_content, "text/html")
msg.send()
return redirect('../catalog')
\ No newline at end of file
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
......@@ -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 %}
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