Commit e2727664800acb476884f698a5272c0da1f3fd3b

Authored by Gustavo Bernardo
2 parents 8e6837b7 31ac7340

Merge branch 'dev' of https://github.com/amadeusproject/amadeuslms into dev

courses/templates/category/create.html
@@ -37,6 +37,18 @@ @@ -37,6 +37,18 @@
37 </ul> 37 </ul>
38 </div> 38 </div>
39 </div> 39 </div>
  40 +
  41 + <div class="panel panel-primary navigation">
  42 + <div class="panel-heading">
  43 + <h3 class="panel-title">Category</h3>
  44 + </div>
  45 + <div class="panel-body">
  46 + <ul class="nav nav-pills nav-stacked">
  47 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  48 + <li><a href="{% url 'course:manage_cat' %}">List Category</a></li>
  49 + </ul>
  50 + </div>
  51 + </div>
40 {% endif %} 52 {% endif %}
41 53
42 {% endblock %} 54 {% endblock %}
courses/templates/category/index.html
1 {% extends 'app/base.html' %} 1 {% extends 'app/base.html' %}
2 2
3 {% load static i18n %} 3 {% load static i18n %}
  4 +{% load static i18n permission_tags %}
  5 +{% load widget_tweaks %}
4 6
5 {% block breadcrumbs %} 7 {% block breadcrumbs %}
6 <ol class="breadcrumb"> 8 <ol class="breadcrumb">
@@ -10,14 +12,45 @@ @@ -10,14 +12,45 @@
10 {% endblock %} 12 {% endblock %}
11 13
12 {% block sidebar %} 14 {% block sidebar %}
13 - <div class="list-group">  
14 - <a href="{% url 'course:manage_cat' %}" class="list-group-item active">  
15 - {% trans 'Categories' %}  
16 - </a>  
17 - <a href="{% url 'course:create_cat' %}" class="list-group-item">  
18 - {% trans 'Create Category' %}  
19 - </a> 15 + <div class="panel panel-primary navigation">
  16 + <div class="panel-heading">
  17 + <h5>{% trans 'Menu' %}</h5>
  18 + </div>
  19 + <div class="panel-body">
  20 + <ul class="nav nav-pills nav-stacked">
  21 + <li><a href="{% url 'users:profile' %}">{% trans 'Profile' %}</a></li>
  22 + <li><a href="{% url 'course:manage' %}">{% trans 'My Courses' %}</a></li>
  23 + </ul>
  24 + </div>
  25 + </div>
  26 +
  27 + {% if user|has_role:'professor, system_admin' %}
  28 +
  29 + <div class="panel panel-primary navigation">
  30 + <div class="panel-heading">
  31 + <h3 class="panel-title">Actions</h3>
  32 + </div>
  33 + <div class="panel-body">
  34 + <ul class="nav nav-pills nav-stacked">
  35 + <li><a href="javascript:void(0)">Replicate Course</a></li>
  36 + <li><a href="{% url 'course:create' %}">Create Course</a></li>
  37 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  38 + </ul>
  39 + </div>
  40 + </div>
  41 +
  42 + <div class="panel panel-primary navigation">
  43 + <div class="panel-heading">
  44 + <h3 class="panel-title">Category</h3>
  45 + </div>
  46 + <div class="panel-body">
  47 + <ul class="nav nav-pills nav-stacked">
  48 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  49 + <li><a href="{% url 'course:manage_cat' %}">List Category</a></li>
  50 + </ul>
  51 + </div>
20 </div> 52 </div>
  53 +{% endif %}
21 {% endblock %} 54 {% endblock %}
22 55
23 {% block content %} 56 {% block content %}
courses/templates/category/update.html
1 {% extends 'app/base.html' %} 1 {% extends 'app/base.html' %}
2 2
3 {% load static i18n %} 3 {% load static i18n %}
  4 +{% load static i18n permission_tags %}
