Commit e2727664800acb476884f698a5272c0da1f3fd3b
Exists in
master
and in
5 other branches
Merge branch 'dev' of https://github.com/amadeusproject/amadeuslms into dev
Showing
6 changed files
with
200 additions
and
63 deletions
Show diff stats
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">×</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">×</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">×</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">×</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 |