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   -{% 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   -{% 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   -{% 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   -{% 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 9 </div>
10 10 </div>
11 11 <div class="panel-body">
12   - <p>{{topic.description}}</p>
  12 + <p>{{topic.description|linebreaks}}</p>
13 13 </div>
14 14 </div>
... ...
courses/templates/subject/form_view_teacher.html
... ... @@ -12,6 +12,6 @@
12 12 </div>
13 13 </div>
14 14 <div class="panel-body">
15   - <p>{{topic.description}}</p>
  15 + <p>{{topic.description|linebreaks}}</p>
16 16 </div>
17 17 </div>
... ...
courses/templates/subject/index.html
... ... @@ -35,7 +35,7 @@
35 35 </div>
36 36 <div class="panel-body">
37 37 <p>
38   - {{subject.description}}
  38 + {{subject.description|linebreaks}}
39 39 </p>
40 40 </div>
41 41 </div>
... ... @@ -47,13 +47,14 @@
47 47 {% endif %}
48 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 51 {% endblock %}
51 52  
52 53 {% block rightbar %}
53 54  
54 55 <div class="panel panel-warning">
55 56 <div class="panel-heading">
56   - <h3 class="panel-title">Pending Stuffs</h3>
  57 + <h3 class="panel-title">{% trans "Pending Stuffs" %}</h3>
57 58 </div>
58 59 <div class="panel-body">
59 60  
... ...
courses/templates/topic/create.html 0 → 100644
... ... @@ -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 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 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 19 # url(r'^course/(?P<slug>[\w_-]+)/modules/create/$', views.CreateModView.as_view(), name='create_mods'),
19 20 # url(r'^course/(?P<slug_course>[\w_-]+)/modules/edit/(?P<slug>[\w_-]+)/$', views.UpdateModView.as_view(), name='update_mods'),
20 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 9 from django.utils.translation import ugettext_lazy as _
10 10 from slugify import slugify
11 11  
12   -from .forms import CourseForm, CategoryForm, SubjectForm
  12 +from .forms import CourseForm, CategoryForm, SubjectForm,TopicForm
13 13 from .models import Course, Subject, Category
14 14  
15 15  
... ... @@ -193,7 +193,6 @@ class SubjectsView(LoginRequiredMixin, generic.ListView):
193 193 template_name = 'subject/index.html'
194 194 context_object_name = 'subjects'
195 195 model = Subject
196   - # paginate_by = 5
197 196  
198 197 def get_queryset(self):
199 198 subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
... ... @@ -201,50 +200,50 @@ class SubjectsView(LoginRequiredMixin, generic.ListView):
201 200 return course.subjects.filter(visible=True)
202 201  
203 202 def get_context_data(self, **kwargs):
204   - # print ("Deu Certo")
205 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 204 context = super(SubjectsView, self).get_context_data(**kwargs)
210 205 context['course'] = subject.course
211 206 context['subject'] = subject
212 207 context['topics'] = subject.topics.all()
213   - # print (context)
214 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 248 # class UpdateModView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
250 249 #
... ...