4 {% load widget_tweaks %} 5 {% load widget_tweaks %}
5 6
6 {% block breadcrumbs %} 7 {% block breadcrumbs %}
@@ -11,43 +12,84 @@ @@ -11,43 +12,84 @@
11 {% endblock %} 12 {% endblock %}
12 13
13 {% block sidebar %} 14 {% block sidebar %}
14 - <div class="list-group">  
15 - <a href="{% url 'course:manage_cat' %}" class="list-group-item">  
16 - {% trans 'Categories' %}  
17 - </a> 15 + <div class="panel panel-primary navigation">
  16 + <div class="panel-heading">
  17 + <h5>{% trans 'Menu' %}</h5>
  18 + </div>
  19 + <div class="panel-body">
  20 + <ul class="nav nav-pills nav-stacked">
  21 + <li><a href="{% url 'users:profile' %}">{% trans 'Profile' %}</a></li>
  22 + <li><a href="{% url 'course:manage' %}">{% trans 'My Courses' %}</a></li>
  23 + </ul>
  24 + </div>
  25 + </div>
  26 +
  27 +{% if user|has_role:'professor, system_admin' %}
  28 +
  29 + <div class="panel panel-primary navigation">
  30 + <div class="panel-heading">
  31 + <h3 class="panel-title">Actions</h3>
  32 + </div>
  33 + <div class="panel-body">
  34 + <ul class="nav nav-pills nav-stacked">
  35 + <li><a href="javascript:void(0)">Replicate Course</a></li>
  36 + <li><a href="{% url 'course:create' %}">Create Course</a></li>
  37 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  38 + </ul>
  39 + </div>
  40 + </div>
  41 + <div class="panel panel-primary navigation">
  42 + <div class="panel-heading">
  43 + <h3 class="panel-title">Category</h3>
  44 + </div>
  45 + <div class="panel-body">
  46 + <ul class="nav nav-pills nav-stacked">
  47 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  48 + <li><a href="{% url 'course:manage_cat' %}">List Category</a></li>
  49 + </ul>
  50 + </div>
18 </div> 51 </div>
  52 +{% endif %}
19 {% endblock %} 53 {% endblock %}
20 54
21 {% block content %} 55 {% block content %}
22 - <div class="alert alert-info alert-dismissible" role="alert">  
23 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
24 - <span aria-hidden="true">&times;</span>  
25 - </button>  
26 - <p>{% trans 'All fields are required' %}</p>  
27 - </div>  
28 -  
29 - <form method="post" action="">  
30 - {% csrf_token %}  
31 - {% for field in form %}  
32 - <div class="form-group {% if form.has_error %}has-error{% endif %}">  
33 - <label for="{{ field.auto_id }}">{{ field.label }}</label>  
34 - {% render_field field class='form-control input-sm' %} 56 + {% if messages %}
  57 + {% for message in messages %}
  58 + <div class="alert alert-success alert-dismissible" role="alert">
  59 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  60 + <span aria-hidden="true">&times;</span>
  61 + </button>
  62 + <p>{{ message }}</p>
35 </div> 63 </div>
36 - <span id="helpBlock" class="help-block">{{ field.help_text }}</span>  
37 - {% if field.errors.length > 0 %}  
38 - <div class="alert alert-danger alert-dismissible" role="alert">  
39 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
40 - <span aria-hidden="true">&times;</span>  
41 - </button>  
42 - <ul>  
43 - {% for error in field.errors %}  
44 - <li>{{ error }}</li>  
45 - {% endfor %}  
46 - </ul>  
47 - </div>  
48 - </div>  
49 - {% endif %}  
50 {% endfor %} 64 {% endfor %}
51 - <input type="submit" value="{% trans 'Save' %}" class="btn btn-sm btn-success" />  
52 - </form> 65 + {% endif %}
  66 + <div class="card card-content">
  67 + <div class="card-body">
  68 + <form method="post" action="">
  69 + {% csrf_token %}
  70 + {% for field in form %}
  71 + <div class="form-group {% if form.has_error %}has-error{% endif %}">
  72 + <label for="{{ field.auto_id }}">{{ field.label }}</label>
  73 + {% render_field field class='form-control input-sm' %}
  74 + </div>
  75 + {% if field.errors.length > 0 %}
  76 + <div class="alert alert-danger alert-dismissible" role="alert">
  77 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  78 + <span aria-hidden="true">&times;</span>
  79 + </button>
  80 + <ul>
  81 + {% for error in field.errors %}
  82 + <li>{{ error }}</li>
  83 + {% endfor %}
  84 + </ul>
  85 + </div>
  86 + </div>
  87 + {% endif %}
  88 + {% endfor %}
  89 + <div class="row text-center">
  90 + <input type="submit" value="{% trans 'Save' %}" class="btn btn-sm btn-success" />
  91 + </div>
  92 + </form>
  93 + </div>
  94 + </div>
