Commit 0fd772dcb8308bb190525c746c341e3a07ede4e0

Authored by Jailson Dias
1 parent ff839086

templates para visualização das views de subjects e topics issues #27 e #28

courses/templates/subject/form_view_student.html 0 → 100644
... ... @@ -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>
... ...
courses/templates/subject/form_view_teacher.html 0 → 100644
... ... @@ -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>
... ...
courses/templates/subject/index.html 0 → 100644
... ... @@ -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'
... ...