Commit 862dbc1299dd86ed24311cad4b5405c284825b1c

Authored by Jailson Dias
1 parent 0fd772dc

Template e procedimento de criar topic issues #28 e #35

courses/templates/module/create.html
@@ -1,80 +0,0 @@ @@ -1,80 +0,0 @@
1 -{% extends 'app/base.html' %}  
2 -  
3 -{% load static i18n %}  
4 -{% load widget_tweaks %}  
5 -  
6 -{% block breadcrumbs %}  
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 'Create Module' %}</li>  
11 - </ol>  
12 -{% endblock %}  
13 -  
14 -{% block sidebar %}  
15 - <div class="list-group">  
16 - <a href="{% url 'course:manage' %}" class="list-group-item">  
17 - {% trans 'Courses' %}  
18 - </a>  
19 - <a href="{% url 'course:create' %}" class="list-group-item">  
20 - {% trans 'Create Course' %}  
21 - </a>  
22 - <a href="{% url 'course:view' course.slug %}" class="list-group-item active">  
23 - {% trans 'Course Info' %}  
24 - </a>  
25 - <a href="{% url 'course:update' course.slug %}" class="list-group-item">  
26 - {% trans 'Edit Course' %}  
27 - </a>  
28 - <a href="{% url 'course:manage_mods' course.slug %}" class="list-group-item">  
29 - {% trans 'Manage Modules' %}  
30 - </a>  
31 - <a href="" class="list-group-item">  
32 - {% trans 'Participants' %}  
33 - </a>  
34 - <a href="" class="list-group-item">  
35 - {% trans 'Course avaliations' %}  
36 - </a>  
37 - <a href="" class="list-group-item">  
38 - {% trans 'Duplicate Course' %}  
39 - </a>  
40 - <a href="" class="list-group-item">  
41 - {% trans 'Delete Course' %}  
42 - </a>  
43 - </div>  
44 -  
45 -{% endblock %}  
46 -  
47 -{% block content %}  
48 - <div class="alert alert-info alert-dismissible" role="alert">  
49 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
50 - <span aria-hidden="true">&times;</span>  
51 - </button>  
52 - <p>{% trans 'All fields are required' %}</p>  
53 - </div>  
54 -  
55 - <form method="post" action="" enctype="multipart/form-data">  
56 - {% csrf_token %}  
57 - {% for field in form %}  
58 - <div class="form-group{% if form.has_error %} has-error {% endif %}">  
59 - <label for="{{ field.auto_id }}">{{ field.label }}</label>  
60 - {% render_field field class='form-control input-sm' %}  
61 - <span id="helpBlock" class="help-block">{{ field.help_text }}</span>  
62 - {% if field.errors.length > 0 %}  
63 - <div class="alert alert-danger alert-dismissible" role="alert">  
64 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
65 - <span aria-hidden="true">&times;</span>  
66 - </button>  
67 - <ul>  
68 - {% for error in field.errors %}  
69 - <li>{{ error }}</li>  
70 - {% endfor %}  
71 - </ul>  
72 - </div>  
73 - </div>  
74 - {% endif %}  
75 - </div>  
76 - {% endfor %}  
77 - <input type="submit" value="{% trans 'Save' %}" class="btn btn-sm btn-success" />  
78 - </form>  
79 - <br clear="all" />  
80 -{% endblock %}  
courses/templates/module/delete.html
@@ -1,53 +0,0 @@ @@ -1,53 +0,0 @@
1 -{% extends 'app/base.html' %}  
2 -  
3 -{% load static i18n %}  
4 -  
5 -{% block breadcrumbs %}  
6 - <ol class="breadcrumb">  
7 - <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li>  
8 - <li><a href="{% url 'course:view' course.slug %}">{{ course }}</a></li>  
9 - <li class="active">{% trans 'Manage Modules' %}</li>  
10 - </ol>  
11 -{% endblock %}  
12 -  
13 -{% block sidebar %}  
14 - <div class="list-group">  
15 - <a href="{% url 'course:manage' %}" class="list-group-item">  
16 - {% trans 'Courses' %}  
17 - </a>  
18 - <a href="{% url 'course:create' %}" class="list-group-item">  
19 - {% trans 'Create Course' %}  
20 - </a>  
21 - <a href="{% url 'course:view' course.slug %}" class="list-group-item active">  
22 - {% trans 'Course Info' %}  
23 - </a>  
24 - <a href="{% url 'course:update' course.slug %}" class="list-group-item">  
25 - {% trans 'Edit Course' %}  
26 - </a>  
27 - <a href="{% url 'course:manage_mods' course.slug %}" class="list-group-item">  
28 - {% trans 'Manage Modules' %}  
29 - </a>  
30 - <a href="" class="list-group-item">  
31 - {% trans 'Participants' %}  
32 - </a>  
33 - <a href="" class="list-group-item">  
34 - {% trans 'Course avaliations' %}  
35 - </a>  
36 - <a href="" class="list-group-item">  
37 - {% trans 'Duplicate Course' %}  
38 - </a>  
39 - <a href="" class="list-group-item">  
40 - {% trans 'Delete Course' %}  
41 - </a>  
42 - </div>  
43 -  
44 -{% endblock %}  
45 -  
46 -{% block content %}  
47 - <form action="" method="post">  
48 - {% csrf_token %}  
49 - <p>{% trans 'Are you sure you want to delete the module' %} "{{ object }}"?</p>  
50 - <input type="submit" class="btn btn-success btn-sm" value="{% trans 'Yes' %}" />  
51 - <a href="{% url 'course:manage' %}" class="btn btn-danger btn-sm">{% trans 'No' %}</a>  
52 - </form>  
53 -{% endblock %}  
courses/templates/module/index.html
@@ -1,128 +0,0 @@ @@ -1,128 +0,0 @@
1 -{% extends 'app/base.html' %}  
2 -  
3 -{% load static i18n permission_tags %}  
4 -  
5 -{% block breadcrumbs %}  
6 - <ol class="breadcrumb">  
7 - <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li>  
8 - <li><a href="{% url 'course:view' course.slug %}">{{ course }}</a></li>  
9 - <li class="active">{% trans 'Manage Modules' %}</li>  
10 - </ol>  
11 -{% endblock %}  
12 -  
13 -{% block sidebar %}  
14 - <div class="list-group">  
15 - <a href="{% url 'course:manage' %}" class="list-group-item">  
16 - {% trans 'Courses' %}  
17 - </a>  
18 - <a href="{% url 'course:view' course.slug %}" class="list-group-item active">  
19 - {% trans 'Course Info' %}  
20 - </a>  
21 - <a href="{% url 'course:manage_mods' course.slug %}" class="list-group-item">  
22 - {% trans 'Manage Modules' %}  
23 - </a>  
24 - {% if user|has_role:'professor, system_admin' %}  
25 - <a href="{% url 'course:create' %}" class="list-group-item">  
26 - {% trans 'Create Course' %}  
27 - </a>  
28 - <a href="{% url 'course:update' course.slug %}" class="list-group-item">  
29 - {% trans 'Edit Course' %}  
30 - </a>  
31 - <a href="" class="list-group-item">  
32 - {% trans 'Participants' %}  
33 - </a>  
34 - <a href="" class="list-group-item">  
35 - {% trans 'Course avaliations' %}  
36 - </a>  
37 - <a href="" class="list-group-item">  
38 - {% trans 'Duplicate Course' %}  
39 - </a>  
40 - <a href="" class="list-group-item">  
41 - {% trans 'Delete Course' %}  
42 - </a>  
43 - {% endif %}  
44 - </div>  
45 -  
46 -{% endblock %}  
47 -  
48 -{% block content %}  
49 - {% if messages %}  
50 - {% for message in messages %}  
51 - <div class="alert alert-success alert-dismissible" role="alert">  
52 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
53 - <span aria-hidden="true">&times;</span>  
54 - </button>  
55 - <p>{{ message }}</p>  
56 - </div>  
57 - {% endfor %}  
58 - {% endif %}  
59 -  
60 - <div class="row well well-inverse">  
61 - <div class="col-md-2">  
62 - <img src="{{ course.image.url }}" class="img-responsive" />  
63 - </div>  
64 - <div class="col-md-10">  
65 - <div class="row">  
66 - <div class="col-md-12">  
67 - {% if user|has_role:'professor, system_admin' %}  
68 - <div class="pull-right">  
69 - <a href="{% url 'course:create_mods' course.slug %}" class="btn btn-sm btn-success">  
70 - {% trans 'Create Module' %}  
71 - </a>  
72 - </div>  
73 - {% endif %}  
74 - <h4>  
75 - <a href="{% url 'course:view' course.slug %}">  
76 - {{ course }}  
77 - </a>  
78 - </h4>  
79 - <span class="label label-info">{{ course.category }}</span>  
80 - <span class="label label-warning">{{ course.max_students }} {% trans 'students maximum' %}</span>  
81 - </div>  
82 - <div class="col-md-12">  
83 - <strong>{% trans 'Period:' %} </strong> <em>de</em> <u>{{ course.init_date }}</u> <em>até</em> <u>{{ course.end_date }}</u>  
84 - </div>  
85 - </div>  
86 - </div>  
87 - </div>  
88 -  
89 - {% if modules|length > 0 %}  
90 - <div class="panel panel-default">  
91 - <div class="panel-heading">  
92 - <h3 class="panel-title">{% trans 'Modules' %}</h3>  
93 - </div>  
94 - <div class="panel-body">  
95 - <ul class="list-group">  
96 - {% for module in modules %}  
97 - <li class="list-group-item">  
98 - <div class="media">  
99 - <div class="col-sm-10">  
100 - <div class="media-body">  
101 - <h4 class="media-heading">{{ module }}</h4>  
102 - <p>{{ module.description|linebreaks }}</p>  
103 - </div>  
104 - </div>  
105 - <div class="col-sm-2" style="padding-top: 10px">  
106 - {% if module.visible %}  
107 - <span class="label label-success">{% trans 'Visible' %}</span>  
108 - {% else %}  
109 - <span class="label label-danger">{% trans 'Invisible' %}</span>  
110 - {% endif %}  
111 - <a href="{% url 'course:update_mods' course.slug module.slug %}" class="btn btn-sm btn-primary" style="margin-top: 10px">  
112 - <span class="glyphicon glyphicon-edit"></span>  
113 - </a>  
114 - <a href="{% url 'course:delete_mods' course.slug module.slug %}" class="btn btn-sm btn-danger" style="margin-top: 10px">  
115 - <span class="glyphicon glyphicon-trash"></span>  
116 - </a>  
117 - </div>  
118 - </div>  
119 - </li>  
120 - {% endfor %}  
121 - </ul>  
122 - </div>  
123 - </div>  
124 - {% else %}  
125 - {% trans 'No modules found' %}  
126 - {% endif %}  
127 -  
128 -{% endblock %}  
courses/templates/module/update.html
@@ -1,80 +0,0 @@ @@ -1,80 +0,0 @@
1 -{% extends 'app/base.html' %}  
2 -  
3 -{% load static i18n %}  
4 -{% load widget_tweaks %}  
5 -  
6 -{% block breadcrumbs %}  
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 'Edit Module' %}</li>  
11 - </ol>  
12 -{% endblock %}  
13 -  
14 -{% block sidebar %}  
15 - <div class="list-group">  
16 - <a href="{% url 'course:manage' %}" class="list-group-item">  
17 - {% trans 'Courses' %}  
18 - </a>  
19 - <a href="{% url 'course:create' %}" class="list-group-item">  
20 - {% trans 'Create Course' %}  
21 - </a>  
22 - <a href="{% url 'course:view' course.slug %}" class="list-group-item active">  
23 - {% trans 'Course Info' %}  
24 - </a>  
25 - <a href="{% url 'course:update' course.slug %}" class="list-group-item">  
26 - {% trans 'Edit Course' %}  
27 - </a>  
28 - <a href="{% url 'course:manage_mods' course.slug %}" class="list-group-item">  
29 - {% trans 'Manage Modules' %}  
30 - </a>  
31 - <a href="" class="list-group-item">  
32 - {% trans 'Participants' %}  
33 - </a>  
34 - <a href="" class="list-group-item">  
35 - {% trans 'Course avaliations' %}  
36 - </a>  
37 - <a href="" class="list-group-item">  
38 - {% trans 'Duplicate Course' %}  
39 - </a>  
40 - <a href="" class="list-group-item">  
41 - {% trans 'Delete Course' %}  
42 - </a>  
43 - </div>  
44 -  
45 -{% endblock %}  
46 -  
47 -{% block content %}  
48 - <div class="alert alert-info alert-dismissible" role="alert">  
49 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
50 - <span aria-hidden="true">&times;</span>  
51 - </button>  
52 - <p>{% trans 'All fields are required' %}</p>  
53 - </div>  
54 -  
55 - <form method="post" action="" enctype="multipart/form-data">  
56 - {% csrf_token %}  
57 - {% for field in form %}  
58 - <div class="form-group{% if form.has_error %} has-error {% endif %}">  
59 - <label for="{{ field.auto_id }}">{{ field.label }}</label>  
60 - {% render_field field class='form-control input-sm' %}  
61 - <span id="helpBlock" class="help-block">{{ field.help_text }}</span>  
62 - {% if field.errors.length > 0 %}  
63 - <div class="alert alert-danger alert-dismissible" role="alert">  
64 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
65 - <span aria-hidden="true">&times;</span>  
66 - </button>  
67 - <ul>  
68 - {% for error in field.errors %}  
69 - <li>{{ error }}</li>  
70 - {% endfor %}  
71 - </ul>  
72 - </div>  
73 - </div>  
74 - {% endif %}  
75 - </div>  
76 - {% endfor %}  
77 - <input type="submit" value="{% trans 'Save' %}" class="btn btn-sm btn-success" />  
78 - </form>  
79 - <br clear="all" />  
80 -{% endblock %}  
courses/templates/subject/form_view_student.html
@@ -9,6 +9,6 @@ @@ -9,6 +9,6 @@
9 </div> 9 </div>
10 </div> 10 </div>
11 <div class="panel-body"> 11 <div class="panel-body">
12 - <p>{{topic.description}}</p> 12 + <p>{{topic.description|linebreaks}}</p>
13 </div> 13 </div>
14 </div> 14 </div>
courses/templates/subject/form_view_teacher.html
@@ -12,6 +12,6 @@ @@ -12,6 +12,6 @@
12 </div> 12 </div>
13 </div> 13 </div>
14 <div class="panel-body"> 14 <div class="panel-body">
15 - <p>{{topic.description}}</p> 15 + <p>{{topic.description|linebreaks}}</p>
16 </div> 16 </div>
17 </div> 17 </div>
courses/templates/subject/index.html
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 </div> 35 </div>
36 <div class="panel-body"> 36 <div class="panel-body">
37 <p> 37 <p>
38 - {{subject.description}} 38 + {{subject.description|linebreaks}}
39 </p> 39 </p>
40 </div> 40 </div>
41 </div> 41 </div>
@@ -47,13 +47,14 @@ @@ -47,13 +47,14 @@
47 {% endif %} 47 {% endif %}
48 {% endfor %} 48 {% endfor %}
49 49
  50 + <a name="create_topic" class="btn btn-primary btn-md btn-block" href="{% url 'course:create_topic' subject.slug %}">{% trans "Create Topic" %}</a>
