From c53a1c371747cd7a218d4ce2a085e95d45046aa6 Mon Sep 17 00:00:00 2001 From: Jailson Dias Date: Fri, 16 Sep 2016 00:08:38 -0300 Subject: [PATCH] Procedimento de criar curso #49 --- courses/forms.py | 29 +++++++++++++++++++++++++++++ courses/templates/course/create.html | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------- courses/urls.py | 2 +- courses/views.py | 18 +++++------------- 4 files changed, 86 insertions(+), 54 deletions(-) diff --git a/courses/forms.py b/courses/forms.py index e9955c7..ac4ce25 100644 --- a/courses/forms.py +++ b/courses/forms.py @@ -1,6 +1,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from .models import Category, Course, Subject, Topic +import datetime class CategoryForm(forms.ModelForm): @@ -16,6 +17,32 @@ class CategoryForm(forms.ModelForm): class CourseForm(forms.ModelForm): + def clean_end_register_date(self): + init_register_date = self.data['init_register_date'] + end_register_date = self.data['end_register_date'] + + if init_register_date and end_register_date and end_register_date < init_register_date: + raise forms.ValidationError(_('The end date may not be before the start date.')) + return end_register_date + + def clean_init_date(self): + # print(dir(self)) + print (self.data) + print (self.cleaned_data) + end_register_date = self.data['end_register_date'] + init_date = self.data['init_date'] + + if end_register_date and init_date and init_date <= end_register_date: + raise forms.ValidationError(_('The course start date must be after the end of registration.')) + return init_date + + def clean_end_date(self): + init_date = self.data['init_date'] + end_date = self.data['end_date'] + + if init_date and end_date and end_date < init_date: + raise forms.ValidationError(_('The end date may not be before the start date.')) + return end_date class Meta: model = Course @@ -47,6 +74,8 @@ class CourseForm(forms.ModelForm): } widgets = { 'categoy': forms.Select(), + 'objectivies': forms.Textarea(attrs={'cols': 80, 'rows': 5}), + 'content': forms.Textarea(attrs={'cols': 80, 'rows': 5}), } class SubjectForm(forms.ModelForm): diff --git a/courses/templates/course/create.html b/courses/templates/course/create.html index 5fe8aca..f34d319 100644 --- a/courses/templates/course/create.html +++ b/courses/templates/course/create.html @@ -1,4 +1,4 @@ -{% extends 'app/base.html' %} +{% extends 'course/view.html' %} {% load static i18n %} {% load widget_tweaks %} @@ -10,45 +10,56 @@ {% endblock %} -{% block sidebar %} -
- - {% trans 'Courses' %} - -
-{% endblock %} - {% block content %} - -
- {% csrf_token %} - {% for field in form %} -
- - {% render_field field class='form-control input-sm' %} - {{ field.help_text }} - {% if field.errors.length > 0 %} - -
- {% endif %} - - {% endfor %} - -
-
+
+
+
+
+ {% csrf_token %} + {% for field in form %} +
+ + {% if field.auto_id == 'id_init_register_date' or field.auto_id == 'id_end_register_date' or field.auto_id == 'id_init_date' or field.auto_id == 'id_end_date'%} + {% render_field field class='form-control' type='date' %} + {% elif field.auto_id == 'id_image' %} + {% render_field field class='form-control' %} +
+ + + + +
+ {% else %} + {% render_field field class='form-control' %} + {% endif %} + {{ field.help_text }} + {% if field.errors %} +
+
+ +
+ {% endif %} +
+ {% endfor %} +
+ +
+
+
+
+
+
+
{% endblock %} diff --git a/courses/urls.py b/courses/urls.py index 3b9f18d..cbc4812 100644 --- a/courses/urls.py +++ b/courses/urls.py @@ -4,7 +4,7 @@ from . import views urlpatterns = [ url(r'^$', views.IndexView.as_view(), name='manage'), - url(r'^create/$', views.CreateView.as_view(), name='create'), + url(r'^create/$', views.CreateCourseView.as_view(), name='create'), url(r'^edit/(?P[\w_-]+)/$', views.UpdateView.as_view(), name='update'), url(r'^(?P[\w_-]+)/$', views.CourseView.as_view(), name='view'), url(r'^delete/(?P[\w_-]+)/$', views.DeleteView.as_view(), name='delete'), diff --git a/courses/views.py b/courses/views.py index a79e497..4438ac1 100644 --- a/courses/views.py +++ b/courses/views.py @@ -32,7 +32,7 @@ class IndexView(LoginRequiredMixin, NotificationMixin, generic.ListView): return context -class CreateView(LoginRequiredMixin, HasRoleMixin, NotificationMixin,generic.edit.CreateView): +class CreateCourseView(LoginRequiredMixin, HasRoleMixin, NotificationMixin,generic.edit.CreateView): allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -41,17 +41,9 @@ class CreateView(LoginRequiredMixin, HasRoleMixin, NotificationMixin,generic.edi form_class = CourseForm success_url = reverse_lazy('course:manage') def form_valid(self, form): - self.object = form.save(commit = False) - self.object.slug = slugify(self.object.name) - print('Fooooiiii!!') - self.object.save() - - return super(CreateView, self).form_valid(form) - - def render_to_response(self, context, **response_kwargs): - messages.success(self.request, _('Course created successfully!')) - - return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) + self.object = form.save() + self.object.professors.add(self.request.user) + return super(CreateCourseView, self).form_valid(form) class UpdateView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -87,7 +79,7 @@ class CourseView(LoginRequiredMixin, NotificationMixin, generic.DetailView): context = super(CourseView, self).get_context_data(**kwargs) course = get_object_or_404(Course, slug = self.kwargs.get('slug')) if has_role(self.request.user,'system_admin'): - subjects = Subject.objects.all() + subjects = course.subjects.all() elif has_role(self.request.user,'professor'): subjects = course.subjects.filter(professors__in=[self.request.user]) elif has_role(self.request.user, 'student'): -- libgit2 0.21.2