Commit d9558c49784fdc00b8a8b7b53f6ac3dc9ad8ab64
1 parent
3525260d
Exists in
master
and in
3 other branches
Adding webpages log
Showing
1 changed file
with
121 additions
and
6 deletions
Show diff stats
webpage/views.py
| @@ -7,6 +7,10 @@ from django.contrib.auth.mixins import LoginRequiredMixin | @@ -7,6 +7,10 @@ from django.contrib.auth.mixins import LoginRequiredMixin | ||
| 7 | 7 | ||
| 8 | from amadeus.permissions import has_subject_permissions, has_resource_permissions | 8 | from amadeus.permissions import has_subject_permissions, has_resource_permissions |
| 9 | 9 | ||
| 10 | +import time | ||
| 11 | +from log.models import Log | ||
| 12 | +from log.mixins import LogMixin | ||
| 13 | + | ||
| 10 | from topics.models import Topic | 14 | from topics.models import Topic |
| 11 | 15 | ||
| 12 | from pendencies.forms import PendenciesForm | 16 | from pendencies.forms import PendenciesForm |
| @@ -14,7 +18,12 @@ from pendencies.forms import PendenciesForm | @@ -14,7 +18,12 @@ from pendencies.forms import PendenciesForm | ||
| 14 | from .forms import WebpageForm | 18 | from .forms import WebpageForm |
| 15 | from .models import Webpage | 19 | from .models import Webpage |
| 16 | 20 | ||
| 17 | -class NewWindowView(LoginRequiredMixin, generic.DetailView): | 21 | +class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 22 | + log_component = 'resources' | ||
| 23 | + log_action = 'view' | ||
| 24 | + log_resource = 'webpage' | ||
| 25 | + log_context = {} | ||
| 26 | + | ||
| 18 | login_url = reverse_lazy("users:login") | 27 | login_url = reverse_lazy("users:login") |
| 19 | redirect_field_name = 'next' | 28 | redirect_field_name = 'next' |
| 20 | 29 | ||
| @@ -31,7 +40,35 @@ class NewWindowView(LoginRequiredMixin, generic.DetailView): | @@ -31,7 +40,35 @@ class NewWindowView(LoginRequiredMixin, generic.DetailView): | ||
| 31 | 40 | ||
| 32 | return super(NewWindowView, self).dispatch(request, *args, **kwargs) | 41 | return super(NewWindowView, self).dispatch(request, *args, **kwargs) |
| 33 | 42 | ||
| 34 | -class InsideView(LoginRequiredMixin, generic.DetailView): | 43 | + def get_context_data(self, **kwargs): |
| 44 | + context = super(NewWindowView, self).get_context_data(**kwargs) | ||
| 45 | + | ||
| 46 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
| 47 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
| 48 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
| 49 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
| 50 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
| 51 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
| 52 | + self.log_context['topic_id'] = self.object.topic.id | ||
| 53 | + self.log_context['topic_name'] = self.object.topic.name | ||
| 54 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
| 55 | + self.log_context['webpage_id'] = self.object.id | ||
| 56 | + self.log_context['webpage_name'] = self.object.name | ||
| 57 | + self.log_context['webpage_slug'] = self.object.slug | ||
| 58 | + self.log_context['timestamp_start'] = str(int(time.time())) | ||
| 59 | + | ||
| 60 | + super(NewWindowView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
| 61 | + | ||
| 62 | + self.request.session['log_id'] = Log.objects.latest('id').id | ||
| 63 | + | ||
| 64 | + return context | ||
| 65 | + | ||
| 66 | +class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): | ||
| 67 | + log_component = 'resources' | ||
| 68 | + log_action = 'view' | ||
| 69 | + log_resource = 'webpage' | ||
| 70 | + log_context = {} | ||
| 71 | + | ||
| 35 | login_url = reverse_lazy("users:login") | 72 | login_url = reverse_lazy("users:login") |
| 36 | redirect_field_name = 'next' | 73 | redirect_field_name = 'next' |
| 37 | 74 | ||
| @@ -56,9 +93,32 @@ class InsideView(LoginRequiredMixin, generic.DetailView): | @@ -56,9 +93,32 @@ class InsideView(LoginRequiredMixin, generic.DetailView): | ||
| 56 | context['topic'] = self.object.topic | 93 | context['topic'] = self.object.topic |
| 57 | context['subject'] = self.object.topic.subject | 94 | context['subject'] = self.object.topic.subject |
| 58 | 95 | ||
| 96 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
| 97 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
| 98 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
| 99 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
| 100 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
| 101 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
| 102 | + self.log_context['topic_id'] = self.object.topic.id | ||
| 103 | + self.log_context['topic_name'] = self.object.topic.name | ||
| 104 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
| 105 | + self.log_context['webpage_id'] = self.object.id | ||
| 106 | + self.log_context['webpage_name'] = self.object.name | ||
| 107 | + self.log_context['webpage_slug'] = self.object.slug | ||
| 108 | + self.log_context['timestamp_start'] = str(int(time.time())) | ||
| 109 | + | ||
| 110 | + super(InsideView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
| 111 | + | ||
| 112 | + self.request.session['log_id'] = Log.objects.latest('id').id | ||
| 113 | + | ||
| 59 | return context | 114 | return context |
| 60 | 115 | ||
| 61 | -class CreateView(LoginRequiredMixin, generic.edit.CreateView): | 116 | +class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
| 117 | + log_component = 'resources' | ||
| 118 | + log_action = 'create' | ||
| 119 | + log_resource = 'webpage' | ||
| 120 | + log_context = {} | ||
| 121 | + | ||
| 62 | login_url = reverse_lazy("users:login") | 122 | login_url = reverse_lazy("users:login") |
| 63 | redirect_field_name = 'next' | 123 | redirect_field_name = 'next' |
| 64 | 124 | ||
| @@ -134,7 +194,22 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | @@ -134,7 +194,22 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | ||
| 134 | pend_form.resource = self.object | 194 | pend_form.resource = self.object |
| 135 | 195 | ||
| 136 | if not pend_form.action == "": | 196 | if not pend_form.action == "": |
| 137 | - pend_form.save() | 197 | + pend_form.save() |
| 198 | + | ||
| 199 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
| 200 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
| 201 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
| 202 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
| 203 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
| 204 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
| 205 | + self.log_context['topic_id'] = self.object.topic.id | ||
| 206 | + self.log_context['topic_name'] = self.object.topic.name | ||
| 207 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
| 208 | + self.log_context['webpage_id'] = self.object.id | ||
| 209 | + self.log_context['webpage_name'] = self.object.name | ||
| 210 | + self.log_context['webpage_slug'] = self.object.slug | ||
| 211 | + | ||
| 212 | + super(CreateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
| 138 | 213 | ||
| 139 | return redirect(self.get_success_url()) | 214 | return redirect(self.get_success_url()) |
| 140 | 215 | ||
| @@ -165,7 +240,12 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | @@ -165,7 +240,12 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | ||
| 165 | 240 | ||
| 166 | return success_url | 241 | return success_url |
| 167 | 242 | ||
| 168 | -class UpdateView(LoginRequiredMixin, generic.UpdateView): | 243 | +class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): |
| 244 | + log_component = 'resources' | ||
| 245 | + log_action = 'update' | ||
| 246 | + log_resource = 'webpage' | ||
| 247 | + log_context = {} | ||
| 248 | + | ||
| 169 | login_url = reverse_lazy("users:login") | 249 | login_url = reverse_lazy("users:login") |
| 170 | redirect_field_name = 'next' | 250 | redirect_field_name = 'next' |
| 171 | 251 | ||
| @@ -237,6 +317,21 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | @@ -237,6 +317,21 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
| 237 | 317 | ||
| 238 | if not pend_form.action == "": | 318 | if not pend_form.action == "": |
| 239 | pend_form.save() | 319 | pend_form.save() |
| 320 | + | ||
| 321 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
| 322 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
| 323 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
| 324 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
| 325 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
| 326 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
| 327 | + self.log_context['topic_id'] = self.object.topic.id | ||
| 328 | + self.log_context['topic_name'] = self.object.topic.name | ||
| 329 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
| 330 | + self.log_context['webpage_id'] = self.object.id | ||
| 331 | + self.log_context['webpage_name'] = self.object.name | ||
| 332 | + self.log_context['webpage_slug'] = self.object.slug | ||
| 333 | + | ||
| 334 | + super(UpdateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
| 240 | 335 | ||
| 241 | return redirect(self.get_success_url()) | 336 | return redirect(self.get_success_url()) |
| 242 | 337 | ||
| @@ -267,7 +362,12 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | @@ -267,7 +362,12 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
| 267 | 362 | ||
| 268 | return success_url | 363 | return success_url |
| 269 | 364 | ||
| 270 | -class DeleteView(LoginRequiredMixin, generic.DeleteView): | 365 | +class DeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView): |
| 366 | + log_component = 'resources' | ||
| 367 | + log_action = 'delete' | ||
| 368 | + log_resource = 'webpage' | ||
| 369 | + log_context = {} | ||
| 370 | + | ||
| 271 | login_url = reverse_lazy("users:login") | 371 | login_url = reverse_lazy("users:login") |
| 272 | redirect_field_name = 'next' | 372 | redirect_field_name = 'next' |
| 273 | 373 | ||
| @@ -287,4 +387,19 @@ class DeleteView(LoginRequiredMixin, generic.DeleteView): | @@ -287,4 +387,19 @@ class DeleteView(LoginRequiredMixin, generic.DeleteView): | ||
| 287 | def get_success_url(self): | 387 | def get_success_url(self): |
| 288 | messages.success(self.request, _('The webpage "%s" was removed successfully from virtual environment "%s"!')%(self.object.name, self.object.topic.subject.name)) | 388 | messages.success(self.request, _('The webpage "%s" was removed successfully from virtual environment "%s"!')%(self.object.name, self.object.topic.subject.name)) |
| 289 | 389 | ||
| 390 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
| 391 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
| 392 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
| 393 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
| 394 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
| 395 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
| 396 | + self.log_context['topic_id'] = self.object.topic.id | ||
| 397 | + self.log_context['topic_name'] = self.object.topic.name | ||
| 398 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
| 399 | + self.log_context['webpage_id'] = self.object.id | ||
| 400 | + self.log_context['webpage_name'] = self.object.name | ||
| 401 | + self.log_context['webpage_slug'] = self.object.slug | ||
| 402 | + | ||
| 403 | + super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
| 404 | + | ||
| 290 | return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | 405 | return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) |
| 291 | \ No newline at end of file | 406 | \ No newline at end of file |