Commit c63d5b3629f497b1b982fd45ce617d4c9e61316e

Authored by Zambom
1 parent d0908746

Adding invisiblity propagation on subjects/topics/resources and adjust invisible…

… resource presentation
categories/templates/categories/list.html
@@ -117,8 +117,6 @@ @@ -117,8 +117,6 @@
117 <li><a href="javascript:delete_course.get('{% url 'categories:delete' category.slug %}?view=index','#category','#modal_course')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li> 117 <li><a href="javascript:delete_course.get('{% url 'categories:delete' category.slug %}?view=index','#category','#modal_course')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
118 </ul> 118 </ul>
119 {% endif %} 119 {% endif %}
120 - <a href=""><i class="fa fa-bar-chart" aria-hidden="true"></i></a>  
121 - <a href=""><i class="fa fa-exclamation-triangle" aria-hidden="true"></i></a>  
122 </div> 120 </div>
123 </div> 121 </div>
124 </div> 122 </div>
categories/views.py
@@ -22,6 +22,7 @@ from log.models import Log @@ -22,6 +22,7 @@ from log.models import Log
22 22
23 import time 23 import time
24 24
  25 +from topics.models import Topic, Resource
25 from users.models import User 26 from users.models import User
26 27
27 class IndexView(views.SuperuserRequiredMixin, LoginRequiredMixin, ListView): 28 class IndexView(views.SuperuserRequiredMixin, LoginRequiredMixin, ListView):
@@ -212,10 +213,9 @@ class UpdateCategory(LogMixin, UpdateView): @@ -212,10 +213,9 @@ class UpdateCategory(LogMixin, UpdateView):
212 category = form.save() 213 category = form.save()
213 214
214 if not category.visible: 215 if not category.visible:
215 - for subjects in category.subject_category.all():  
216 - subjects.visible = False  
217 -  
218 - subjects.save() 216 + category.subject_category.all().update(visible = False)
  217 + Topic.objects.filter(subject__category = category, repository = False).update(visible = False)
  218 + Resource.objects.filter(topic__subject__category = category, topic__repository = False).update(visible = False)
219 219
220 return super(UpdateCategory, self).form_valid(form) 220 return super(UpdateCategory, self).form_valid(form)
221 221
pdf_file/templates/pdf_file/view.html
@@ -24,14 +24,14 @@ @@ -24,14 +24,14 @@
24 24
25 25
26 {% block content %} 26 {% block content %}
27 - {% subject_permissions request.user subject as has_subject_permissions %}  
28 -  
29 - {% if subject.visible %}  
30 - <div class="panel panel-info topic-panel">  
31 - <div class="panel-heading">  
32 - {% elif has_subject_permissions %}  
33 - <div class="panel panel-info topic-panel-invisible">  
34 - <div class="panel-heading panel-invisible"> 27 + {% resource_permissions request.user pdf_file as has_resource_permissions %}
  28 +
  29 + {% if pdf_file.visible %}
  30 + <div class="panel panel-info topic-panel">
  31 + <div class="panel-heading">
  32 + {% elif has_resource_permissions %}
  33 + <div class="panel panel-info topic-panel-invisible">
  34 + <div class="panel-heading panel-invisible">
35 {% endif %} 35 {% endif %}
36 <div class="row"> 36 <div class="row">
37 <div class="col-md-12 category-header"> 37 <div class="col-md-12 category-header">
subjects/views.py
@@ -28,7 +28,7 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger @@ -28,7 +28,7 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
28 from .forms import CreateSubjectForm, UpdateSubjectForm 28 from .forms import CreateSubjectForm, UpdateSubjectForm
29 from .utils import has_student_profile, has_professor_profile, count_subjects, get_category_page 29 from .utils import has_student_profile, has_professor_profile, count_subjects, get_category_page
30 from users.models import User 30 from users.models import User
31 -from topics.models import Resource 31 +from topics.models import Topic, Resource
32 32
33 from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions, has_resource_permissions 33 from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions, has_resource_permissions
34 34
@@ -366,6 +366,10 @@ class SubjectUpdateView(LoginRequiredMixin, LogMixin, UpdateView): @@ -366,6 +366,10 @@ class SubjectUpdateView(LoginRequiredMixin, LogMixin, UpdateView):
366 self.object.visible = False 366 self.object.visible = False
367 self.object.save() 367 self.object.save()
368 368
  369 + if not self.object.visible:
  370 + Topic.objects.filter(subject = self.object, repository = False).update(visible = False)
  371 + Resource.objects.filter(topic__subject = self.object, topic__repository = False).update(visible = False)
  372 +
