Commit 8bee4fbdd7f17ef46b699137f0c80b0f436094bd

Authored by Jailson Dias
1 parent e6832d6a

resolve #3

amadeus/settings.py
... ... @@ -142,7 +142,7 @@ MEDIA_URL = '/uploads/'
142 142  
143 143 # Users
144 144 LOGIN_REDIRECT_URL = 'app:index'
145   -LOGIN_URL = 'home'
  145 +LOGIN_URL = 'core:home'
146 146 AUTH_USER_MODEL = 'users.User'
147 147 AUTHENTICATION_BACKENDS = [
148 148 'django.contrib.auth.backends.ModelBackend',
... ... @@ -150,4 +150,4 @@ AUTHENTICATION_BACKENDS = [
150 150 ROLEPERMISSIONS_MODULE = 'amadeus.roles'
151 151  
152 152  
153   -#https://github.com/squ1b3r/Djaneiro
154 153 \ No newline at end of file
  154 +#https://github.com/squ1b3r/Djaneiro
... ...
app/views.py
... ... @@ -9,4 +9,4 @@ def index(request):
9 9  
10 10 context['courses'] = Course.objects.filter(user = request.user)
11 11  
12   - return render(request, "home_app.html", context)
13 12 \ No newline at end of file
  13 + return render(request, "home_app.html", context)
... ...
core/templates/index.html
... ... @@ -3,165 +3,85 @@
3 3 {% load static i18n %}
4 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 26 {% endblock %}
34 27  
  28 +
35 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 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%}
... ...
core/urls.py
... ... @@ -6,5 +6,5 @@ from . import views
6 6 urlpatterns = [
7 7 url(r'^$', views.index, name='index'),
8 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 35 redirect_field_name = 'next'
36 36 template_name = 'course/create.html'
37 37 form_class = CourseForm
38   - success_url = reverse_lazy('app:course:manage')
  38 + success_url = reverse_lazy('course:manage')
39 39  
40 40 def form_valid(self, form):
41 41 self.object = form.save(commit = False)
... ... @@ -46,7 +46,7 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
46 46  
47 47 def render_to_response(self, context, **response_kwargs):
48 48 messages.success(self.request, _('Course created successfully!'))
49   -
  49 +
50 50 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
51 51  
52 52 class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
... ... @@ -57,7 +57,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
57 57 template_name = 'course/update.html'
58 58 model = Course
59 59 form_class = CourseForm
60   - success_url = reverse_lazy('app:course:manage')
  60 + success_url = reverse_lazy('course:manage')
61 61  
62 62 def form_valid(self, form):
63 63 self.object = form.save(commit = False)
... ... @@ -68,7 +68,7 @@ class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
68 68  
69 69 def render_to_response(self, context, **response_kwargs):
70 70 messages.success(self.request, _('Course edited successfully!'))
71   -
  71 +
72 72 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
73 73  
74 74 class View(LoginRequiredMixin, generic.DetailView):
... ... @@ -86,11 +86,11 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
86 86 redirect_field_name = 'next'
87 87 model = Course
88 88 template_name = 'course/delete.html'
89   - success_url = reverse_lazy('app:course:manage')
  89 + success_url = reverse_lazy('course:manage')
90 90  
91 91 def render_to_response(self, context, **response_kwargs):
92 92 messages.success(self.request, _('Course deleted successfully!'))
93   -
  93 +
94 94 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
95 95  
96 96 class FilteredView(LoginRequiredMixin, generic.ListView):
... ... @@ -129,7 +129,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
129 129 redirect_field_name = 'next'
130 130 template_name = 'category/create.html'
131 131 form_class = CategoryForm
132   - success_url = reverse_lazy('app:course:manage_cat')
  132 + success_url = reverse_lazy('course:manage_cat')
133 133  
134 134 def form_valid(self, form):
135 135 self.object = form.save(commit = False)
... ... @@ -140,7 +140,7 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
140 140  
141 141 def render_to_response(self, context, **response_kwargs):
142 142 messages.success(self.request, _('Category created successfully!'))
143   -
  143 +
144 144 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
145 145  
146 146 class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
... ... @@ -151,7 +151,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
151 151 template_name = 'category/update.html'
152 152 model = Category
153 153 form_class = CategoryForm
154   - success_url = reverse_lazy('app:course:manage_cat')
  154 + success_url = reverse_lazy('course:manage_cat')
155 155  
156 156 def form_valid(self, form):
157 157 self.object = form.save(commit = False)
... ... @@ -162,7 +162,7 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
162 162  
163 163 def render_to_response(self, context, **response_kwargs):
164 164 messages.success(self.request, _('Category edited successfully!'))
165   -
  165 +
166 166 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
167 167  
168 168 class ViewCat(LoginRequiredMixin, generic.DetailView):
... ... @@ -173,17 +173,17 @@ class ViewCat(LoginRequiredMixin, generic.DetailView):
173 173 context_object_name = 'category'
174 174  
175 175 class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
176   -
  176 +
177 177 allowed_roles = ['professor', 'system_admin']
178 178 login_url = '/'
179 179 redirect_field_name = 'next'
180 180 model = Category
181 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 184 def render_to_response(self, context, **response_kwargs):
185 185 messages.success(self.request, _('Category deleted successfully!'))
186   -
  186 +
187 187 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
188 188  
189 189 class ModulesView(LoginRequiredMixin, generic.ListView):
... ... @@ -214,7 +214,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
214 214 form_class = ModuleForm
215 215  
216 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 219 def get_context_data(self, **kwargs):
220 220 course = get_object_or_404(Course, slug = self.kwargs.get('slug'))
... ... @@ -235,7 +235,7 @@ class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
235 235  
236 236 def render_to_response(self, context, **response_kwargs):
237 237 messages.success(self.request, _('Module created successfully!'))
238   -
  238 +
239 239 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
240 240  
241 241 class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
... ... @@ -248,7 +248,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
248 248 form_class = ModuleForm
249 249  
250 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 253 def get_context_data(self, **kwargs):
254 254 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course'))
... ... @@ -266,7 +266,7 @@ class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
266 266  
267 267 def render_to_response(self, context, **response_kwargs):
268 268 messages.success(self.request, _('Module edited successfully!'))
269   -
  269 +
270 270 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
271 271  
272 272 class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
... ... @@ -278,7 +278,7 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
278 278 template_name = 'module/delete.html'
279 279  
280 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 283 def get_context_data(self, **kwargs):
284 284 course = get_object_or_404(Course, slug = self.kwargs.get('slug_course'))
... ... @@ -289,5 +289,5 @@ class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
289 289  
290 290 def render_to_response(self, context, **response_kwargs):
291 291 messages.success(self.request, _('Module deleted successfully!'))
292   -
  292 +
293 293 return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
... ...
users/urls.py
... ... @@ -9,4 +9,4 @@ urlpatterns = [
9 9 url(r'^usuario/dados/(?P<username>[\w_-]+)/$', views.View.as_view(), name='view'),
10 10 url(r'^perfil/$', views.Profile.as_view(), name='profile'),
11 11 url(r'^perfil/editar/$', views.EditProfile.as_view(), name='edit_profile'),
12   -]
13 12 \ No newline at end of file
  13 +]
... ...
users/views.py
... ... @@ -10,7 +10,7 @@ from .models import User
10 10 from .forms import UserForm, ProfileForm
11 11  
12 12 class UsersListView(HasRoleMixin, LoginRequiredMixin, generic.ListView):
13   -
  13 +
14 14 allowed_roles = ['system_admin']
15 15 login_url = '/'
16 16 redirect_field_name = 'next'
... ... @@ -30,7 +30,7 @@ class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
30 30 template_name = 'users/create.html'
31 31 form_class = UserForm
32 32 context_object_name = 'acc'
33   - success_url = reverse_lazy('app:user:manage')
  33 + success_url = reverse_lazy('user:manage')
34 34  
35 35 def form_valid(self, form):
36 36 self.object = form.save(commit = False)
... ... @@ -59,11 +59,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
59 59 context_object_name = 'acc'
60 60 model = User
61 61 form_class = UserForm
62   - success_url = reverse_lazy('app:users:manage')
  62 + success_url = reverse_lazy('users:manage')
63 63  
64 64 def form_valid(self, form):
65 65 self.object = form.save(commit = False)
66   -
  66 +
67 67 if self.object.type_profile == 2:
68 68 assign_role(self.object, 'student')
69 69 elif self.object.type_profile == 1:
... ... @@ -72,11 +72,11 @@ class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
72 72 assign_role(self.object, 'system_admin')
73 73  
74 74 self.object.save()
75   -
  75 +
76 76 messages.success(self.request, _('User edited successfully!'))
77 77  
78 78 return super(Update, self).form_valid(form)
79   -
  79 +
80 80 class View(LoginRequiredMixin, generic.DetailView):
81 81  
82 82 login_url = '/'
... ... @@ -96,7 +96,7 @@ class Profile(LoginRequiredMixin, generic.DetailView):
96 96  
97 97 def get_object(self):
98 98 user = get_object_or_404(User, username = self.request.user.username)
99   - return user
  99 + return user
100 100  
101 101 class EditProfile(LoginRequiredMixin, generic.UpdateView):
102 102  
... ... @@ -112,7 +112,7 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView):
112 112  
113 113 def form_valid(self, form):
114 114 self.object = form.save(commit = False)
115   -
  115 +
116 116 if self.object.type_profile == 2:
117 117 assign_role(self.object, 'student')
118 118 elif self.object.type_profile == 1:
... ... @@ -124,4 +124,4 @@ class EditProfile(LoginRequiredMixin, generic.UpdateView):
124 124  
125 125 messages.success(self.request, _('Profile edited successfully!'))
126 126  
127   - return super(EditProfile, self).form_valid(form)
128 127 \ No newline at end of file
  128 + return super(EditProfile, self).form_valid(form)
... ...