Commit 0fd772dcb8308bb190525c746c341e3a07ede4e0
1 parent
ff839086
Exists in
master
and in
5 other branches
templates para visualização das views de subjects e topics issues #27 e #28
Showing
5 changed files
with
211 additions
and
102 deletions
Show diff stats
@@ -0,0 +1,14 @@ | @@ -0,0 +1,14 @@ | ||
1 | +{% load i18n %} | ||
2 | + | ||
3 | +<div class="panel panel-default"> | ||
4 | + <div class="panel-heading"> | ||
5 | + <div class="row"> | ||
6 | + <div class="col-md-9 col-sm-9"> | ||
7 | + <h3>{{topic}}</h3> | ||
8 | + </div> | ||
9 | + </div> | ||
10 | + </div> | ||
11 | + <div class="panel-body"> | ||
12 | + <p>{{topic.description}}</p> | ||
13 | + </div> | ||
14 | +</div> |
@@ -0,0 +1,17 @@ | @@ -0,0 +1,17 @@ | ||
1 | +{% load i18n %} | ||
2 | + | ||
3 | +<div class="panel panel-default"> | ||
4 | + <div class="panel-heading"> | ||
5 | + <div class="row"> | ||
6 | + <div class="col-md-9 col-sm-9"> | ||
7 | + <h3>{{topic}}</h3> | ||
8 | + </div> | ||
9 | + <div class="col-md-3 col-sm-3"> | ||
10 | + <a href="#" class="btn">{% trans "edit" %}</a> | ||
11 | + </div> | ||
12 | + </div> | ||
13 | + </div> | ||
14 | + <div class="panel-body"> | ||
15 | + <p>{{topic.description}}</p> | ||
16 | + </div> | ||
17 | +</div> |
@@ -0,0 +1,62 @@ | @@ -0,0 +1,62 @@ | ||
1 | +{% extends 'base.html' %} | ||
2 | + | ||
3 | +{% load static i18n permission_tags %} | ||
4 | + | ||
5 | +{% block breadcrumbs %} | ||
6 | + | ||
7 | + <ol class="breadcrumb"> | ||
8 | + <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li> | ||
9 | + <li><a href="{% url 'course:view' course.slug %}">{{ course }}</a></li> | ||
10 | + <li class="active">{% trans 'Manage Subjects' %}</li> | ||
11 | + </ol> | ||
12 | +{% endblock %} | ||
13 | + | ||
14 | +{% block sidebar %} | ||
15 | + | ||
16 | + <div class="panel panel-primary"> | ||
17 | + | ||
18 | + <div class="panel-heading"> | ||
19 | + <h3 class="panel-title">{{course}}</h3> | ||
20 | + </div> | ||
21 | + | ||
22 | + <div class="panel-body"> | ||
23 | + {% for subject in subjects %} | ||
24 | + <a href="{% url 'course:view_subject' subject.slug%}" class="btn btn-default">{{subject}}</a> | ||
25 | + {% endfor %} | ||
26 | + </div> | ||
27 | + | ||
28 | + </div> | ||
29 | +{% endblock %} | ||
30 | + | ||
31 | +{% block content %} | ||
32 | + <div class="panel panel-info"> | ||
33 | + <div class="panel-heading"> | ||
34 | + <h3 class="panel-title">{% trans "Presentation Subject" %}</h3> | ||
35 | + </div> | ||
36 | + <div class="panel-body"> | ||
37 | + <p> | ||
38 | + {{subject.description}} | ||
39 | + </p> | ||
40 | + </div> | ||
41 | + </div> | ||
42 | +{% for topic in topics %} | ||
43 | + {% if user|has_role:'professor' or user|has_role:'system_admin'%} | ||
44 | + {% include "subject/form_view_teacher.html" %} | ||
45 | + {% else %} | ||
46 | + {% include "subject/form_view_student.html" %} | ||
47 | + {% endif %} | ||
48 | +{% endfor %} | ||
49 | + | ||
50 | +{% endblock %} | ||
51 | + | ||
52 | +{% block rightbar %} | ||
53 | + | ||
54 | + <div class="panel panel-warning"> | ||
55 | + <div class="panel-heading"> | ||
56 | + <h3 class="panel-title">Pending Stuffs</h3> | ||
57 | + </div> | ||
58 | + <div class="panel-body"> | ||
59 | + | ||
60 | + </div> | ||
61 | + </div> | ||
62 | +{% endblock rightbar %} |
courses/urls.py
@@ -14,8 +14,9 @@ urlpatterns = [ | @@ -14,8 +14,9 @@ urlpatterns = [ | ||
14 | url(r'^categories/edit/(?P<slug>[\w_-]+)/$', views.UpdateCatView.as_view(), name='update_cat'), | 14 | url(r'^categories/edit/(?P<slug>[\w_-]+)/$', views.UpdateCatView.as_view(), name='update_cat'), |
15 | url(r'^categories/(?P<slug>[\w_-]+)/$', views.ViewCat.as_view(), name='view_cat'), | 15 | url(r'^categories/(?P<slug>[\w_-]+)/$', views.ViewCat.as_view(), name='view_cat'), |
16 | url(r'^categories/delete/(?P<slug>[\w_-]+)/$', views.DeleteCatView.as_view(), name='delete_cat'), | 16 | url(r'^categories/delete/(?P<slug>[\w_-]+)/$', views.DeleteCatView.as_view(), name='delete_cat'), |
17 | - url(r'^course/(?P<slug>[\w_-]+)/modules/$', views.ModulesView.as_view(), name='manage_mods'), | ||
18 | - url(r'^course/(?P<slug>[\w_-]+)/modules/create/$', views.CreateModView.as_view(), name='create_mods'), | ||
19 | - url(r'^course/(?P<slug_course>[\w_-]+)/modules/edit/(?P<slug>[\w_-]+)/$', views.UpdateModView.as_view(), name='update_mods'), | ||
20 | - url(r'^course/(?P<slug_course>[\w_-]+)/modules/delete/(?P<slug>[\w_-]+)/$', views.DeleteModView.as_view(), name='delete_mods'), | 17 | + url(r'^course/(?P<slug>[\w_-]+)/subjects/$', views.SubjectsView.as_view(), name='view_subject'), |
18 | + # url(r'^course/(?P<slug>[\w_-]+)/modules/create/$', views.CreateModView.as_view(), name='create_mods'), | ||
19 | + # url(r'^course/(?P<slug_course>[\w_-]+)/modules/edit/(?P<slug>[\w_-]+)/$', views.UpdateModView.as_view(), name='update_mods'), | ||
20 | + # url(r'^course/(?P<slug_course>[\w_-]+)/modules/delete/(?P<slug>[\w_-]+)/$', views.DeleteModView.as_view(), name='delete_mods'), | ||
21 | + # url(r'^course/(?P<slug>[\w_-]+)/subject$', views.ViewSubject.as_view(), name='view_subject'), | ||
21 | ] | 22 | ] |
courses/views.py
@@ -9,8 +9,8 @@ from django.core.urlresolvers import reverse_lazy | @@ -9,8 +9,8 @@ from django.core.urlresolvers import reverse_lazy | ||
9 | from django.utils.translation import ugettext_lazy as _ | 9 | from django.utils.translation import ugettext_lazy as _ |
10 | from slugify import slugify | 10 | from slugify import slugify |
11 | 11 | ||
12 | -from .forms import CourseForm, CategoryForm, ModuleForm | ||
13 | -from .models import Course, Module, Category | 12 | +from .forms import CourseForm, CategoryForm, SubjectForm |
13 | +from .models import Course, Subject, Category | ||
14 | 14 | ||
15 | 15 | ||
16 | class IndexView(LoginRequiredMixin, generic.ListView): | 16 | class IndexView(LoginRequiredMixin, generic.ListView): |
@@ -186,108 +186,123 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): | @@ -186,108 +186,123 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): | ||
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 SubjectsView(LoginRequiredMixin, generic.ListView): |
190 | 190 | ||
191 | login_url = reverse_lazy("core:home") | 191 | login_url = reverse_lazy("core:home") |
192 | redirect_field_name = 'next' | 192 | redirect_field_name = 'next' |
193 | - template_name = 'module/index.html' | ||
194 | - context_object_name = 'modules' | ||
195 | - paginate_by = 1 | 193 | + template_name = 'subject/index.html' |
194 | + context_object_name = 'subjects' | ||
195 | + model = Subject | ||
196 | + # paginate_by = 5 | ||
196 | 197 | ||
197 | def get_queryset(self): | 198 | def get_queryset(self): |
198 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
199 | - return Module.objects.filter(course = course) | 199 | + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug')) |
200 | + course = subject.course | ||
201 | + return course.subjects.filter(visible=True) | ||
200 | 202 | ||
201 | def get_context_data(self, **kwargs): | 203 | def get_context_data(self, **kwargs): |
202 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
203 | - context = super(ModulesView, self).get_context_data(**kwargs) | ||
204 | - context['course'] = course | ||
205 | - | ||
206 | - return context | ||
207 | - | ||
208 | -class CreateModView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): | ||
209 | - | ||
210 | - allowed_roles = ['professor', 'system_admin'] | ||
211 | - login_url = reverse_lazy("core:home") | ||
212 | - redirect_field_name = 'next' | ||
213 | - template_name = 'module/create.html' | ||
214 | - form_class = ModuleForm | ||
215 | - | ||
216 | - def get_success_url(self): | ||
217 | - return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
218 | - | ||
219 | - def get_context_data(self, **kwargs): | ||
220 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
221 | - context = super(CreateModView, self).get_context_data(**kwargs) | ||
222 | - context['course'] = course | ||
223 | - | 204 | + # print ("Deu Certo") |
205 | + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug')) | ||
206 | + # print (course) | ||
207 | + # print (course.slug) | ||
208 | + # print (course.subjects.filter(visible=True)) | ||
209 | + context = super(SubjectsView, self).get_context_data(**kwargs) | ||
210 | + context['course'] = subject.course | ||
211 | + context['subject'] = subject | ||
212 | + context['topics'] = subject.topics.all() | ||
213 | + # print (context) | ||
224 | return context | 214 | return context |
225 | 215 | ||
226 | - def form_valid(self, form): | ||
227 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
228 | - | ||
229 | - self.object = form.save(commit = False) | ||
230 | - self.object.slug = slugify(self.object.name) | ||
231 | - self.object.course = course | ||
232 | - self.object.save() | ||
233 | - | ||
234 | - return super(CreateModView, self).form_valid(form) | ||
235 | - | ||
236 | - def render_to_response(self, context, **response_kwargs): | ||
237 | - messages.success(self.request, _('Module created successfully!')) | ||
238 | - | ||
239 | - return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | ||
240 | - | ||
241 | -class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): | ||
242 | - | ||
243 | - allowed_roles = ['professor', 'system_admin'] | ||
244 | - login_url = reverse_lazy("core:home") | ||
245 | - redirect_field_name = 'next' | ||
246 | - template_name = 'module/update.html' | ||
247 | - model = Module | ||
248 | - form_class = ModuleForm | ||
249 | - | ||
250 | - def get_success_url(self): | ||
251 | - return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
252 | - | ||
253 | - def get_context_data(self, **kwargs): | ||
254 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) | ||
255 | - context = super(UpdateModView, self).get_context_data(**kwargs) | ||
256 | - context['course'] = course | ||
257 | - | ||
258 | - return context | ||
259 | - | ||
260 | - def form_valid(self, form): | ||
261 | - self.object = form.save(commit = False) | ||
262 | - self.object.slug = slugify(self.object.name) | ||
263 | - self.object.save() | ||
264 | - | ||
265 | - return super(UpdateModView, self).form_valid(form) | ||
266 | - | ||
267 | - def render_to_response(self, context, **response_kwargs): | ||
268 | - messages.success(self.request, _('Module edited successfully!')) | ||
269 | - | ||
270 | - return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | ||
271 | - | ||
272 | -class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): | ||
273 | - | ||
274 | - allowed_roles = ['professor', 'system_admin'] | ||
275 | - login_url = reverse_lazy("core:home") | ||
276 | - redirect_field_name = 'next' | ||
277 | - model = Module | ||
278 | - template_name = 'module/delete.html' | ||
279 | - | ||
280 | - def get_success_url(self): | ||
281 | - return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
282 | - | ||
283 | - def get_context_data(self, **kwargs): | ||
284 | - course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) | ||
285 | - context = super(DeleteModView, self).get_context_data(**kwargs) | ||
286 | - context['course'] = course | ||
287 | - | ||
288 | - return context | ||
289 | - | ||
290 | - def render_to_response(self, context, **response_kwargs): | ||
291 | - messages.success(self.request, _('Module deleted successfully!')) | ||
292 | - | ||
293 | - return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | 216 | +# class CreateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): |
217 | +# | ||
218 | +# allowed_roles = ['professor', 'system_admin'] | ||
219 | +# login_url = reverse_lazy("core:home") | ||
220 | +# redirect_field_name = 'next' | ||
221 | +# template_name = 'module/create.html' | ||
222 | +# form_class = SubjectForm | ||
223 | +# | ||
224 | +# def get_success_url(self): | ||
225 | +# return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
226 | +# | ||
227 | +# def get_context_data(self, **kwargs): | ||
228 | +# course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
229 | +# context = super(CreateModView, self).get_context_data(**kwargs) | ||
230 | +# context['course'] = course | ||
231 | +# | ||
232 | +# return context | ||
233 | +# | ||
234 | +# def form_valid(self, form): | ||
235 | +# course = get_object_or_404(Course, slug = self.kwargs.get('slug')) | ||
236 | +# | ||
237 | +# self.object = form.save(commit = False) | ||
238 | +# self.object.slug = slugify(self.object.name) | ||
239 | +# self.object.course = course | ||
240 | +# self.object.save() | ||
241 | +# | ||
242 | +# return super(CreateModView, self).form_valid(form) | ||
243 | +# | ||
244 | +# def render_to_response(self, context, **response_kwargs): | ||
245 | +# messages.success(self.request, _('Module created successfully!')) | ||
246 | +# | ||
247 | +# return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | ||
248 | +# | ||
249 | +# class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): | ||
250 | +# | ||
251 | +# allowed_roles = ['professor', 'system_admin'] | ||
252 | +# login_url = reverse_lazy("core:home") | ||
253 | +# redirect_field_name = 'next' | ||
254 | +# template_name = 'module/update.html' | ||
255 | +# model = Module | ||
256 | +# form_class = ModuleForm | ||
257 | +# | ||
258 | +# def get_success_url(self): | ||
259 | +# return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
260 | +# | ||
261 | +# def get_context_data(self, **kwargs): | ||
262 | +# course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) | ||
263 | +# context = super(UpdateModView, self).get_context_data(**kwargs) | ||
264 | +# context['course'] = course | ||
265 | +# | ||
266 | +# return context | ||
267 | +# | ||
268 | +# def form_valid(self, form): | ||
269 | +# self.object = form.save(commit = False) | ||
270 | +# self.object.slug = slugify(self.object.name) | ||
271 | +# self.object.save() | ||
272 | +# | ||
273 | +# return super(UpdateModView, self).form_valid(form) | ||
274 | +# | ||
275 | +# def render_to_response(self, context, **response_kwargs): | ||
276 | +# messages.success(self.request, _('Module edited successfully!')) | ||
277 | +# | ||
278 | +# return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | ||
279 | +# | ||
280 | +# class DeleteModView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): | ||
281 | +# | ||
282 | +# allowed_roles = ['professor', 'system_admin'] | ||
283 | +# login_url = reverse_lazy("core:home") | ||
284 | +# redirect_field_name = 'next' | ||
285 | +# model = Module | ||
286 | +# template_name = 'module/delete.html' | ||
287 | +# | ||
288 | +# def get_success_url(self): | ||
289 | +# return reverse_lazy('course:manage_mods', kwargs={'slug' : self.object.course.slug}) | ||
290 | +# | ||
291 | +# def get_context_data(self, **kwargs): | ||
292 | +# course = get_object_or_404(Course, slug = self.kwargs.get('slug_course')) | ||
293 | +# context = super(DeleteModView, self).get_context_data(**kwargs) | ||
294 | +# context['course'] = course | ||
295 | +# | ||
296 | +# return context | ||
297 | +# | ||
298 | +# def render_to_response(self, context, **response_kwargs): | ||
299 | +# messages.success(self.request, _('Module deleted successfully!')) | ||
300 | +# | ||
301 | +# return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | ||
302 | + | ||
303 | +# class ViewSubject(LoginRequiredMixin, generic.DetailView): | ||
304 | +# login_url = reverse_lazy("core:home") | ||
305 | +# redirect_field_name = 'next' | ||
306 | +# model = Course | ||
307 | +# template_name = 'subject/index.html' | ||
308 | +# context_object_name = 'course' |