53 {% endblock %} 95 {% endblock %}
courses/templates/category/view.html
1 {% extends 'app/base.html' %} 1 {% extends 'app/base.html' %}
2 2
  3 +{% load static i18n permission_tags %}
  4 +{% load widget_tweaks %}
3 {% load static i18n %} 5 {% load static i18n %}
4 6
  7 +
5 {% block breadcrumbs %} 8 {% block breadcrumbs %}
6 <ol class="breadcrumb"> 9 <ol class="breadcrumb">
7 <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li> 10 <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li>
@@ -10,27 +13,57 @@ @@ -10,27 +13,57 @@
10 {% endblock %} 13 {% endblock %}
11 14
12 {% block sidebar %} 15 {% block sidebar %}
13 - <div class="list-group">  
14 - <a href="{% url 'course:manage_cat' %}" class="list-group-item">  
15 - {% trans 'Categories' %}  
16 - </a>  
17 - <a href="{% url 'course:create_cat' %}" class="list-group-item">  
18 - {% trans 'Create Category' %}  
19 - </a>  
20 - <a href="" class="list-group-item">  
21 - {% trans 'Edit Category' %}  
22 - </a>  
23 - <a href="" class="list-group-item">  
24 - {% trans 'Remove Category' %}  
25 - </a>  
26 - </div> 16 + <div class="panel panel-primary navigation">
  17 + <div class="panel-heading">
  18 + <h5>{% trans 'Menu' %}</h5>
  19 + </div>
  20 + <div class="panel-body">
  21 + <ul class="nav nav-pills nav-stacked">
  22 + <li><a href="{% url 'users:profile' %}">{% trans 'Profile' %}</a></li>
  23 + <li><a href="{% url 'course:manage' %}">{% trans 'My Courses' %}</a></li>
  24 + </ul>
  25 + </div>
  26 + </div>
  27 + {% if user|has_role:'professor, system_admin' %}
  28 +
  29 + <div class="panel panel-primary navigation">
  30 + <div class="panel-heading">
  31 + <h3 class="panel-title">Actions</h3>
  32 + </div>
  33 + <div class="panel-body">
  34 + <ul class="nav nav-pills nav-stacked">
  35 + <li><a href="javascript:void(0)">Replicate Course</a></li>
  36 + <li><a href="{% url 'course:create' %}">Create Course</a></li>
  37 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  38 + </ul>
  39 + </div>
  40 + </div>
  41 +
  42 + <div class="panel panel-primary navigation">
  43 + <div class="panel-heading">
  44 + <h3 class="panel-title">Category</h3>
  45 + </div>
  46 + <div class="panel-body">
  47 + <ul class="nav nav-pills nav-stacked">
  48 + <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  49 + <li><a href="{% url 'course:manage_cat' %}">List Category</a></li>
  50 + <li><a href="{% url 'course:delete_cat' category.slug %}">Remove Category</a></li>
  51 + <li><a href="{% url 'course:update_cat' category.slug %}">Update Category</a></li>
  52 + </ul>
  53 + </div>
  54 + </div>
  55 + {% endif %}
27 {% endblock %} 56 {% endblock %}
28 57
29 {% block content %} 58 {% block content %}
30 - <div class="row">  
31 - <div class="col-sm-12">  
32 - <p><b>{% trans 'Name:' %} </b> {{ category }}</p>  
33 - <p><b>{% trans 'Slug:' %} </b> {{ category.slug }}</p> 59 + <div class="card card-content">
  60 + <div class="card-body">
  61 + <div class="row">
  62 + <div class="col-sm-12">
  63 + <p><b>{% trans 'Name:' %} </b> {{ category }}</p>
  64 + <p><b>{% trans 'Slug:' %} </b> {{ category.slug }}</p>
  65 + </div>
  66 + </div>
