Commit d1d9721bb288bd8508fc4f388f222726926d927b

Authored by Felipe Henrique de Almeida Bormann
1 parent 44d74d23

modified users urls to receive login url and view

amadeus/templates/base.html 0 → 100644
... ... @@ -0,0 +1,151 @@
  1 +<!DOCTYPE html>
  2 +
  3 +{% load static i18n %}
  4 +{% load static i18n permission_tags %}
  5 +{% get_current_language as LANGUAGE_CODE %}
  6 +
  7 +<html>
  8 +<head>
  9 + <title>{{ title }} | Amadeus</title>
  10 +
  11 + <!-- jQuery & jQuery UI -->
  12 + <script type="text/javascript" src="{% static 'js/vendor/jquery-3.1.0.min.js' %}"></script>
  13 + <script type="text/javascript" src="{% static 'js/vendor/jquery-ui.js' %}"></script>
  14 +
  15 + <meta http-equiv="Cache-Control" content="no-cache, no-store" />
  16 + <link href="{% static 'img/topo-amadeus.png' %}" rel="shortcut icon" />
  17 + <!-- Roboto font -->
  18 + <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css">
  19 + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  20 +
  21 + <!-- Bootstrap and themes (material) -->
  22 + <link rel="stylesheet" type="text/css" href="{% static 'bootstrap-3.3.7/css/bootstrap.css' %}">
  23 +
  24 + <link rel="stylesheet" type="text/css" href="{% static 'material/css/bootstrap-material-design.min.css' %}">
  25 + <link rel="stylesheet" type="text/css" href="{% static 'material/css/ripples.css' %}">
  26 + <link rel="stylesheet" type="text/css" href="{% static 'material/css/ripples.min.css' %}">
  27 +
  28 + <link rel="stylesheet" type="text/css" href="{% static 'css/vendor/bootstrap-datepicker.standalone.css' %}">
  29 + <link rel="stylesheet" type="text/css" href="{% static 'css/vendor/alertifyjs/alertify.min.css' %}">
  30 + <link rel="stylesheet" type="text/css" href="{% static 'css/vendor/alertifyjs/themes/bootstrap.css' %}">
  31 + <link rel="stylesheet" type="text/css" href="{% static 'css/base/material_guideline.css' %}">
  32 +
  33 + <script type="text/javascript" src="{% static 'bootstrap-3.3.7/js/bootstrap.js' %}"></script>
  34 + <script type="text/javascript" src="{% static 'js/vendor/bootstrap-acessibility.min.js' %}"></script>
  35 + <script type="text/javascript" src="{% static 'material/js/material.min.js' %}"></script>
  36 + <script type="text/javascript" src="{% static 'material/js/ripples.min.js' %}"></script>
  37 + <script type="text/javascript" src="{% static 'js/vendor/bootstrap-datepicker.js' %}"></script>
  38 + {% with "js/vendor/locales/bootstrap-datepicker."|add:LANGUAGE_CODE|add:".js" as locale_datepicker %}
  39 + <script type="text/javascript" src="{% static locale_datepicker %}"></script>
  40 + {% endwith %}
  41 + <script type="text/javascript" src="{% static 'js/vendor/alertify.min.js' %}"></script>
  42 + <script type="text/javascript" src="{% static 'js/vendor/jscookie.js' %}"></script>
  43 +
  44 + <!-- Font awesome -->
  45 + <link rel="stylesheet" type="text/css" href="{% static 'font-awesome-4.6.3/css/font-awesome.min.css' %}">
  46 +
  47 + <!-- Custom styles -->
  48 + <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus.css' %}">
  49 +
  50 + <!--Javascript block for specific-app ones -->
  51 + <script src="{% static 'js/base/amadeus.js' %}"></script>
  52 + <script src="{% static 'js/main.js' %}"></script>
  53 + {% block style %}
  54 + {% endblock %}
  55 + {% block javascript %}
  56 + {% endblock %}
  57 +
  58 + <!-- Summernote -->
  59 + <script src="{% static 'summernote/summernote.js' %}" type="text/javascript"></script>
  60 + <link href="{% static 'summernote/summernote.css' %}" type="text/css" rel="stylesheet" />
  61 +
  62 +</head>
  63 +<body>
  64 + {% block nav %}
  65 + <div class="navbar navbar-default">
  66 + <div class="navbar-header">
  67 + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
  68 + <span class="icon-bar"></span>
  69 + <span class="icon-bar"></span>
  70 + <span class="icon-bar"></span>
  71 + </button>
  72 + <a class="navbar-brand" href="{% url 'app:index' %}"><img class="logo" src="{% static 'img/topo-amadeus-white.png' %}" alt="Logo"/></a>
  73 + </div>
  74 + <div class="navbar-collapse collapse navbar-responsive-collapse">
  75 + <div class="col-md-5 cards-content" id= 'NavBarSearch'>
  76 + <form id="SearchForm" action="{% url 'users:search' %}" method="get" accept-charset="utf-8">
  77 + <div class="input-group">
  78 + <div class="form-group is-empty" >
  79 + <input type="text" class="form-control" placeholder="{% trans 'Search Files (.pdf, others) and/or activities' %}" name="search">
  80 + </div>
  81 + <span class="input-group-btn input-group-sm">
  82 + <button type="submit" class="btn btn-primary" id="btn-search">
  83 + <i class="fa fa-search fa-2x" aria-hidden="true" style="color:#93C741"></i>
  84 + </button>
  85 + </span>
  86 + </div>
  87 + </form>
  88 + </div>
  89 + <ul class="nav navbar-nav navbar-right notifications">
  90 + <li class="" data-toggle="tooltip" data-placement="bottom" title data-original-title="notifications">
  91 + <a class="dropdown-toggle" data-toggle="dropdown"> <span id="notification-count" class="badge notification-count">{{notifications.count}}</span><i class="fa fa-bell" aria-hidden="true"></i></a>
  92 + <ul id="notification-dropdown" class="dropdown-menu">
  93 + <li class="dropdown-header"> {% trans 'Notifications' %}</li>
  94 + {% include "notifications.html" %}
  95 + <li>
  96 + <a onclick="getNotifications(5)">
  97 + <div id="notification-see-more" class="list-group-item">
  98 + <div class="row-content">
  99 + <p class="list-group-item-text">{% trans 'See More' %}</p>
  100 + </div>
  101 + </div>
  102 + </a>
  103 + </li>
  104 + </ul>
  105 + </li>
  106 + <li data-toggle="tooltip" data-placement="bottom" title data-original-title="{% trans 'messages' %}"> <a href="#"><i class="fa fa-comments" aria-hidden="true"></i></a> </li>
  107 + <li>
  108 + <a href="" data-toggle="dropdown">{{ user }}</a>
  109 + <ul class="dropdown-menu pull-right">
  110 + <li><a href="{% url 'users:profile' %}">{% trans 'Perfil' %}</a></li>
  111 + <li><a href="{% url 'users:update_profile' %}">{% trans 'Edit Profile' %}</a></li>
  112 + <li><a href="{% url 'users:change_password' %}">{% trans 'Change password' %}</a></li>
  113 + <li><a href="{% url 'users:remove_account' %}">{% trans 'Remove account' %}</a></li>
  114 + </ul>
  115 + </li>
  116 + <li data-toggle="tooltip" data-placement="bottom" title data-original-title="log out"> <a href="{% url 'core:logout' %}"><i class="fa fa-sign-out" aria-hidden="true"></i></a></li>
  117 + </ul>
  118 + </div>
  119 + </div>
  120 + {% endblock %}
  121 + <div class="container-fluid">
  122 + <div class="row">
  123 + <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 col-xl-2">
  124 + {% block test %}
  125 + {% endblock %}
  126 + {% block sidebar %}
  127 + {% endblock %}
  128 + </div>
  129 + <div class="col-xs-10 col-sm-10 col-md-10 col-lg-10 col-xl-10">
  130 + {% block breadcrumbs %}{% endblock %}
  131 + {% block render_breadcrumbs %}{% endblock %}
  132 + </div>
  133 + <div class="col-xs-10 col-sm-10 col-md-10 col-lg-10 col-xl-10">
  134 + {% block content %}{% endblock %}
  135 + </div>
  136 + </div>
  137 + </div>
  138 +
  139 + {% block script_file %}
  140 +
  141 + {% endblock script_file %}
  142 +
  143 + {% block script_link %}
  144 +
  145 + {% endblock script_link %}
  146 + <!-- Init material Bootstrap -->
  147 + <script type="text/javascript" src="{% static 'js/home.js' %}"></script>
  148 + <script type="text/javascript">$.material.init()</script>
  149 +</body>
  150 +
  151 +</html>
