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 @@ @@ -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 @@ @@ -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 @@ @@ -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'