50 {% endblock %} 51 {% endblock %}
51 52
52 {% block rightbar %} 53 {% block rightbar %}
53 54
54 <div class="panel panel-warning"> 55 <div class="panel panel-warning">
55 <div class="panel-heading"> 56 <div class="panel-heading">
56 - <h3 class="panel-title">Pending Stuffs</h3> 57 + <h3 class="panel-title">{% trans "Pending Stuffs" %}</h3>
57 </div> 58 </div>
58 <div class="panel-body"> 59 <div class="panel-body">
59 60
courses/templates/topic/create.html 0 → 100644
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
  1 +{% extends 'subject/index.html' %}
  2 +
  3 +{% load static i18n permission_tags widget_tweaks %}
  4 +
  5 +{% block content %}
  6 +
  7 + <div class="panel panel-default">
  8 + <div class="panel-body">
  9 + <form class="form-group " method="post" action="">
  10 + {% csrf_token %}
  11 + {% for field in form %}
  12 + <div class="form-group {% if field.errors %} has-error{% endif %}">
  13 + <label for="{{ field.auto_id }}" class="control-label label-static"> {{ field.label }}</label>
  14 +
  15 + {% render_field field class='form-control' placeholder=field.label%}
  16 + </div>
  17 + {% endfor %}
  18 + <div class="col-lg-offset-4 col-lg-4">
  19 + <button type="submite" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Create' %}</button>
  20 +
  21 + </div>
  22 + </form>
  23 + </div>
  24 + </div>
  25 +{% endblock content %}
