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 %}
-
-{% endblock %}
-
{% block content %}
-
-
-
{% trans 'All fields are required' %}
-
-
-
+
+
+
+
+
{% 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