34 </div> 67 </div>
35 </div> 68 </div>
36 {% endblock %} 69 {% endblock %}
courses/templates/course/index.html
@@ -33,7 +33,18 @@ @@ -33,7 +33,18 @@
33 <ul class="nav nav-pills nav-stacked"> 33 <ul class="nav nav-pills nav-stacked">
34 <li><a href="javascript:void(0)">Replicate Course</a></li> 34 <li><a href="javascript:void(0)">Replicate Course</a></li>
35 <li><a href="{% url 'course:create' %}">Create Course</a></li> 35 <li><a href="{% url 'course:create' %}">Create Course</a></li>
  36 + </ul>
  37 + </div>
  38 + </div>
  39 +
  40 + <div class="panel panel-primary navigation">
  41 + <div class="panel-heading">
  42 + <h3 class="panel-title">Category</h3>
  43 + </div>
  44 + <div class="panel-body">
  45 + <ul class="nav nav-pills nav-stacked">
36 <li><a href="{% url 'course:create_cat' %}">Create Category</a></li> 46 <li><a href="{% url 'course:create_cat' %}">Create Category</a></li>
  47 + <li><a href="{% url 'course:manage_cat' %}">List Category</a></li>
37 </ul> 48 </ul>
38 </div> 49 </div>
39 </div> 50 </div>
courses/views.py
@@ -10,6 +10,7 @@ from django.utils.translation import ugettext_lazy as _ @@ -10,6 +10,7 @@ from django.utils.translation import ugettext_lazy as _
10 from rolepermissions.verifications import has_role 10 from rolepermissions.verifications import has_role
11 from django.db.models import Q 11 from django.db.models import Q
12 from rolepermissions.verifications import has_object_permission 12 from rolepermissions.verifications import has_object_permission
  13 +from django.http import HttpResponseRedirect
13 14
14 from .forms import CourseForm, UpdateCourseForm, CategoryCourseForm, SubjectForm,TopicForm,ActivityForm 15 from .forms import CourseForm, UpdateCourseForm, CategoryCourseForm, SubjectForm,TopicForm,ActivityForm
15 from .models import Course, Subject, CourseCategory,Topic, SubjectCategory,Activity 16 from .models import Course, Subject, CourseCategory,Topic, SubjectCategory,Activity
@@ -215,6 +216,10 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): @@ -215,6 +216,10 @@ class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
215 form_class = CategoryCourseForm 216 form_class = CategoryCourseForm
216 success_url = reverse_lazy('course:manage_cat') 217 success_url = reverse_lazy('course:manage_cat')
217 218
  219 + def get_success_url(self):
  220 + messages.success(self.request, _('Category created successfully!'))
  221 + return reverse_lazy('course:manage_cat')
  222 +
218 class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 223 class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
219 224
220 allowed_roles = ['professor', 'system_admin'] 225 allowed_roles = ['professor', 'system_admin']
@@ -223,7 +228,10 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -223,7 +228,10 @@ class UpdateCatView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
223 template_name = 'category/update.html' 228 template_name = 'category/update.html'
224 model = CourseCategory 229 model = CourseCategory
225 form_class = CategoryCourseForm 230 form_class = CategoryCourseForm
226 - success_url = reverse_lazy('course:manage_cat') 231 +
  232 + def get_success_url(self):
  233 + messages.success(self.request, _('Category updated successfully!'))
  234 + return reverse_lazy('course:update_cat', kwargs={'slug' : self.object.slug})
227 235
228 class ViewCat(LoginRequiredMixin, generic.DetailView): 236 class ViewCat(LoginRequiredMixin, generic.DetailView):
229 login_url = reverse_lazy("core:home") 237 login_url = reverse_lazy("core:home")
@@ -239,12 +247,10 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -239,12 +247,10 @@ class DeleteCatView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
239 redirect_field_name = 'next' 247 redirect_field_name = 'next'
240 model = CourseCategory 248 model = CourseCategory
241 template_name = 'category/delete.html' 249 template_name = 'category/delete.html'
242 - success_url = reverse_lazy('course:manage_cat')  
243 250
244 - def render_to_response(self, context, **response_kwargs): 251 + def get_success_url(self):
245 messages.success(self.request, _('Category deleted successfully!')) 252 messages.success(self.request, _('Category deleted successfully!'))
246 -  
247 - return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) 253 + return reverse_lazy('course:manage_cat')
248 254
249 class SubjectsView(LoginRequiredMixin, generic.ListView): 255 class SubjectsView(LoginRequiredMixin, generic.ListView):
250 256