courses/urls.py
@@ -15,6 +15,7 @@ urlpatterns = [ @@ -15,6 +15,7 @@ urlpatterns = [
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_-]+)/subjects/$', views.SubjectsView.as_view(), name='view_subject'), 17 url(r'^course/(?P<slug>[\w_-]+)/subjects/$', views.SubjectsView.as_view(), name='view_subject'),
  18 + url(r'^course/(?P<slug>[\w_-]+)/topics/create/$', views.CreateTopicView.as_view(), name='create_topic'),
18 # url(r'^course/(?P<slug>[\w_-]+)/modules/create/$', views.CreateModView.as_view(), name='create_mods'), 19 # 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/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_course>[\w_-]+)/modules/delete/(?P<slug>[\w_-]+)/$', views.DeleteModView.as_view(), name='delete_mods'),
courses/views.py
@@ -9,7 +9,7 @@ from django.core.urlresolvers import reverse_lazy @@ -9,7 +9,7 @@ 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, SubjectForm 12 +from .forms import CourseForm, CategoryForm, SubjectForm,TopicForm
13 from .models import Course, Subject, Category 13 from .models import Course, Subject, Category
14 14
15 15
@@ -193,7 +193,6 @@ class SubjectsView(LoginRequiredMixin, generic.ListView): @@ -193,7 +193,6 @@ class SubjectsView(LoginRequiredMixin, generic.ListView):
193 template_name = 'subject/index.html' 193 template_name = 'subject/index.html'
194 context_object_name = 'subjects' 194 context_object_name = 'subjects'
195 model = Subject 195 model = Subject
196 - # paginate_by = 5  
197 196
198 def get_queryset(self): 197 def get_queryset(self):
199 subject = get_object_or_404(Subject, slug = self.kwargs.get('slug')) 198 subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
@@ -201,50 +200,50 @@ class SubjectsView(LoginRequiredMixin, generic.ListView): @@ -201,50 +200,50 @@ class SubjectsView(LoginRequiredMixin, generic.ListView):
201 return course.subjects.filter(visible=True) 200 return course.subjects.filter(visible=True)
202 201
203 def get_context_data(self, **kwargs): 202 def get_context_data(self, **kwargs):
204 - # print ("Deu Certo")  
205 subject = get_object_or_404(Subject, slug = self.kwargs.get('slug')) 203 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) 204 context = super(SubjectsView, self).get_context_data(**kwargs)
210 context['course'] = subject.course 205 context['course'] = subject.course
211 context['subject'] = subject 206 context['subject'] = subject
212 context['topics'] = subject.topics.all() 207 context['topics'] = subject.topics.all()
213 - # print (context)  
214 return context 208 return context
215 209
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) 210 +class CreateTopicView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
  211 +
  212 + allowed_roles = ['professor', 'system_admin','student']
  213 + login_url = reverse_lazy("core:home")
  214 + redirect_field_name = 'next'
  215 + template_name = 'topic/create.html'
  216 + form_class = TopicForm
  217 +
  218 + def get_success_url(self):
  219 + return reverse_lazy('course:view_subject', kwargs={'slug' : self.object.subject.slug})
  220 +
  221 + def get_context_data(self, **kwargs):
  222 + context = super(CreateTopicView, self).get_context_data(**kwargs)
  223 + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
  224 + context['course'] = subject.course
  225 + context['subject'] = subject
  226 + context['subjects'] = subject.course.subjects.filter(visible=True)
  227 +
  228 + return context
  229 +
  230 + def form_valid(self, form):
  231 + print ("aqui")
  232 + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
  233 +
  234 + print ("aqui")
  235 + self.object = form.save(commit = False)
  236 + self.object.subject = subject
  237 + print ("aqui")
  238 + print (self.object)
  239 + self.object.save()
  240 +
  241 + return super(CreateTopicView, self).form_valid(form)
  242 +
  243 + def render_to_response(self, context, **response_kwargs):
  244 + messages.success(self.request, _('Module created successfully!'))
  245 +
  246 + return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine)
248 # 247 #
249 # class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 248 # class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
250 # 249 #