0 152 \ No newline at end of file
... ...
amadeus/urls.py
... ... @@ -19,6 +19,7 @@ from django.conf.urls import include, url
19 19 from django.conf.urls.static import static
20 20 from django.contrib import admin
21 21  
  22 +
22 23 urlpatterns = [
23 24 url(r'^users/', include('users.urls', namespace = 'users')),
24 25 url(r'^admin/', admin.site.urls),
... ...
users/templates/users/login.html 0 → 100644
... ... @@ -0,0 +1,81 @@
  1 +{% extends 'base.html' %}
  2 +
  3 +{% load static i18n %}
  4 +{% load widget_tweaks %}
  5 +
  6 +{% block nav %}
  7 +{% endblock %}
  8 +
  9 +{% block sidebar %}
  10 +{% endblock sidebar %}
  11 +
  12 +{% block content %}
  13 +<div class="row">
  14 + <div class="col-sm-7 col-sm-offset-4 col-md-6 col-md-offset-4 col-xs-8 col-xs-offset-3 col-lg-6 col-lg-offset-4 col-xl-6 col-xl-offset-4 ">
  15 + <div class="col-sm-9 col-sm-offset-2 col-md-8 col-md-offset-2 col-xs-9 col-xs-offset-2 col-lg-8 col-lg-offset-2 col-xl-8 col-xl-offset-2">
  16 + <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login " alt="logo amadeus">
  17 + </div>
  18 + </div>
  19 +</div>
  20 +
  21 +<div class="row">
  22 + <div class="col-lg-8 col-lg-offset-3 col-md-8 col-md-offset-3 col-sm-9 col-sm-offset-3 col-xs-10 col-xs-offset-2">
  23 + {% if messages %}
  24 + {% for message in messages %}
  25 + <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert">
  26 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  27 + <span aria-hidden="true">&times;</span>
  28 + </button>
  29 + <p>{{ message }}</p>
  30 + </div>
  31 + {% endfor %}
  32 + {% endif %}
  33 + <div class="card">
  34 + <div class="card-block">
  35 + <div class="row">
  36 + <div class="col-md-12 text-center">
  37 + <h2 style="color:#43a251"><strong> {% trans 'Sign in with your account to continue' %} </strong></h2>
  38 + </div>
  39 + </div>
  40 + <form id="form-login" method="post" action="">
  41 + {% csrf_token %}
  42 + <div class="col-md-10 col-md-offset-1">
  43 + <div class="form-group">
  44 + <label for="inputEmail" class="control-label"> {% trans 'Username' %}</label>
  45 + <input form="form-login" for="inputSmall" type="text" name="username" class="form-control" placeholder="{% trans 'Username' %}" id="inputEmail" value="{% if username %}{{username}}{% endif %}">
  46 + </div>
  47 + </div>
  48 + <div class="col-md-10 col-md-offset-1">
  49 + <div class="form-group">
  50 + <label for="inputPassword" class="control-label"> {% trans 'Password' %}</label>
  51 + <input form="form-login" for="inputSmall" type="password" name="password" class="form-control" id="inputPassword" placeholder="{% trans 'Password' %}">
  52 + </div>
  53 + </div>
  54 + <div class="col-md-10 col-md-offset-1">
  55 + <div class="checkbox">
  56 + <label>
  57 + <input type="checkbox" name="checkbox"><span class="checkbox-material"></span> {% trans 'Remember Email' %}
  58 + </label>
  59 + </div>
  60 + </div>
  61 + </form>
  62 + <div class="row">
  63 + <div class="col-md-5 col-xs-6 col-sm-6 col-lg-5 col-lg-offset-1 col-md-offset-1 text-center">
  64 + <button type="submite" class="btn btn-success btn-raised btn-block" form="form-login" style="position: initial;"> {% trans 'Log in' %} </button>
  65 + </div>
  66 + <div class="col-md-5 col-xs-6 col-sm-6 col-lg-5 text-center">
  67 + <a class="btn btn-default btn-raised btn-block" href="{% url 'core:guest' %}" formaction="#" style="position: initial;">{% trans 'Guest' %}</a>
  68 + </div>
  69 + </div>
  70 + <div class="row">
  71 + <div class="col-md-offset-1 col-md-10 text-right forgotPassword">
  72 + <a href="{% url 'core:password_reset' %}">{% trans 'Forgot your password?' %}</a>
  73 + </div>
  74 + </div>
  75 + </div>
  76 + </div>
  77 + <a class="btn btn-raised btn-primary btn-block" href="{% url 'core:register' %}">{% trans 'Sign Up' %} </a>
  78 + </div>
  79 +</div>
  80 +
  81 +{% endblock%}
0 82 \ No newline at end of file
... ...
users/urls.py
... ... @@ -4,7 +4,8 @@ from . import views
4 4  
5 5  
6 6 urlpatterns = [
7   - url(r'^$', views.UsersListView.as_view(), name='manage'),
  7 + url(r'^login/$', views.login, name='login'),
  8 + #url(r'^$', views.UsersListView.as_view(), name='manage'),
8 9 url(r'^create/$', views.Create.as_view(), name='create'),
9 10 url(r'^edit/(?P<username>[\w_-]+)/$', views.Update.as_view(), name='update'),
10 11 url(r'^view/(?P<username>[\w_-]+)/$', views.View.as_view(), name='view'),
... ...
users/views.py
... ... @@ -221,6 +221,25 @@ class SearchView(LoginRequiredMixin, generic.ListView):
221 221 return context
222 222  
223 223  
  224 +def login(self, request):
  225 + context = {}
  226 + context['title'] = 'Log In'
  227 +
  228 + if request.POST:
  229 + username = request.POST['username']
  230 + password = request.POST['password']
  231 + user = authenticate(username=username, password=password)
  232 + if user is not None:
  233 + login_user(request, user)
  234 + return redirect(reverse("users:login"))
  235 + else:
  236 + messages.add_message(request, messages.ERROR, _('E-mail or password are incorrect.'))
  237 + context["username"] = username
  238 + elif request.user.is_authenticated:
  239 + return redirect(reverse('users:login'))
  240 +
  241 + return render(request,"index.html",context)
  242 +
224 243 # API VIEWS
225 244  
226 245 class UserViewSet(viewsets.ModelViewSet):
... ...