369 self.log_context['category_id'] = self.object.category.id 373 self.log_context['category_id'] = self.object.category.id
370 self.log_context['category_name'] = self.object.category.name 374 self.log_context['category_name'] = self.object.category.name
371 self.log_context['category_slug'] = self.object.category.slug 375 self.log_context['category_slug'] = self.object.category.slug
topics/views.py
@@ -61,6 +61,10 @@ class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): @@ -61,6 +61,10 @@ class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView):
61 61
62 self.object.save() 62 self.object.save()
63 63
  64 + if not self.object.subject.visible and not self.object.repository:
  65 + self.object.visible = False
  66 + self.object.save()
  67 +
64 self.log_context['category_id'] = self.object.subject.category.id 68 self.log_context['category_id'] = self.object.subject.category.id
65 self.log_context['category_name'] = self.object.subject.category.name 69 self.log_context['category_name'] = self.object.subject.category.name
66 self.log_context['category_slug'] = self.object.subject.category.slug 70 self.log_context['category_slug'] = self.object.subject.category.slug
@@ -137,6 +141,13 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): @@ -137,6 +141,13 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView):
137 return context 141 return context
138 142
139 def get_success_url(self): 143 def get_success_url(self):
  144 + if not self.object.subject.visible:
  145 + self.object.visible = False
  146 + self.object.save()
  147 +
  148 + if not self.object.visible and not self.object.repository:
  149 + Resource.objects.filter(topic = self.object).update(visible = False)
  150 +
140 messages.success(self.request, _('Topic "%s" was updated on virtual enviroment "%s" successfully!')%(self.object.name, self.object.subject.name)) 151 messages.success(self.request, _('Topic "%s" was updated on virtual enviroment "%s" successfully!')%(self.object.name, self.object.subject.name))
141 152
142 self.log_context['category_id'] = self.object.subject.category.id 153 self.log_context['category_id'] = self.object.subject.category.id
webpage/templates/webpages/view.html
@@ -25,12 +25,12 @@ @@ -25,12 +25,12 @@
25 {% endfor %} 25 {% endfor %}
26 {% endif %} 26 {% endif %}
27 27
28 - {% subject_permissions request.user subject as has_subject_permissions %} 28 + {% resource_permissions request.user webpage as has_resource_permissions %}
29 29
30 - {% if subject.visible %} 30 + {% if webpage.visible %}
31 <div class="panel panel-info topic-panel"> 31 <div class="panel panel-info topic-panel">
32 <div class="panel-heading"> 32 <div class="panel-heading">
33 - {% elif has_subject_permissions %} 33 + {% elif has_resource_permissions %}
34 <div class="panel panel-info topic-panel-invisible"> 34 <div class="panel panel-info topic-panel-invisible">
35 <div class="panel-heading panel-invisible"> 35 <div class="panel-heading panel-invisible">
36 {% endif %} 36 {% endif %}
youtube_video/templates/youtube/view.html
@@ -25,15 +25,15 @@ @@ -25,15 +25,15 @@
25 {% endfor %} 25 {% endfor %}
26 {% endif %} 26 {% endif %}
27 27
28 - {% subject_permissions request.user subject as has_subject_permissions %} 28 + {% resource_permissions request.user youtube as has_resource_permissions %}
29 29
30 - {% if subject.visible %}  
31 - <div class="panel panel-info topic-panel" style="margin-bottom: 0px;">  
32 - <div class="panel-heading">  
33 - {% elif has_subject_permissions %}  
34 - <div class="panel panel-info topic-panel-invisible" style="margin-bottom: 0px;">  
35 - <div class="panel-heading panel-invisible">  
36 - {% endif %} 30 + {% if youtube.visible %}
  31 + <div class="panel panel-info topic-panel">
  32 + <div class="panel-heading">
  33 + {% elif has_resource_permissions %}
  34 + <div class="panel panel-info topic-panel-invisible">
  35 + <div class="panel-heading panel-invisible">
  36 + {% endif %}
37 <div class="row"> 37 <div class="row">
38 <div class="col-md-12 category-header"> 38 <div class="col-md-12 category-header">
39 <h4 class="panel-title" style="margin-top: 10px; margin-bottom: 8px"> 39 <h4 class="panel-title" style="margin-top: 10px; margin-bottom: 8px">