Commit 8bee4fbdd7f17ef46b699137f0c80b0f436094bd

Authored by Jailson Dias
1 parent e6832d6a

resolve #3

amadeus/settings.py
@@ -142,7 +142,7 @@ MEDIA_URL = '/uploads/' @@ -142,7 +142,7 @@ MEDIA_URL = '/uploads/'
142 142
143 # Users 143 # Users
144 LOGIN_REDIRECT_URL = 'app:index' 144 LOGIN_REDIRECT_URL = 'app:index'
145 -LOGIN_URL = 'home' 145 +LOGIN_URL = 'core:home'
146 AUTH_USER_MODEL = 'users.User' 146 AUTH_USER_MODEL = 'users.User'
147 AUTHENTICATION_BACKENDS = [ 147 AUTHENTICATION_BACKENDS = [
148 'django.contrib.auth.backends.ModelBackend', 148 'django.contrib.auth.backends.ModelBackend',
@@ -150,4 +150,4 @@ AUTHENTICATION_BACKENDS = [ @@ -150,4 +150,4 @@ AUTHENTICATION_BACKENDS = [
150 ROLEPERMISSIONS_MODULE = 'amadeus.roles' 150 ROLEPERMISSIONS_MODULE = 'amadeus.roles'
151 151
152 152
153 -#https://github.com/squ1b3r/Djaneiro  
154 \ No newline at end of file 153 \ No newline at end of file
  154 +#https://github.com/squ1b3r/Djaneiro
@@ -9,4 +9,4 @@ def index(request): @@ -9,4 +9,4 @@ def index(request):
9 9
10 context['courses'] = Course.objects.filter(user = request.user) 10 context['courses'] = Course.objects.filter(user = request.user)
11 11
12 - return render(request, "home_app.html", context)  
13 \ No newline at end of file 12 \ No newline at end of file
  13 + return render(request, "home_app.html", context)
core/templates/index.html
@@ -3,165 +3,85 @@ @@ -3,165 +3,85 @@
3 {% load static i18n %} 3 {% load static i18n %}
4 {% load widget_tweaks %} 4 {% load widget_tweaks %}
5 5
6 -{% block sidebar %}  
7 - <form class="form-horizontal" action="" method="post">  
8 - {% csrf_token %}  
9 -  
10 - {% for error in form.non_field_errors %}  
11 - <div class="alert alert-danger">  
12 - {{ error }}  
13 - </div>  
14 - {% endfor %}  
15 -  
16 - {% for field in form %}  
17 - <div class="form-group {% if form.has_error %} error {% endif %}">  
18 - <label for="{{ field.auto_id }}" class="col-sm-2 control-label">{{ field.label }}</label>  
19 - <div class="col-sm-10">  
20 - {% render_field field class='form-control input-sm' %}  
21 - {% for error in field.errors %}  
22 - <span class="help-block">{{ error }}</span>  
23 - {% endfor %}  
24 - </div>  
25 - </div>  
26 - {% endfor %}  
27 - <div class="form-group">  
28 - <div class="col-sm-12">  
29 - <input type="submit" class="btn btn-sm btn-success pull-right" value="{% trans 'Entrar' %}" />  
30 - </div>  
31 - </div>  
32 - </form> 6 +{% block style %}
  7 + <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css">
  8 + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  9 +
  10 + <link rel="stylesheet" type="text/css" href="{% static 'bootstrap-3.3.7/css/bootstrap.min.css' %}">
  11 + <link rel="stylesheet" type="text/css" href="{% static 'material/css/bootstrap-material-design.min.css' %}">
  12 + <link rel="stylesheet" type="text/css" href="{% static 'material/css/ripples.min.css' %}">
  13 +
  14 +{% endblock %}
  15 +
  16 +
  17 +{% block javascript %}
  18 +<!-- Jquery -->
  19 + <script src="{% static 'js/jquery-3.1.0.min.js' %}"></script>
  20 + <script src="{% static 'bootstrap-3.3.7/js/bootstrap.min.js' %}"></script>
  21 + <script src="{% static 'material/js/material.min.js' %}"></script>
  22 + <script src="{% static 'material/js/ripples.min.js' %}"></script>
  23 + <script>
  24 + $.material.init();
  25 + </script>
33 {% endblock %} 26 {% endblock %}
34 27
  28 +
35 {% block content %} 29 {% block content %}
36 - <div class="row">  
37 - <div class="col-sm-12">  
38 - <form class="form-horizontal" method="post">  
39 - <div class="col-sm-10">  
40 - <div class="form-group">  
41 - <label for="search_keyword" class="control-label col-sm-3">{% trans 'Search course:' %} </label>  
42 - <div class="col-sm-9">  
43 - <input type="text" class="form-control input-sm" id="search_keyword" />  
44 - </div>  
45 - </div>  
46 - </div>  
47 - <button type="submit" class="btn btn-sm btn-success">{% trans 'Search' %}</button>  
48 - </form>  
49 -  
50 - <hr />  
51 -  
52 - <h5>{% trans 'Most popular keywords:' %}</h5>  
53 - <div class="well">  
54 - <center>  
55 - <ul class="cloud">  
56 - <li>  
57 - <a href="">  
58 - teste amadeus prospb  
59 - </a>  
60 - </li>  
61 - <li>  
62 - <a href="">  
63 - programação fácil  
64 - </a>  
65 - </li>  
66 - <li>  
67 - <a href="">  
68 - intermediário  
69 - </a>  
70 - </li>  
71 - <li>  
72 - <a href="">  
73 - amadeus  
74 - </a>  
75 - </li>  
76 - <li>  
77 - <a href="">  
78 - palavra02  
79 - </a>  
80 - </li>  
81 - <li>  
82 - <a href="">  
83 - programação para iniciantes  
84 - </a>  
85 - </li>  
86 - <li>  
87 - <a href="">  
88 - django  
89 - </a>  
90 - </li>  
91 - <li>  
92 - <a href="">  
93 - aluno teste  
94 - </a>  
95 - </li>  
96 - <li>  
97 - <a href="">  
98 - curso0101  
99 - </a>  
100 - </li>  
101 - <li>  
102 - <a href="">  
103 - kjsdnksa  
104 - </a>  
105 - </li>  
106 - <li>  
107 - <a href="">  
108 - palavra01  
109 - </a>  
110 - </li>  
111 - <li>  
112 - <a href="">  
113 - programming  
114 - </a>  
115 - </li>  
116 - <li>  
117 - <a href="">  
118 - python  
119 - </a>  
120 - </li>  
121 - <li>  
122 - <a href="">  
123 - curso  
124 - </a>  
125 - </li>  
126 - <li>  
127 - <a href="">  
128 - mvc  
129 - </a>  
130 - </li>  
131 - <li>  
132 - <a href="">  
133 - programação web  
134 - </a>  
135 - </li>  
136 - <li>  
137 - <a href="">  
138 - ionic  
139 - </a>  
140 - </li>  
141 - <li>  
142 - <a href="">  
143 - framework  
144 - </a>  
145 - </li>  
146 - <li>  
147 - <a href="">  
148 - web  
149 - </a>  
150 - </li>  
151 - <li>  
152 - <a href="">  
153 - android  
154 - </a>  
155 - </li>  
156 - <li>  
157 - <a href="">  
158 - programação  
159 - </a>  
160 - </li>  
161 - </ul>  
162 - </center>  
163 - </div>  
164 - </div>  
165 - </div>  
166 -  
167 -{% endblock %}  
168 \ No newline at end of file 30 \ No newline at end of file
  31 + <div class="row logo-row">
  32 + <div class="col-lg-offset-4 col-lg-2">
  33 + <img src="..." class="img-responsive center-block " alt="logo amadeus">
  34 + </div>
  35 + </div>
  36 +
  37 + <div class="row ">
  38 + <div class="col-lg-8 col-lg-offset-4">
  39 + <div class="card">
  40 + <div class="card-content">
  41 +
  42 + <div class="card-body">
  43 + <form id="form-login"class="form-group" method="post" action="">
  44 + {% csrf_token %}
  45 + <label class="col-md-4 control-label"> E-mail</label>
  46 + <div class="col-md-8">
  47 + <input type="email" class="form-control" id="inputEmail" placeholder="Email">
  48 + </div>
  49 +
  50 + <div class="form-group is-empty">
  51 + <label for="inputPassword" class="col-md-4 control-label">Password</label>
  52 +
  53 + <div class="col-md-8">
  54 + <input type="password" class="form-control" id="inputPassword" placeholder="Password">
  55 + </div>
  56 + </div>
  57 + <div class="col-md-offset-2 col-md-10">
  58 + <div class="checkbox">
  59 + <label>
  60 + <input type="checkbox"><span class="checkbox-material"><span class="check"></span></span> Remember Email
  61 + </label>
  62 + </div>
  63 + </div>
  64 +
  65 + </form>
  66 + </div>
  67 +
  68 + <footer class="card-footer">
  69 + <div class="col-md-6">
  70 + <button type="button" class="btn btn-flat" formaction="#">Guest</button>
  71 + </div>
  72 + <div class="col-md-6">
  73 + <button type="submite" class="btn btn-flat btn-success" form="form-login" >Login</button>
  74 + </div>
  75 + </footer>
  76 +
  77 + </div>
  78 + </div>
  79 + </div>
  80 + </div>
  81 + <div class="row">
  82 + <div class="col-lg-offset-4 col-lg-8">
  83 + <button class="btn btn-raised btn-primary btn-lg btn-block" formaction="{% url 'users:create' %}">Sign Up </button>
  84 +
  85 + </div>
  86 +
  87 + </div>
  88 +{% endblock%}
@@ -6,5 +6,5 @@ from . import views @@ -6,5 +6,5 @@ from . import views
6 urlpatterns = [ 6 urlpatterns = [
7 url(r'^$', views.index, name='index'), 7 url(r'^$', views.index, name='index'),
8 url(r'^login/$', auth_views.login, {'template_name': 'index.html'}, name='home'), 8 url(r'^login/$', auth_views.login, {'template_name': 'index.html'}, name='home'),
9 - url(r'^logout/$', auth_views.logout, {'next_page': 'home'}, name='logout'), 9 + url(r'^logout/$', auth_views.logout, {'next_page': 'core:home'}, name='logout'),
10 ] 10 ]
courses/views.py
@@ -35,7 +35,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -35,7 +35,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
35 redirect_field_name = 'next' 35 redirect_field_name = 'next'
36 template_name = 'course/create.html' 36 template_name = 'course/create.html'
37 form_class = CourseForm 37 form_class = CourseForm
38 - success_url = reverse_lazy('app:course:manage') 38 + success_url = reverse_lazy('course:manage')
39 39
40 def form_valid(self, form): 40 def form_valid(self, form):
41 self.object = form.save(commit = False) 41 self.object = form.save(commit = False)
@@ -46,7 +46,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -46,7 +46,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
46 46
47 def render_to_response(self, context, **response_kwargs): 47 def render_to_response(self, context, **response_kwargs):
48 messages.success(self.request, _('Course created successfully!')) 48 messages.success(self.request, _('Course created successfully!'))
49 - 49 +
50 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 50 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
51 51
52 class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 52 class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
@@ -57,7 +57,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -57,7 +57,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
57 template_name = 'course/update.html' 57 template_name = 'course/update.html'
58 model = Course 58 model = Course
59 form_class = CourseForm 59 form_class = CourseForm
60 - success_url = reverse_lazy('app:course:manage') 60 + success_url = reverse_lazy('course:manage')
61 61
62 def form_valid(self, form): 62 def form_valid(self, form):
63 self.object = form.save(commit = False) 63 self.object = form.save(commit = False)
@@ -68,7 +68,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -68,7 +68,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
68 68
69 def render_to_response(self, context, **response_kwargs): 69 def render_to_response(self, context, **response_kwargs):
70 messages.success(self.request, _('Course edited successfully!')) 70 messages.success(self.request, _('Course edited successfully!'))
71 - 71 +
72 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 72 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
73 73
74 class View(LoginRequiredMixin, generic.DetailView): 74 class View(LoginRequiredMixin, generic.DetailView):
@@ -86,11 +86,11 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -86,11 +86,11 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
86 redirect_field_name = 'next' 86 redirect_field_name = 'next'
87 model = Course 87 model = Course
88 template_name = 'course/delete.html' 88 template_name = 'course/delete.html'
89 - success_url = reverse_lazy('app:course:manage') 89 + success_url = reverse_lazy('course:manage')
90 90
91 def render_to_response(self, context, **response_kwargs): 91 def render_to_response(self, context, **response_kwargs):
92 messages.success(self.request, _('Course deleted successfully!')) 92 messages.success(self.request, _('Course deleted successfully!'))
93 - 93 +
94 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 94 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
95 95
96 class FilteredView(LoginRequiredMixin, generic.ListView): 96 class FilteredView(LoginRequiredMixin, generic.ListView):
@@ -129,7 +129,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -129,7 +129,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
129 redirect_field_name = 'next' 129 redirect_field_name = 'next'
130 template_name = 'category/create.html' 130 template_name = 'category/create.html'
131 form_class = CategoryForm 131 form_class = CategoryForm
132 - success_url = reverse_lazy('app:course:manage_cat') 132 + success_url = reverse_lazy('course:manage_cat')
133 133
134 def form_valid(self, form): 134 def form_valid(self, form):
135 self.object = form.save(commit = False) 135 self.object = form.save(commit = False)
@@ -140,7 +140,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -140,7 +140,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
140 140
141 def render_to_response(self, context, **response_kwargs): 141 def render_to_response(self, context, **response_kwargs):
142 messages.success(self.request, _('Category created successfully!')) 142 messages.success(self.request, _('Category created successfully!'))
143 - 143 +
144 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 144 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
145 145
146 class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 146 class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
@@ -151,7 +151,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -151,7 +151,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
151 template_name = 'category/update.html' 151 template_name = 'category/update.html'
152 model = Category 152 model = Category
153 form_class = CategoryForm 153 form_class = CategoryForm
154 - success_url = reverse_lazy('app:course:manage_cat') 154 + success_url = reverse_lazy('course:manage_cat')
155 155
156 def form_valid(self, form): 156 def form_valid(self, form):
157 self.object = form.save(commit = False) 157 self.object = form.save(commit = False)
@@ -162,7 +162,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -162,7 +162,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
162 162
163 def render_to_response(self, context, **response_kwargs): 163 def render_to_response(self, context, **response_kwargs):
164 messages.success(self.request, _('Category edited successfully!')) 164 messages.success(self.request, _('Category edited successfully!'))
165 - 165 +
166 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 166 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
167 167
168 class ViewCat(LoginRequiredMixin, generic.DetailView): 168 class ViewCat(LoginRequiredMixin, generic.DetailView):
@@ -173,17 +173,17 @@ class ViewCat(LoginRequiredMixin, generic.DetailView): @@ -173,17 +173,17 @@ class ViewCat(LoginRequiredMixin, generic.DetailView):
173 context_object_name = 'category' 173 context_object_name = 'category'
174 174
175 class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): 175 class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
176 - 176 +
177 allowed_roles = ['professor', 'system_admin'] 177 allowed_roles = ['professor', 'system_admin']
178 login_url = '/' 178 login_url = '/'
179 redirect_field_name = 'next' 179 redirect_field_name = 'next'
180 model = Category 180 model = Category
181 template_name = 'category/delete.html' 181 template_name = 'category/delete.html'
182 - success_url = reverse_lazy('app:course:manage_cat') 182 + success_url = reverse_lazy('course:manage_cat')
183 183
184 def render_to_response(self, context, **response_kwargs): 184 def render_to_response(self, context, **response_kwargs):
185 messages.success(self.request, _('Category deleted successfully!')) 185 messages.success(self.request, _('Category deleted successfully!'))
186 - 186 +
187 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 187 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
188 188
189 class ModulesView(LoginRequiredMixin, generic.ListView): 189 class ModulesView(LoginRequiredMixin, generic.ListView):
@@ -214,7 +214,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -214,7 +214,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
214 form_class = ModuleForm 214 form_class = ModuleForm
215 215
216 def get_success_url(self): 216 def get_success_url(self):
217 - return reverse_lazy('app:course:manage_mods', kwargs={'slug' : self.object.course.slug}) 217 + return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug})
218 218
219 def get_context_data(self, **kwargs): 219 def get_context_data(self, **kwargs):
220 course = get_object_or_404(Course, slug = self.kwargs.get('slug')) 220 course = get_object_or_404(Course, slug = self.kwargs.get('slug'))
@@ -235,7 +235,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -235,7 +235,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
235 235
236 def render_to_response(self, context, **response_kwargs): 236 def render_to_response(self, context, **response_kwargs):
237 messages.success(self.request, _('Module created successfully!')) 237 messages.success(self.request, _('Module created successfully!'))
238 - 238 +
239 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 239 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
240 240
241 class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 241 class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
@@ -248,7 +248,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -248,7 +248,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
248 form_class = ModuleForm 248 form_class = ModuleForm
249 249
250 def get_success_url(self): 250 def get_success_url(self):
251 - return reverse_lazy('app:course:manage_mods', kwargs={'slug' : self.object.course.slug}) 251 + return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug})
252 252
253 def get_context_data(self, **kwargs): 253 def get_context_data(self, **kwargs):
254 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) 254 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course'))
@@ -266,7 +266,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -266,7 +266,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
266 266
267 def render_to_response(self, context, **response_kwargs): 267 def render_to_response(self, context, **response_kwargs):
268 messages.success(self.request, _('Module edited successfully!')) 268 messages.success(self.request, _('Module edited successfully!'))
269 - 269 +
270 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 270 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
271 271
272 class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): 272 class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
@@ -278,7 +278,7 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -278,7 +278,7 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
278 template_name = 'module/delete.html' 278 template_name = 'module/delete.html'
279 279
280 def get_success_url(self): 280 def get_success_url(self):
281 - return reverse_lazy('app:course:manage_mods', kwargs={'slug' : self.object.course.slug}) 281 + return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug})
282 282
283 def get_context_data(self, **kwargs): 283 def get_context_data(self, **kwargs):
284 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) 284 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course'))
@@ -289,5 +289,5 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -289,5 +289,5 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
289 289
290 def render_to_response(self, context, **response_kwargs): 290 def render_to_response(self, context, **response_kwargs):
291 messages.success(self.request, _('Module deleted successfully!')) 291 messages.success(self.request, _('Module deleted successfully!'))
292 - 292 +
293 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 293 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
@@ -9,4 +9,4 @@ urlpatterns = [ @@ -9,4 +9,4 @@ urlpatterns = [
9 url(r'^usuario/dados/(?P<username>[\w_-]+)/$', views.View.as_view(), name='view'), 9 url(r'^usuario/dados/(?P<username>[\w_-]+)/$', views.View.as_view(), name='view'),
10 url(r'^perfil/$', views.Profile.as_view(), name='profile'), 10 url(r'^perfil/$', views.Profile.as_view(), name='profile'),
11 url(r'^perfil/editar/$', views.EditProfile.as_view(), name='edit_profile'), 11 url(r'^perfil/editar/$', views.EditProfile.as_view(), name='edit_profile'),
12 -]  
13 \ No newline at end of file 12 \ No newline at end of file
  13 +]
