Commit 22b0fa7bf3cbb8e67661319ec2bdc8881a0bdea1
Exists in
master
and in
3 other branches
Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring
Showing
6 changed files
with
136 additions
and
291 deletions
Show diff stats
amadeus/static/css/base/amadeus.css
... | ... | @@ -87,7 +87,105 @@ |
87 | 87 | margin-bottom: 5em; |
88 | 88 | } |
89 | 89 | |
90 | -.navbar .logo {position: absolute; top: 6px; text-align: center; height: 48px; width: 48px;} | |
90 | +/* NavBar Top */ | |
91 | +.navbar { | |
92 | + height: 50px; | |
93 | +} | |
94 | + | |
95 | +.navbar-brand { | |
96 | + height: 50px !important; | |
97 | +} | |
98 | +.navbar-brand:hover { | |
99 | + background: #00695C !important; | |
100 | +} | |
101 | + | |
102 | +.navbar .logo { | |
103 | + text-align: center; | |
104 | + margin-top: -6px; | |
105 | + height: 32px; | |
106 | + width: 32px; | |
107 | +} | |
108 | + | |
109 | +.navbar-nav li > a { | |
110 | + font-size: 28px; | |
111 | + padding-top: 12px !important; | |
112 | + padding-left: 20px; | |
113 | + max-height: 50px; | |
114 | +} | |
115 | +.navbar-nav li > a:hover { | |
116 | + background: #00695C !important; | |
117 | +} | |
118 | + | |
119 | +.top-search { | |
120 | + color: #F5F5F5; | |
121 | +} | |
122 | +.top-search::-webkit-input-placeholder { | |
123 | + font-style: italic; | |
124 | +} | |
125 | +.top-search::-moz-placeholder { | |
126 | + font-style: italic; | |
127 | +} | |
128 | +.top-search:-ms-input-placeholder { | |
129 | + font-style: italic; | |
130 | +} | |
131 | +.top-search:-moz-placeholder { | |
132 | + font-style: italic; | |
133 | +} | |
134 | + | |
135 | +#btn-search { | |
136 | + margin-top: -6px; | |
137 | + height: 50px; | |
138 | +} | |
139 | +#btn-search:hover { | |
140 | + background: #00695C; | |
141 | +} | |
142 | +/* End NavBar Top */ | |
143 | + | |
144 | +/* Dropdown menu Topbar */ | |
145 | +.dropdown-menu { | |
146 | + background: #F5F5F5; | |
147 | +} | |
148 | + | |
149 | +.dropdown-menu li > a { | |
150 | + background: #F5F5F5; | |
151 | + font-family: Roboto; | |
152 | + font-size: 16px; | |
153 | + color: #333333; | |
154 | +} | |
155 | +.dropdown-menu li > a:hover { | |
156 | + background: #EEEEEE !important; | |
157 | +} | |
158 | + | |
159 | +#system_accordion { | |
160 | + margin-bottom: 0px; | |
161 | +} | |
162 | + | |
163 | +#system_accordion > .panel > .panel-heading { | |
164 | + background: #F5F5F5; | |
165 | +} | |
166 | +#system_accordion > .panel > .panel-heading:hover { | |
167 | + background: #EEEEEE; | |
168 | +} | |
169 | + | |
170 | +#system_accordion > .panel > .panel-heading > a > .panel-title { | |
171 | + font-weight: normal; | |
172 | + color: #333333; | |
173 | +} | |
174 | +#system_accordion > .panel > .panel-heading > a > .panel-title:hover { | |
175 | + color: #009688; | |
176 | +} | |
177 | +#system_accordion > .panel > .panel-heading > a:hover { | |
178 | + text-decoration: none; | |
179 | + color: #009688; | |
180 | +} | |
181 | +#system_accordion > .panel > .panel-heading > a:focus { | |
182 | + text-decoration: none; | |
183 | +} | |
184 | + | |
185 | +#system_menu { | |
186 | + background: #F5F5F5; | |
187 | +} | |
188 | +/* End Dropdown menu Topbar */ | |
91 | 189 | |
92 | 190 | /* Modal */ |
93 | 191 | .modal-header {min-height: 60px; border-bottom: 1px solid #E6E7E8 !important; padding-bottom: 15px !important;} |
... | ... | @@ -459,7 +557,7 @@ ul, li { |
459 | 557 | padding-bottom: 10px; |
460 | 558 | } |
461 | 559 | .form-group{ |
462 | - margin-top: 10px; | |
560 | + margin-top: 5px; | |
463 | 561 | } |
464 | 562 | |
465 | 563 | /* core/register_user.html classes*/ | ... | ... |
amadeus/static/js/main.js
... | ... | @@ -2,4 +2,14 @@ var locale = navigator.language || navigator.userLanguage; |
2 | 2 | |
3 | 3 | $('.date-picker').datepicker({ |
4 | 4 | language: locale, |
5 | +}); | |
6 | + | |
7 | +$(function () { | |
8 | + //Dropdown menu collapse | |
9 | + $('a[data-toggle="collapse"]').on('click', function (event) { | |
10 | + event.preventDefault(); | |
11 | + event.stopPropagation(); | |
12 | + $($(this).data('parent')).find('.panel-collapse.in').collapse('hide'); | |
13 | + $($(this).attr('href')).collapse('show'); | |
14 | + }); | |
5 | 15 | }); |
6 | 16 | \ No newline at end of file | ... | ... |
amadeus/templates/base.html
... | ... | @@ -70,14 +70,14 @@ |
70 | 70 | <span class="icon-bar"></span> |
71 | 71 | <span class="icon-bar"></span> |
72 | 72 | </button> |
73 | - <a class="navbar-brand" href="{% url 'categories:index' %}"><img class="logo" src="{% static 'img/topo-amadeus-white.png' %}" alt="Logo"/></a> | |
73 | + <a class="navbar-brand" href="{% url 'categories:index' %}"><img class="logo" src="{% static 'img/topo-amadeus-white.png' %}" alt="Logo" /></a> | |
74 | 74 | </div> |
75 | 75 | <div class="navbar-collapse collapse navbar-responsive-collapse"> |
76 | 76 | <div class="col-md-5 cards-content" id= 'NavBarSearch'> |
77 | 77 | <form id="SearchForm" action="#" method="get" accept-charset="utf-8"> |
78 | 78 | <div class="input-group"> |
79 | 79 | <div class="form-group is-empty" > |
80 | - <input type="text" class="form-control" placeholder="{% trans 'Search Files (.pdf, others) and/or activities' %}" name="search"> | |
80 | + <input type="text" class="form-control top-search" placeholder="{% trans 'Search Files (.pdf, others) and/or activities' %}" name="search"> | |
81 | 81 | </div> |
82 | 82 | <span class="input-group-btn input-group-sm"> |
83 | 83 | <button type="submit" class="btn btn-primary" id="btn-search"> |
... | ... | @@ -88,32 +88,31 @@ |
88 | 88 | </form> |
89 | 89 | </div> |
90 | 90 | <ul class="nav navbar-nav navbar-right notifications"> |
91 | - <!--<li class="" data-toggle="tooltip" data-placement="bottom" title data-original-title="notifications"> | |
92 | - <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>- | |
93 | - <ul id="notification-dropdown" class="dropdown-menu"> | |
94 | - <li class="dropdown-header"> {% trans 'Notifications' %}</li> | |
95 | - | |
96 | - <li> | |
97 | - <a onclick="getNotifications(5)"> | |
98 | - <div id="notification-see-more" class="list-group-item"> | |
99 | - <div class="row-content"> | |
100 | - <p class="list-group-item-text">{% trans 'See More' %}</p> | |
101 | - </div> | |
102 | - </div> | |
103 | - </a> | |
104 | - </li> | |
105 | - </ul> | |
106 | - </li> --> | |
107 | - <li title data-original-title="{% trans 'settings' %}"> | |
108 | - <a href="" data-toggle="dropdown"><i class="fa fa-cog" aria-hidden="true"></i></a> | |
109 | - <ul class="dropdown-menu pull-right"> | |
91 | + <li class="dropdown-accordion dropdown" data-accordion="#system_accordion" title data-original-title="{% trans 'settings' %}"> | |
92 | + <a href="#" data-toggle="dropdown"><i class="fa fa-cog" aria-hidden="true"></i></a> | |
93 | + <ul class="dropdown-menu pull-right" role="menu"> | |
110 | 94 | <li><a href="{% url 'users:manage' %}">{% trans 'Manage Users' %}</a></li> |
111 | 95 | <li><a href="{% url 'categories:index' %}">{% trans 'Manage Categories' %}</a></li> |
112 | - <li><a href="{% url 'categories:index' %}">{% trans 'System' %}</a></li> | |
113 | - <div id="horizontal-line"></div> | |
114 | - <li><a href="{% url 'categories:index' %}">{% trans 'Mail Sender' %}</a></li> | |
115 | - <li><a href="{% url 'categories:index' %}">{% trans 'Security' %}</a></li> | |
116 | - <li><a href="{% url 'categories:index' %}">{% trans 'Theme' %}</a></li> | |
96 | + <li> | |
97 | + <div class="panel-group" id="system_accordion"> | |
98 | + <div class="panel panel-default"> | |
99 | + <div class="panel-heading"> | |
100 | + <a href="#system_menu" data-toggle="collapse" data-parent="#system_accordion"> | |
101 | + <h4 class="panel-title"> | |
102 | + {% trans 'System' %} | |
103 | + </h4> | |
104 | + </a> | |
105 | + </div> | |
106 | + <div class="panel-collapse collapse" id="system_menu"> | |
107 | + <div class="panel-body"> | |
108 | + <a href="{% url 'categories:index' %}">{% trans 'Mail Sender' %}</a><br /> | |
109 | + <a href="{% url 'categories:index' %}">{% trans 'Security' %}</a><br /> | |
110 | + <a href="{% url 'categories:index' %}">{% trans 'Theme' %}</a> | |
111 | + </div> | |
112 | + </div> | |
113 | + </div> | |
114 | + </div> | |
115 | + </li> | |
117 | 116 | </ul> |
118 | 117 | </li> |
119 | 118 | <li title data-original-title="{% trans 'account' %}"> |
... | ... | @@ -156,10 +155,6 @@ |
156 | 155 | <li class="item" data-toggle="tooltip" data-placement="right" title="{% trans "Analytics" %}"> |
157 | 156 | <i class="fa fa-bar-chart" aria-hidden="true"></i> |
158 | 157 | </li> |
159 | - | |
160 | - | |
161 | - | |
162 | - | |
163 | 158 | </ul> |
164 | 159 | {% endblock %} |
165 | 160 | </div> |
... | ... | @@ -188,7 +183,7 @@ |
188 | 183 | /* Initialize tooltips*/ |
189 | 184 | $(function () { |
190 | 185 | $('[data-toggle="tooltip"]').tooltip() |
191 | - }) | |
186 | + }); | |
192 | 187 | </script> |
193 | 188 | </body> |
194 | 189 | ... | ... |
users/templates/users/search.html
... | ... | @@ -1,146 +0,0 @@ |
1 | -{% extends 'home.html' %} | |
2 | - | |
3 | -{% load i18n pagination django_bootstrap_breadcrumbs permission_tags static %} | |
4 | -{% block javascript %} | |
5 | - <script type="text/javascript" src="{% static 'js/forum.js' %}"></script> | |
6 | - <script src="{% static 'js/file.js' %}"></script> | |
7 | - <script type="text/javascript" src="{% static 'js/material.js' %}"></script> | |
8 | - <script type = "text/javascript" src="{% static 'js/links.js' %}"></script> | |
9 | - <script src="{% static 'js/modals_requisitions.js'%}"></script> | |
10 | - <script src="{% static 'js/modal_poll.js'%}"></script> | |
11 | -{% endblock %} | |
12 | - | |
13 | -{% block breadcrumbs %} | |
14 | - {{ block.super }} | |
15 | - {% breadcrumb search 'users:search' %} | |
16 | -{% endblock %} | |
17 | - | |
18 | - | |
19 | -{% block content %} | |
20 | -<div class="jumbotron"> | |
21 | -<h3>Search Result:</h3> {{qtd}} items found | |
22 | - | |
23 | -{% if link_list %} | |
24 | -<div class="panel-group"> | |
25 | - <div class="panel panel-default"> | |
26 | - <div class="panel-heading"> | |
27 | - <h4 class="panel-title"> | |
28 | - <a data-toggle="collapse" href="#Link" id="bot" style="color: black"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down"></i>Links</a> | |
29 | - </h4> | |
30 | - </div> | |
31 | - <div id="Link" class="panel-collapse collapse"> | |
32 | - <div class="panel-body"> | |
33 | - | |
34 | - | |
35 | - {% for link in link_list %} | |
36 | - <li id = "link_{{ link.slug }}"><i class="fa fa-link" aria-hidden="true"></i> <a href="javascript:modal.get('{% url 'course:links:view_link' link.slug %}', '#viewLinkModal','#divModalLink')">{{link.name}}</a></li> | |
37 | - {% endfor %} | |
38 | - <div class = 'row' id ="divModalLink"> | |
39 | - | |
40 | - </div> | |
41 | - | |
42 | - </div> | |
43 | - | |
44 | - </div> | |
45 | - </div> | |
46 | -</div> | |
47 | -{% endif%} | |
48 | - | |
49 | -{% if file_list %} | |
50 | -<div class="panel-group"> | |
51 | - <div class="panel panel-default"> | |
52 | - <div class="panel-heading"> | |
53 | - <h4 class="panel-title"> | |
54 | - <a data-toggle="collapse" href="#File" id="bot1" style="color: black"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down1"></i>File</a> | |
55 | - </h4> | |
56 | - </div> | |
57 | - <div id="File" class="panel-collapse collapse"> | |
58 | - <div class="panel-body"> | |
59 | - | |
60 | - {% for file in file_list %} | |
61 | - <li id="file_{{ file.slug }}"><i class="material-icons">{{ file.file_type.icon }}</i> <a href="{% url 'course:file_material_view' file.slug %}" target="_blank">{{ file.name }}</a></li> | |
62 | - {% endfor%} | |
63 | - | |
64 | - | |
65 | - <div class="row" id="divModalFile"> | |
66 | - | |
67 | - </div> | |
68 | - </div> | |
69 | - | |
70 | - | |
71 | - </div> | |
72 | - </div> | |
73 | -</div> | |
74 | -{% endif %} | |
75 | - | |
76 | -{% if forum_list %} | |
77 | -<div class="panel-group"> | |
78 | - <div class="panel panel-default"> | |
79 | - <div class="panel-heading"> | |
80 | - <h4 class="panel-title"> | |
81 | - <a data-toggle="collapse" href="#Forum" id="bot2" style="color: black"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down2"></i>Forum</a> | |
82 | - </h4> | |
83 | - </div> | |
84 | - <div id="Forum" class="panel-collapse collapse"> | |
85 | - <div class="panel-body"> | |
86 | - {% for forum in forum_list %} | |
87 | - <li><i class="fa fa-commenting" aria-hidden="true"></i> <a id="forum_{{ forum.id }}" href="{% url 'course:forum:view' forum.slug %}"> {{ forum }}</a></li> | |
88 | - {% endfor %} | |
89 | - | |
90 | - </div> | |
91 | - | |
92 | - </div> | |
93 | - </div> | |
94 | -</div> | |
95 | -{% endif %} | |
96 | - | |
97 | -{% if exam_list %} | |
98 | -<div class="panel-group"> | |
99 | - <div class="panel panel-default"> | |
100 | - <div class="panel-heading"> | |
101 | - <h4 class="panel-title"> | |
102 | - <a data-toggle="collapse" href="#Exam" id="bot3" style="color: black"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down3"></i>Exam</a> | |
103 | - </h4> | |
104 | - </div> | |
105 | - <div id="Exam" class="panel-collapse collapse"> | |
106 | - <div class="panel-body"> | |
107 | - {% for exam in exam_list %} | |
108 | - {{exam.name}} | |
109 | - {% endfor %} | |
110 | - | |
111 | - </div> | |
112 | - | |
113 | - </div> | |
114 | - </div> | |
115 | -</div> | |
116 | -{% endif %} | |
117 | - | |
118 | -{% if poll_list %} | |
119 | -<div class="panel-group"> | |
120 | - <div class="panel panel-default"> | |
121 | - <div class="panel-heading"> | |
122 | - <h4 class="panel-title"> | |
123 | - <a data-toggle="collapse" href="#Poll" id="bot4" style="color: black"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down4"></i>Poll</a> | |
124 | - </h4> | |
125 | - </div> | |
126 | - <div id="Poll" class="panel-collapse collapse"> | |
127 | - <div class="panel-body"> | |
128 | - | |
129 | - {% for poll in poll_list %} | |
130 | - <li id="poll_{{poll.slug}}"><i class="material-icons">{% trans 'poll' %}</i> <a href="javascript:modal.get('{% url 'course:poll:view_poll' poll.slug %}','#poll','#modal_poll');">{{ poll.name }}</a></li> | |
131 | - {% endfor %} | |
132 | - | |
133 | - <div class="row" id="modal_poll"> | |
134 | - | |
135 | - </div> | |
136 | - </div> | |
137 | - </div> | |
138 | - </div> | |
139 | -</div> | |
140 | -{% endif %} | |
141 | -</div> | |
142 | - | |
143 | - | |
144 | -<script type="text/javascript" src="{% static 'js/amadeus.js' %}"> </script> | |
145 | -<script type="text/javascript" src="{% static 'js/topic_editation_presentation_search.js' %}"></script> | |
146 | -{% endblock %} |
users/templates/users/view.html
... | ... | @@ -1,36 +0,0 @@ |
1 | -{% extends 'users/profile.html' %} | |
2 | - | |
3 | -{% load static i18n %} | |
4 | - | |
5 | -{% block breadcrumbs %} | |
6 | - <ol class="breadcrumb"> | |
7 | - <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li> | |
8 | - <li class="active">{{ acc }}</li> | |
9 | - </ol> | |
10 | -{% endblock %} | |
11 | - | |
12 | -{% block content %} | |
13 | - <div class="row"> | |
14 | - <div class="col-sm-3"> | |
15 | - <img src="{{ acc.image.url }}" class="img-responsive" /> | |
16 | - </div> | |
17 | - <div class="col-sm-9"> | |
18 | - <h4>{{ acc }}</h4> | |
19 | - <span class="label label-info">{% if acc.type_profile %}{{ acc.get_type_profile_display }}{% else %} {% trans 'Administrator' %} {% endif %}</span> | |
20 | - <span class="label label-primary">{{ acc.get_gender_display }}</span> | |
21 | - <span class="label label-warning">{{ acc.city }} / {{ acc.state }}</span> | |
22 | - <p> | |
23 | - <strong>{% trans 'Mail:' %} </strong> {{ acc.email }} | |
24 | - </p> | |
25 | - <p> | |
26 | - <strong>{% trans 'Phone:' %} </strong> {{ acc.phone }} | |
27 | - </p> | |
28 | - <p> | |
29 | - <strong>{% trans 'Cpf:' %} </strong> {{ acc.cpf }} | |
30 | - </p> | |
31 | - <p> | |
32 | - <strong>{% trans 'Birth date:' %} </strong> {{ acc.birth_date }} | |
33 | - </p> | |
34 | - </div> | |
35 | - </div> | |
36 | -{% endblock %} |
users/views.py
1 | 1 | from django.shortcuts import get_object_or_404,redirect, render |
2 | 2 | from django.views import generic |
3 | 3 | from django.contrib import messages |
4 | -from rolepermissions.mixins import HasRoleMixin | |
5 | 4 | from django.contrib.auth import authenticate, login as login_user |
6 | 5 | from django.contrib.auth.mixins import LoginRequiredMixin |
7 | 6 | from django.core.urlresolvers import reverse, reverse_lazy |
8 | 7 | from django.utils.translation import ugettext_lazy as _ |
9 | -from rolepermissions.shortcuts import assign_role | |
10 | -from rolepermissions.verifications import has_role | |
11 | 8 | |
12 | 9 | from .models import User |
13 | 10 | from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm |
... | ... | @@ -26,79 +23,6 @@ from .serializers import UserSerializer |
26 | 23 | from rest_framework.permissions import IsAuthenticated, IsAuthenticatedOrReadOnly |
27 | 24 | |
28 | 25 | # ================ ADMIN ======================= |
29 | - | |
30 | -# class View(LoginRequiredMixin, generic.DetailView): | |
31 | - | |
32 | -# #login_url = reverse_lazy("core:home") | |
33 | -# redirect_field_name = 'next' | |
34 | -# model = User | |
35 | -# context_object_name = 'acc' | |
36 | -# template_name = 'users/view.html' | |
37 | -# slug_field = 'username' | |
38 | -# slug_url_kwarg = 'username' | |
39 | - | |
40 | -# def get_context_data (self, **kwargs): | |
41 | -# context = super(View, self).get_context_data(**kwargs) | |
42 | -# context['title'] = "User" | |
43 | -# return context | |
44 | - | |
45 | -# def delete_user(request,username): | |
46 | -# user = get_object_or_404(User,username = username) | |
47 | -# user.delete() | |
48 | -# messages.success(request,_("User deleted Successfully!")) | |
49 | -# return redirect('users:manage') | |
50 | - | |
51 | -# def remove_account(request,username): | |
52 | -# user = get_object_or_404(User,username = username) | |
53 | -# user.delete() | |
54 | -# messages.success(request,_("User deleted Successfully!")) | |
55 | -# #return redirect('core:logout') | |
56 | - | |
57 | -# class Change_password(generic.TemplateView): | |
58 | -# template_name = 'users/change_password.html' | |
59 | - | |
60 | -# def get_context_data (self, **kwargs): | |
61 | -# context = super(Change_password, self).get_context_data(**kwargs) | |
62 | -# context['title'] = "Change Password" | |
63 | -# return context | |
64 | - | |
65 | -# class Remove_account(generic.TemplateView): | |
66 | -# template_name = 'users/remove_account.html' | |
67 | - | |
68 | -# def get_context_data (self, **kwargs): | |
69 | -# context = super(Remove_account, self).get_context_data(**kwargs) | |
70 | -# context['title'] = "Remove Account" | |
71 | -# return context | |
72 | - | |
73 | - | |
74 | - | |
75 | -# class DeleteUser(LoginRequiredMixin, generic.edit.DeleteView): | |
76 | -# allowed_roles = ['student'] | |
77 | -# #login_url = reverse_lazy("core:home") | |
78 | -# model = User | |
79 | - | |
80 | -# #success_url = reverse_lazy('core:index') | |
81 | -# success_message = "Deleted Successfully" | |
82 | - | |
83 | -# def get_queryset(self): | |
84 | -# user = get_object_or_404(User, username = self.request.user.username) | |
85 | -# return user | |
86 | - | |
87 | -# class SearchView(LoginRequiredMixin, generic.ListView): | |
88 | - | |
89 | -# #login_url = reverse_lazy("core:home") | |
90 | -# redirect_field_name = 'next' | |
91 | -# queryset = None | |
92 | -# template_name = 'users/search.html' | |
93 | -# paginate_by = 10 | |
94 | - | |
95 | -# def get_context_data(self, **kwargs): | |
96 | -# context = super(SearchView, self).get_context_data(**kwargs) | |
97 | -# search = self.request.GET.get('search', None) | |
98 | - | |
99 | - | |
100 | -# return context | |
101 | - | |
102 | 26 | class UsersListView(LoginRequiredMixin, generic.ListView): |
103 | 27 | login_url = reverse_lazy("users:login") |
104 | 28 | redirect_field_name = 'next' | ... | ... |