Commit a90179619012e56a7692c33550eccc57dac4bdb0
1 parent
f88db7da
Exists in
master
and in
3 other branches
Adding goals logs
Showing
1 changed file
with
199 additions
and
7 deletions
Show diff stats
goals/views.py
@@ -6,6 +6,11 @@ from django.utils.translation import ugettext_lazy as _ | @@ -6,6 +6,11 @@ from django.utils.translation import ugettext_lazy as _ | ||
6 | from django.contrib.auth.mixins import LoginRequiredMixin | 6 | from django.contrib.auth.mixins import LoginRequiredMixin |
7 | from django.forms import formset_factory, modelformset_factory | 7 | from django.forms import formset_factory, modelformset_factory |
8 | 8 | ||
9 | +from log.models import Log | ||
10 | +from log.mixins import LogMixin | ||
11 | +from log.decorators import log_decorator, log_decorator_ajax | ||
12 | +import time | ||
13 | + | ||
9 | from amadeus.permissions import has_subject_permissions, has_resource_permissions | 14 | from amadeus.permissions import has_subject_permissions, has_resource_permissions |
10 | 15 | ||
11 | from topics.models import Topic | 16 | from topics.models import Topic |
@@ -52,7 +57,12 @@ class AnsweredReport(LoginRequiredMixin, generic.ListView): | @@ -52,7 +57,12 @@ class AnsweredReport(LoginRequiredMixin, generic.ListView): | ||
52 | 57 | ||
53 | return context | 58 | return context |
54 | 59 | ||
55 | -class InsideView(LoginRequiredMixin, generic.ListView): | 60 | +class InsideView(LoginRequiredMixin, LogMixin, generic.ListView): |
61 | + log_component = "resources" | ||
62 | + log_action = "view" | ||
63 | + log_resource = "my_goals" | ||
64 | + log_context = {} | ||
65 | + | ||
56 | login_url = reverse_lazy("users:login") | 66 | login_url = reverse_lazy("users:login") |
57 | redirect_field_name = 'next' | 67 | redirect_field_name = 'next' |
58 | 68 | ||
@@ -89,9 +99,32 @@ class InsideView(LoginRequiredMixin, generic.ListView): | @@ -89,9 +99,32 @@ class InsideView(LoginRequiredMixin, generic.ListView): | ||
89 | context['topic'] = goals.topic | 99 | context['topic'] = goals.topic |
90 | context['subject'] = goals.topic.subject | 100 | context['subject'] = goals.topic.subject |
91 | 101 | ||
102 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
103 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
104 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
105 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
106 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
107 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
108 | + self.log_context['topic_id'] = goals.topic.id | ||
109 | + self.log_context['topic_name'] = goals.topic.name | ||
110 | + self.log_context['topic_slug'] = goals.topic.slug | ||
111 | + self.log_context['goals_id'] = goals.id | ||
112 | + self.log_context['goals_name'] = goals.name | ||
113 | + self.log_context['goals_slug'] = goals.slug | ||
114 | + self.log_context['timestamp_start'] = str(int(time.time())) | ||
115 | + | ||
116 | + super(InsideView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
117 | + | ||
118 | + self.request.session['log_id'] = Log.objects.latest('id').id | ||
119 | + | ||
92 | return context | 120 | return context |
93 | 121 | ||
94 | -class NewWindowSubmit(LoginRequiredMixin, generic.edit.CreateView): | 122 | +class NewWindowSubmit(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
123 | + log_component = "resources" | ||
124 | + log_action = "submit" | ||
125 | + log_resource = "goals" | ||
126 | + log_context = {} | ||
127 | + | ||
95 | login_url = reverse_lazy("users:login") | 128 | login_url = reverse_lazy("users:login") |
96 | redirect_field_name = 'next' | 129 | redirect_field_name = 'next' |
97 | 130 | ||
@@ -121,6 +154,28 @@ class NewWindowSubmit(LoginRequiredMixin, generic.edit.CreateView): | @@ -121,6 +154,28 @@ class NewWindowSubmit(LoginRequiredMixin, generic.edit.CreateView): | ||
121 | 154 | ||
122 | MyGoalsFormset = formset_factory(MyGoalsForm, extra = 0) | 155 | MyGoalsFormset = formset_factory(MyGoalsForm, extra = 0) |
123 | my_goals_formset = MyGoalsFormset(initial = [{'item': x.id, 'value': x.ref_value} for x in goals.item_goal.all()]) | 156 | my_goals_formset = MyGoalsFormset(initial = [{'item': x.id, 'value': x.ref_value} for x in goals.item_goal.all()]) |
157 | + | ||
158 | + self.log_action = "view" | ||
159 | + | ||
160 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
161 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
162 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
163 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
164 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
165 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
166 | + self.log_context['topic_id'] = goals.topic.id | ||
167 | + self.log_context['topic_name'] = goals.topic.name | ||
168 | + self.log_context['topic_slug'] = goals.topic.slug | ||
169 | + self.log_context['goals_id'] = goals.id | ||
170 | + self.log_context['goals_name'] = goals.name | ||
171 | + self.log_context['goals_slug'] = goals.slug | ||
172 | + self.log_context['timestamp_start'] = str(int(time.time())) | ||
173 | + | ||
174 | + super(NewWindowSubmit, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
175 | + | ||
176 | + self.request.session['log_id'] = Log.objects.latest('id').id | ||
177 | + | ||
178 | + self.log_context = {} | ||
124 | 179 | ||
125 | return self.render_to_response(self.get_context_data(my_goals_formset = my_goals_formset)) | 180 | return self.render_to_response(self.get_context_data(my_goals_formset = my_goals_formset)) |
126 | 181 | ||
@@ -173,9 +228,29 @@ class NewWindowSubmit(LoginRequiredMixin, generic.edit.CreateView): | @@ -173,9 +228,29 @@ class NewWindowSubmit(LoginRequiredMixin, generic.edit.CreateView): | ||
173 | 228 | ||
174 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) | 229 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) |
175 | 230 | ||
231 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
232 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
233 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
234 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
235 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
236 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
237 | + self.log_context['topic_id'] = goals.topic.id | ||
238 | + self.log_context['topic_name'] = goals.topic.name | ||
239 | + self.log_context['topic_slug'] = goals.topic.slug | ||
240 | + self.log_context['goals_id'] = goals.id | ||
241 | + self.log_context['goals_name'] = goals.name | ||
242 | + self.log_context['goals_slug'] = goals.slug | ||
243 | + | ||
244 | + super(NewWindowSubmit, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
245 | + | ||
176 | return success_url | 246 | return success_url |
177 | 247 | ||
178 | -class SubmitView(LoginRequiredMixin, generic.edit.CreateView): | 248 | +class SubmitView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
249 | + log_component = "resources" | ||
250 | + log_action = "submit" | ||
251 | + log_resource = "goals" | ||
252 | + log_context = {} | ||
253 | + | ||
179 | login_url = reverse_lazy("users:login") | 254 | login_url = reverse_lazy("users:login") |
180 | redirect_field_name = 'next' | 255 | redirect_field_name = 'next' |
181 | 256 | ||
@@ -205,6 +280,28 @@ class SubmitView(LoginRequiredMixin, generic.edit.CreateView): | @@ -205,6 +280,28 @@ class SubmitView(LoginRequiredMixin, generic.edit.CreateView): | ||
205 | 280 | ||
206 | MyGoalsFormset = formset_factory(MyGoalsForm, extra = 0) | 281 | MyGoalsFormset = formset_factory(MyGoalsForm, extra = 0) |
207 | my_goals_formset = MyGoalsFormset(initial = [{'item': x.id, 'value': x.ref_value} for x in goals.item_goal.all()]) | 282 | my_goals_formset = MyGoalsFormset(initial = [{'item': x.id, 'value': x.ref_value} for x in goals.item_goal.all()]) |
283 | + | ||
284 | + self.log_action = "view" | ||
285 | + | ||
286 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
287 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
288 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
289 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
290 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
291 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
292 | + self.log_context['topic_id'] = goals.topic.id | ||
293 | + self.log_context['topic_name'] = goals.topic.name | ||
294 | + self.log_context['topic_slug'] = goals.topic.slug | ||
295 | + self.log_context['goals_id'] = goals.id | ||
296 | + self.log_context['goals_name'] = goals.name | ||
297 | + self.log_context['goals_slug'] = goals.slug | ||
298 | + self.log_context['timestamp_start'] = str(int(time.time())) | ||
299 | + | ||
300 | + super(SubmitView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
301 | + | ||
302 | + self.request.session['log_id'] = Log.objects.latest('id').id | ||
303 | + | ||
304 | + self.log_context = {} | ||
208 | 305 | ||
209 | return self.render_to_response(self.get_context_data(my_goals_formset = my_goals_formset)) | 306 | return self.render_to_response(self.get_context_data(my_goals_formset = my_goals_formset)) |
210 | 307 | ||
@@ -259,9 +356,29 @@ class SubmitView(LoginRequiredMixin, generic.edit.CreateView): | @@ -259,9 +356,29 @@ class SubmitView(LoginRequiredMixin, generic.edit.CreateView): | ||
259 | 356 | ||
260 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) | 357 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) |
261 | 358 | ||
359 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
360 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
361 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
362 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
363 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
364 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
365 | + self.log_context['topic_id'] = goals.topic.id | ||
366 | + self.log_context['topic_name'] = goals.topic.name | ||
367 | + self.log_context['topic_slug'] = goals.topic.slug | ||
368 | + self.log_context['goals_id'] = goals.id | ||
369 | + self.log_context['goals_name'] = goals.name | ||
370 | + self.log_context['goals_slug'] = goals.slug | ||
371 | + | ||
372 | + super(SubmitView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
373 | + | ||
262 | return success_url | 374 | return success_url |
263 | 375 | ||
264 | -class UpdateSubmit(LoginRequiredMixin, generic.UpdateView): | 376 | +class UpdateSubmit(LoginRequiredMixin, LogMixin, generic.UpdateView): |
377 | + log_component = "resources" | ||
378 | + log_action = "update" | ||
379 | + log_resource = "my_goals" | ||
380 | + log_context = {} | ||
381 | + | ||
265 | login_url = reverse_lazy("users:login") | 382 | login_url = reverse_lazy("users:login") |
266 | redirect_field_name = 'next' | 383 | redirect_field_name = 'next' |
267 | 384 | ||
@@ -347,9 +464,29 @@ class UpdateSubmit(LoginRequiredMixin, generic.UpdateView): | @@ -347,9 +464,29 @@ class UpdateSubmit(LoginRequiredMixin, generic.UpdateView): | ||
347 | 464 | ||
348 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) | 465 | success_url = reverse_lazy('goals:view', kwargs = {'slug': slug}) |
349 | 466 | ||
467 | + self.log_context['category_id'] = goals.topic.subject.category.id | ||
468 | + self.log_context['category_name'] = goals.topic.subject.category.name | ||
469 | + self.log_context['category_slug'] = goals.topic.subject.category.slug | ||
470 | + self.log_context['subject_id'] = goals.topic.subject.id | ||
471 | + self.log_context['subject_name'] = goals.topic.subject.name | ||
472 | + self.log_context['subject_slug'] = goals.topic.subject.slug | ||
473 | + self.log_context['topic_id'] = goals.topic.id | ||
474 | + self.log_context['topic_name'] = goals.topic.name | ||
475 | + self.log_context['topic_slug'] = goals.topic.slug | ||
476 | + self.log_context['goals_id'] = goals.id | ||
477 | + self.log_context['goals_name'] = goals.name | ||
478 | + self.log_context['goals_slug'] = goals.slug | ||
479 | + | ||
480 | + super(UpdateSubmit, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
481 | + | ||
350 | return success_url | 482 | return success_url |
351 | 483 | ||
352 | -class CreateView(LoginRequiredMixin, generic.edit.CreateView): | 484 | +class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
485 | + log_component = "resources" | ||
486 | + log_action = "create" | ||
487 | + log_resource = "goals" | ||
488 | + log_context = {} | ||
489 | + | ||
353 | login_url = reverse_lazy("users:login") | 490 | login_url = reverse_lazy("users:login") |
354 | redirect_field_name = 'next' | 491 | redirect_field_name = 'next' |
355 | 492 | ||
@@ -452,6 +589,21 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | @@ -452,6 +589,21 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | ||
452 | 589 | ||
453 | g_order += 1 | 590 | g_order += 1 |
454 | 591 | ||
592 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
593 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
594 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
595 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
596 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
597 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
598 | + self.log_context['topic_id'] = self.object.topic.id | ||
599 | + self.log_context['topic_name'] = self.object.topic.name | ||
600 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
601 | + self.log_context['goals_id'] = self.object.id | ||
602 | + self.log_context['goals_name'] = self.object.name | ||
603 | + self.log_context['goals_slug'] = self.object.slug | ||
604 | + | ||
605 | + super(CreateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
606 | + | ||
455 | return redirect(self.get_success_url()) | 607 | return redirect(self.get_success_url()) |
456 | 608 | ||
457 | def get_context_data(self, **kwargs): | 609 | def get_context_data(self, **kwargs): |
@@ -481,7 +633,12 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | @@ -481,7 +633,12 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): | ||
481 | 633 | ||
482 | return success_url | 634 | return success_url |
483 | 635 | ||
484 | -class UpdateView(LoginRequiredMixin, generic.UpdateView): | 636 | +class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): |
637 | + log_component = "resources" | ||
638 | + log_action = "update" | ||
639 | + log_resource = "goals" | ||
640 | + log_context = {} | ||
641 | + | ||
485 | login_url = reverse_lazy("users:login") | 642 | login_url = reverse_lazy("users:login") |
486 | redirect_field_name = 'next' | 643 | redirect_field_name = 'next' |
487 | 644 | ||
@@ -567,6 +724,21 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | @@ -567,6 +724,21 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
567 | 724 | ||
568 | g_order += 1 | 725 | g_order += 1 |
569 | 726 | ||
727 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
728 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
729 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
730 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
731 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
732 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
733 | + self.log_context['topic_id'] = self.object.topic.id | ||
734 | + self.log_context['topic_name'] = self.object.topic.name | ||
735 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
736 | + self.log_context['goals_id'] = self.object.id | ||
737 | + self.log_context['goals_name'] = self.object.name | ||
738 | + self.log_context['goals_slug'] = self.object.slug | ||
739 | + | ||
740 | + super(UpdateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
741 | + | ||
570 | return redirect(self.get_success_url()) | 742 | return redirect(self.get_success_url()) |
571 | 743 | ||
572 | def get_context_data(self, **kwargs): | 744 | def get_context_data(self, **kwargs): |
@@ -596,7 +768,12 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | @@ -596,7 +768,12 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
596 | 768 | ||
597 | return success_url | 769 | return success_url |
598 | 770 | ||
599 | -class DeleteView(LoginRequiredMixin, generic.DeleteView): | 771 | +class DeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView): |
772 | + log_component = "resources" | ||
773 | + log_action = "delete" | ||
774 | + log_resource = "goals" | ||
775 | + log_context = {} | ||
776 | + | ||
600 | login_url = reverse_lazy("users:login") | 777 | login_url = reverse_lazy("users:login") |
601 | redirect_field_name = 'next' | 778 | redirect_field_name = 'next' |
602 | 779 | ||
@@ -616,4 +793,19 @@ class DeleteView(LoginRequiredMixin, generic.DeleteView): | @@ -616,4 +793,19 @@ class DeleteView(LoginRequiredMixin, generic.DeleteView): | ||
616 | def get_success_url(self): | 793 | def get_success_url(self): |
617 | messages.success(self.request, _('The Goals specification of the thopic %s was removed successfully!')%(self.object.topic.name)) | 794 | messages.success(self.request, _('The Goals specification of the thopic %s was removed successfully!')%(self.object.topic.name)) |
618 | 795 | ||
796 | + self.log_context['category_id'] = self.object.topic.subject.category.id | ||
797 | + self.log_context['category_name'] = self.object.topic.subject.category.name | ||
798 | + self.log_context['category_slug'] = self.object.topic.subject.category.slug | ||
799 | + self.log_context['subject_id'] = self.object.topic.subject.id | ||
800 | + self.log_context['subject_name'] = self.object.topic.subject.name | ||
801 | + self.log_context['subject_slug'] = self.object.topic.subject.slug | ||
802 | + self.log_context['topic_id'] = self.object.topic.id | ||
803 | + self.log_context['topic_name'] = self.object.topic.name | ||
804 | + self.log_context['topic_slug'] = self.object.topic.slug | ||
805 | + self.log_context['goals_id'] = self.object.id | ||
806 | + self.log_context['goals_name'] = self.object.name | ||
807 | + self.log_context['goals_slug'] = self.object.slug | ||
808 | + | ||
809 | + super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | ||
810 | + | ||
619 | return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | 811 | return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) |
620 | \ No newline at end of file | 812 | \ No newline at end of file |