users/views.py
@@ -10,7 +10,7 @@ from .models import User @@ -10,7 +10,7 @@ from .models import User
10 from .forms import UserForm, ProfileForm 10 from .forms import UserForm, ProfileForm
11 11
12 class UsersListView(HasRoleMixin, LoginRequiredMixin, generic.ListView): 12 class UsersListView(HasRoleMixin, LoginRequiredMixin, generic.ListView):
13 - 13 +
14 allowed_roles = ['system_admin'] 14 allowed_roles = ['system_admin']
15 login_url = '/' 15 login_url = '/'
16 redirect_field_name = 'next' 16 redirect_field_name = 'next'
@@ -30,7 +30,7 @@ class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): @@ -30,7 +30,7 @@ class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
30 template_name = 'users/create.html' 30 template_name = 'users/create.html'
31 form_class = UserForm 31 form_class = UserForm
32 context_object_name = 'acc' 32 context_object_name = 'acc'
33 - success_url = reverse_lazy('app:user:manage') 33 + success_url = reverse_lazy('user:manage')
34 34
35 def form_valid(self, form): 35 def form_valid(self, form):
36 self.object = form.save(commit = False) 36 self.object = form.save(commit = False)
@@ -59,11 +59,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView): @@ -59,11 +59,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
59 context_object_name = 'acc' 59 context_object_name = 'acc'
60 model = User 60 model = User
61 form_class = UserForm 61 form_class = UserForm
62 - success_url = reverse_lazy('app:users:manage') 62 + success_url = reverse_lazy('users:manage')
63 63
64 def form_valid(self, form): 64 def form_valid(self, form):
65 self.object = form.save(commit = False) 65 self.object = form.save(commit = False)
66 - 66 +
67 if self.object.type_profile == 2: 67 if self.object.type_profile == 2:
68 assign_role(self.object, 'student') 68 assign_role(self.object, 'student')
69 elif self.object.type_profile == 1: 69 elif self.object.type_profile == 1:
@@ -72,11 +72,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView): @@ -72,11 +72,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
72 assign_role(self.object, 'system_admin') 72 assign_role(self.object, 'system_admin')
73 73
74 self.object.save() 74 self.object.save()
75 - 75 +
76 messages.success(self.request, _('User edited successfully!')) 76 messages.success(self.request, _('User edited successfully!'))
77 77
78 return super(Update, self).form_valid(form) 78 return super(Update, self).form_valid(form)
79 - 79 +
80 class View(LoginRequiredMixin, generic.DetailView): 80 class View(LoginRequiredMixin, generic.DetailView):
81 81
82 login_url = '/' 82 login_url = '/'
@@ -96,7 +96,7 @@ class Profile(LoginRequiredMixin, generic.DetailView): @@ -96,7 +96,7 @@ class Profile(LoginRequiredMixin, generic.DetailView):
96 96
97 def get_object(self): 97 def get_object(self):
98 user = get_object_or_404(User, username = self.request.user.username) 98 user = get_object_or_404(User, username = self.request.user.username)
99 - return user 99 + return user
100 100
101 class EditProfile(LoginRequiredMixin, generic.UpdateView): 101 class EditProfile(LoginRequiredMixin, generic.UpdateView):
102 102
@@ -112,7 +112,7 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView): @@ -112,7 +112,7 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView):
112 112
113 def form_valid(self, form): 113 def form_valid(self, form):
114 self.object = form.save(commit = False) 114 self.object = form.save(commit = False)
115 - 115 +
116 if self.object.type_profile == 2: 116 if self.object.type_profile == 2:
117 assign_role(self.object, 'student') 117 assign_role(self.object, 'student')
118 elif self.object.type_profile == 1: 118 elif self.object.type_profile == 1:
@@ -124,4 +124,4 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView): @@ -124,4 +124,4 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView):
124 124
125 messages.success(self.request, _('Profile edited successfully!')) 125 messages.success(self.request, _('Profile edited successfully!'))
126 126
127 - return super(EditProfile, self).form_valid(form)  
128 \ No newline at end of file 127 \ No newline at end of file
  128 + return super(EditProfile, self).form_valid(form)