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 @@ |
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 @@ |
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 @@ |
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 | 14 | url(r'^categories/edit/(?P<slug>[\w_-]+)/$', views.UpdateCatView.as_view(), name='update_cat'), |
15 | 15 | url(r'^categories/(?P<slug>[\w_-]+)/$', views.ViewCat.as_view(), name='view_cat'), |
16 | 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 | 9 | from django.utils.translation import ugettext_lazy as _ |
10 | 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 | 16 | class IndexView(LoginRequiredMixin, generic.ListView): |
... | ... | @@ -186,108 +186,123 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
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 | -class ModulesView(LoginRequiredMixin, generic.ListView): | |
189 | +class SubjectsView(LoginRequiredMixin, generic.ListView): | |
190 | 190 | |
191 | 191 | login_url = reverse_lazy("core:home") |
192 | 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 | 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 | 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 | 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' | ... | ... |