Commit a4d0a0ff3c9a31ee63a5c99f4ae15dd60481a046

Authored by Matheus Lins
1 parent 4e06051e

improviment detail course #214

courses/static/js/course.js
@@ -49,27 +49,41 @@ function subscribe(elem, url, id, confirm_message) { @@ -49,27 +49,41 @@ function subscribe(elem, url, id, confirm_message) {
49 49
50 /* 50 /*
51 * 51 *
52 -* Function to delete a course 52 +* Function to delete a course
53 * 53 *
54 */ 54 */
55 -function delete_course(url, course, message, return_url) {  
56 - alertify.confirm(message, function(){  
57 - var csrftoken = getCookie('csrftoken');  
58 55
59 - $.ajax({  
60 - method: 'post',  
61 - beforeSend: function (request) {  
62 - request.setRequestHeader('X-CSRFToken', csrftoken);  
63 - },  
64 - url: url,  
65 - success: function(data) {  
66 - alertify.alert('Remove Course', 'Course removed successfully!', function(){  
67 - window.location.href = return_url;  
68 - });  
69 - }  
70 - });  
71 - }); 56 +var RemoveCourse = {
  57 + remove: function(url,dados,id_li_link){
  58 + $('#course').modal('hide');
  59 + $.post(url,dados, function(data){
  60 + $(id_li_link).remove();
  61 + $("#modal_course").empty();
  62 + $("#accordion").remove();
  63 + $(".modal-backdrop.in").remove();
  64 + alertify.success("Course removed successfully!");
  65 + setTimeout(function () { location.reload(1); }, 2000);
  66 + }).fail(function(){
  67 + $("#modal_course").empty();
  68 + $("#modal_course").append(data);
  69 + $('#course').modal('show');
  70 + });
  71 + }
72 } 72 }
  73 +
  74 +var delete_course = {
  75 + get: function (url, id_modal, id_div_modal){
  76 + $.get(url, function(data){
  77 + if($(id_modal).length){
  78 + $(id_div_modal).empty();
  79 + $(id_div_modal).append(data);
  80 + } else {
  81 + $(id_div_modal).append(data);
  82 + }
  83 + $(id_modal).modal('show');
  84 + });
  85 + }
  86 +};
73 /* 87 /*
74 * 88 *
75 * Function to load create course's form 89 * Function to load create course's form
courses/static/js/modal_subject.js 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +var RemoveSubject = {
  2 + remove: function(url,dados,id_li_link){
  3 + $('#subject').modal('hide');
  4 + $.post(url,dados, function(data){
  5 + $(id_li_link).remove();
  6 + $("#modal_subject").empty();
  7 + $("#accordion").remove();
  8 + $(".modal-backdrop.in").remove();
  9 + alertify.success("Subject removed successfully!");
  10 + setTimeout(function () { location.reload(1); }, 2000);
  11 + }).fail(function(){
  12 + $("#modal_subject").empty();
  13 + $("#modal_subject").append(data);
  14 + $('#subject').modal('show');
  15 + });
  16 + }
  17 +}
  18 +
  19 +var delete_subject = {
  20 + get: function (url, id_modal, id_div_modal){
  21 + $.get(url, function(data){
  22 + if($(id_modal).length){
  23 + $(id_div_modal).empty();
  24 + $(id_div_modal).append(data);
  25 + } else {
  26 + $(id_div_modal).append(data);
  27 + }
  28 + $(id_modal).modal('show');
  29 + });
  30 + }
  31 +};
0 \ No newline at end of file 32 \ No newline at end of file
courses/templates/category/delete.html
  1 +{% load static i18n permission_tags %}
1 2
2 -{% extends 'course/view.html' %} 3 +<!-- Modal (remember to change the ids!!!) -->
  4 +<div class="modal fade" id="course" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  5 + <div class="modal-dialog" role="document">
  6 + <div class="modal-content">
  7 + <!-- Modal Header -->
  8 + <div class="modal-header">
3 9
4 -{% load static i18n %}  
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 - </ol>  
11 -{% endblock %}  
12 -  
13 -{% block content %}  
14 -<div class="panel panel-default">  
15 - <div class="panel-body">  
16 - <form action="" method="post"> 10 + <h4 class="modal-title" id="myModalLabel">{% trans "Delete Category" %}</h4>
  11 + </div>
  12 + <!-- Modal Body -->
  13 + <div class="modal-body">
  14 + <!-- Put ONLY your content here!!! -->
  15 + <form id="delete_form" action="" method="post">
17 {% csrf_token %} 16 {% csrf_token %}
18 - <h2>{% trans 'Are you sure you want to delete the course' %} "{{course}}"?</h2>  
19 - <input type="submit" class="btn btn-raised btn-success btn-lg" value="{% trans 'Yes' %}" />  
20 - <a href="{% url 'course:view' course.slug%}" class="btn btn-raised btn-danger btn-lg">{% trans 'No' %}</a> 17 + <p>{% trans 'Are you sure you want to delete the category' %} "{{category.name}}"?</p>
21 </form> 18 </form>
  19 + </div>
  20 + <!-- Modal Footer -->
  21 + <div class="modal-footer">
  22 + <!-- Don't remove that!!! -->
  23 + <button type="button" class="btn btn-danger btn-raised" data-dismiss="modal">{% trans "Close" %}</button>
  24 + <button type="submit" id="button" form="delete_form" class="btn btn-primary btn-raised">{% trans "Delete" %}</button>
  25 + <script>
  26 + $("#delete_form").submit(function(event) {
  27 + Subimite.remove("{% url 'course:delete_cat' category.slug %}",$(this).serialize(),"#category_{{category.slug}}");
  28 + event.preventDefault();
  29 + });
  30 + </script>
  31 + </div>
  32 + </div>
22 </div> 33 </div>
23 </div> 34 </div>
24 -{% endblock %}  
25 \ No newline at end of file 35 \ No newline at end of file
  36 +<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  37 +<script src="{% static 'js/modal_category.js' %}"></script>
courses/templates/course/course_card.html
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 </button> 20 </button>
21 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> 21 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
22 <li><a href="{% url 'course:replicate_course' course.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>{% trans 'Replicate' %}</a></li> 22 <li><a href="{% url 'course:replicate_course' course.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>{% trans 'Replicate' %}</a></li>
23 - <li><a href="javascript:delete_course('{% url 'course:delete' course.slug %}', '{{ course.slug }}', '{% trans "Are you sure you want to delete this course?" %}', '{% url 'course:manage' %}')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li> 23 + <li><a href="javascript:delete_course.get('{% url 'course:delete' course.slug %}','#course','#modal_course')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
24 </ul> 24 </ul>
25 </div> 25 </div>
26 </div> 26 </div>
@@ -63,4 +63,5 @@ @@ -63,4 +63,5 @@
63 </div> 63 </div>
64 </div> 64 </div>
65 </div> 65 </div>
66 -</div>  
67 \ No newline at end of file 66 \ No newline at end of file
  67 +</div>
  68 + <script type="text/javascript" src="{% static 'js/course.js' %}"></script>
68 \ No newline at end of file 69 \ No newline at end of file
courses/templates/course/delete.html
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 <button type="submit" id="button" form="delete_form" class="btn btn-primary btn-raised">{% trans "Delete" %}</button> 24 <button type="submit" id="button" form="delete_form" class="btn btn-primary btn-raised">{% trans "Delete" %}</button>
25 <script> 25 <script>
26 $("#delete_form").submit(function(event) { 26 $("#delete_form").submit(function(event) {
27 - RemoverCurso.remove("{% url 'course:delete' course.slug %}",$(this).serialize(),"#course_{{course.slug}}"); 27 + RemoveCourse.remove("{% url 'course:delete' course.slug %}",$(this).serialize(),"#course_{{course.slug}}");
28 event.preventDefault(); 28 event.preventDefault();
29 }); 29 });
30 </script> 30 </script>
courses/templates/course/view.html
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 9
10 {% block javascript %} 10 {% block javascript %}
11 <script type="text/javascript" src="{% static 'js/course.js' %}"></script> 11 <script type="text/javascript" src="{% static 'js/course.js' %}"></script>
  12 + <script type="text/javascript" src="{% static 'js/modal_subject.js' %}"></script>
12 {% endblock %} 13 {% endblock %}
13 14
14 {% block breadcrumbs %} 15 {% block breadcrumbs %}
@@ -128,27 +129,6 @@ @@ -128,27 +129,6 @@
128 129
129 <div class="panel panel-info"> 130 <div class="panel panel-info">
130 </div> 131 </div>
131 -  
132 -  
133 -<!-- MODAL REMOVE -->  
134 -<div class="modal" id="removeSubject">  
135 - <div class="modal-dialog">  
136 - <div class="modal-content">  
137 - <div class="modal-header">  
138 - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>  
139 - <h4 class="modal-title"></h4>  
140 - </div>  
141 - <div class="modal-body">  
142 - <p>{% trans "Are you sure you want to remove this subject?" %}</p>  
143 - </div>  
144 - <div class="modal-footer">  
145 -  
146 - <a href="http://127.0.0.1:8080/html/screens/users/teacher/home_course_teacher.html" target="_self"><button type="button" class="btn btn-primary">{% trans "Confirm" %}</button></a>  
147 -  
148 - </div>  
149 - </div>  
150 - </div>  
151 -</div>  
152 </div> 132 </div>
153 <div class="cards-detail"> 133 <div class="cards-detail">
154 {% for subject in subjects %} 134 {% for subject in subjects %}
@@ -171,7 +151,7 @@ @@ -171,7 +151,7 @@
171 </button> 151 </button>
172 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> 152 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
173 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#myModal3"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Replicate' %}</a></li> 153 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#myModal3"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Replicate' %}</a></li>
174 - <li><a href="javascript:subject.get('{% url 'course:delete_subject' subject.slug %}','#subject','#modal_subject');" data-toggle="modal" data-target="#removeSubject"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Remove' %}</a></li> 154 + <li><a href="javascript:delete_subject.get('{% url 'course:delete_subject' subject.slug %}','#subject','#modal_subject')" data-toggle="modal" data-target="#removeSubject"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Remove' %}</a></li>
175 </ul> 155 </ul>
176 </div> 156 </div>
177 </div> 157 </div>
@@ -221,5 +201,6 @@ @@ -221,5 +201,6 @@
221 </div> 201 </div>
222 </div> 202 </div>
223 </div> 203 </div>
  204 +<div class="row" id="modal_subject">
224 205
225 {% endblock %} 206 {% endblock %}
courses/templates/subject/delete.html
1 -{% extends 'subject/index.html' %} 1 +{% load static i18n permission_tags %}
2 2
3 -{% load static i18n permission_tags widget_tweaks %} 3 +<!-- Modal (remember to change the ids!!!) -->
  4 +<div class="modal fade" id="subject" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  5 + <div class="modal-dialog" role="document">
  6 + <div class="modal-content">
  7 + <!-- Modal Header -->
  8 + <div class="modal-header">
4 9
5 -{% block content %}  
6 -  
7 -<div class="panel panel-default">  
8 - <div class="panel-body">  
9 - <form action="" method="post">  
10 - {% csrf_token %}  
11 - <h2>{% trans 'Are you sure you want to delete the subject' %} "{{subject}}"?</h2>  
12 - <input type="submit" class="btn btn-raised btn-success btn-lg" value="{% trans 'Yes' %}" />  
13 - <a href="{% url 'course:view_subject' subject.slug%}" class="btn btn-raised btn-danger btn-lg">{% trans 'No' %}</a>  
14 - </form> 10 + <h4 class="modal-title" id="myModalLabel">{% trans "Delete Course" %}</h4>
  11 + </div>
  12 + <!-- Modal Body -->
  13 + <div class="modal-body">
  14 + <!-- Put ONLY your content here!!! -->
  15 + <form id="delete_form" action="" method="post">
  16 + {% csrf_token %}
  17 + <p>{% trans 'Are you sure you want to delete the subject' %} "{{subject.name}}"?</p>
  18 + </form>
  19 + </div>
  20 + <!-- Modal Footer -->
  21 + <div class="modal-footer">
  22 + <!-- Don't remove that!!! -->
  23 + <button type="button" class="btn btn-danger btn-raised" data-dismiss="modal">{% trans "Close" %}</button>
  24 + <button type="submit" id="button" form="delete_form" class="btn btn-primary btn-raised">{% trans "Delete" %}</button>
  25 + <script>
  26 + $("#delete_form").submit(function(event) {
  27 + RemoveCourse.remove("{% url 'course:delete_subject' subject.slug %}",$(this).serialize(),"#subject_{{subject.slug}}");
  28 + event.preventDefault();
  29 + });
  30 + </script>
  31 + </div>
  32 + </div>
15 </div> 33 </div>
16 </div> 34 </div>
17 -  
18 -{% endblock content %} 35 +<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  36 +<script src="{% static 'js/modal_subject.js' %}"></script>
courses/views.py
@@ -308,7 +308,7 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet @@ -308,7 +308,7 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet
308 if has_role(self.request.user,'system_admin'): 308 if has_role(self.request.user,'system_admin'):
309 courses = Course.objects.all() 309 courses = Course.objects.all()
310 elif has_role(self.request.user,'professor'): 310 elif has_role(self.request.user,'professor'):
311 - courses = self.request.user.courses.all() 311 + courses = self.request.user.courses_professors.all()
312 context['courses'] = courses 312 context['courses'] = courses
313 context['title'] = course.name 313 context['title'] = course.name
314 314