Commit d1d9721bb288bd8508fc4f388f222726926d927b
1 parent
44d74d23
Exists in
master
and in
3 other branches
modified users urls to receive login url and view
Showing
5 changed files
with
254 additions
and
1 deletions
Show diff stats
... | ... | @@ -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), | ... | ... |
... | ... | @@ -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">×</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): | ... | ... |