diff --git a/amadeus/settings.py b/amadeus/settings.py
index 4f55fb8..dec7e6b 100644
--- a/amadeus/settings.py
+++ b/amadeus/settings.py
@@ -71,7 +71,7 @@ MIDDLEWARE_CLASSES = [
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
- #'core.middleware.TimeSpentMiddleware',
+ 'log.middleware.TimeSpentMiddleware',
#libs-middleware
]
diff --git a/amadeus/static/js/course.js b/amadeus/static/js/course.js
index 20cbadf..b233458 100755
--- a/amadeus/static/js/course.js
+++ b/amadeus/static/js/course.js
@@ -111,6 +111,21 @@ $('.collapse').on('show.bs.collapse', function (e) {
var btn = $(this).parent().find('.fa-angle-right');
btn.switchClass("fa-angle-right", "fa-angle-down", 250, "easeInOutQuad");
+
+ var url = $(this).parent().find('.log_url').val();
+ var log_input = $(this).parent().find('.log_id');
+
+ $.ajax({
+ url: url,
+ data: {'action': 'open'},
+ dataType: 'json',
+ success: function (data) {
+ log_input.val(data.log_id);
+ },
+ error: function (data) {
+ console.log(data);
+ }
+ });
}
});
@@ -119,5 +134,20 @@ $('.collapse').on('hide.bs.collapse', function (e) {
var btn = $(this).parent().find('.fa-angle-down');
btn.switchClass("fa-angle-down", "fa-angle-right", 250, "easeInOutQuad");
+
+ var url = $(this).parent().find('.log_url').val();
+ var log_id = $(this).parent().find('.log_id').val();
+
+ $.ajax({
+ url: url,
+ data: {'action': 'close', 'log_id': log_id},
+ dataType: 'json',
+ success: function (data) {
+ console.log(data.message);
+ },
+ error: function (data) {
+ console.log(data);
+ }
+ });
}
});
\ No newline at end of file
diff --git a/categories/templates/categories/list.html b/categories/templates/categories/list.html
index 15fff77..b74731d 100755
--- a/categories/templates/categories/list.html
+++ b/categories/templates/categories/list.html
@@ -32,8 +32,7 @@
{% trans "all subjects" %}
- {% endif %}
-
+ {% endif %}
@@ -79,6 +78,9 @@
+
+
+
{% trans "Coordinator(s): " %}
{% for coordinator in category.coordinators.all %}
{{coordinator.username}}
diff --git a/categories/urls.py b/categories/urls.py
index fc1d512..77522f5 100644
--- a/categories/urls.py
+++ b/categories/urls.py
@@ -7,4 +7,5 @@ urlpatterns = [
url(r'^delete/(?P[\w_-]+)/$', views.DeleteCategory.as_view(), name='delete'),
url(r'^replicate/(?P[\w_-]+)/$', views.CreateCategory.as_view(), name='replicate'),
url(r'^update/(?P[\w_-]+)/$', views.UpdateCategory.as_view(), name='update'),
+ url(r'^view_log/(?P[\w_-]+)/$', views.category_view_log, name = 'view_log')
]
\ No newline at end of file
diff --git a/categories/views.py b/categories/views.py
index c04c966..d4632c7 100644
--- a/categories/views.py
+++ b/categories/views.py
@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse_lazy
from rolepermissions.verifications import has_role
from django.contrib import messages
-from django.http import HttpResponse
+from django.http import HttpResponse, JsonResponse
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.mixins import LoginRequiredMixin
@@ -17,6 +17,10 @@ from braces import views
from subjects.models import Subject
from log.mixins import LogMixin
+from log.decorators import log_decorator_ajax
+from log.models import Log
+
+import time
class IndexView(LoginRequiredMixin, ListView):
@@ -113,7 +117,6 @@ class CreateCategory(views.SuperuserRequiredMixin, HasRoleMixin, LogMixin, Creat
super(CreateCategory, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
- #TODO: Implement log calls
return super(CreateCategory, self).form_valid(form)
def get_success_url(self):
@@ -182,4 +185,24 @@ class UpdateCategory(LogMixin, UpdateView):
messages.success(self.request, _('Category "%s" updated successfully!')%(objeto))
return reverse_lazy('categories:index')
+@log_decorator_ajax('category', 'view', 'category')
+def category_view_log(request, category):
+ action = request.GET.get('action')
+
+ if action == 'open':
+ category = get_object_or_404(Category, id = category)
+
+ log_context = {}
+ log_context['category_id'] = category.id
+ log_context['category_name'] = category.name
+ log_context['category_slug'] = category.slug
+ log_context['timestamp_start'] = str(int(time.time()))
+ log_context['timestamp_end'] = '-1'
+
+ request.log_context = log_context
+
+ log_id = Log.objects.latest('id').id
+
+ return JsonResponse({'message': 'ok', 'log_id': log_id})
+ return JsonResponse({'message': 'ok'})
diff --git a/log/middleware.py b/log/middleware.py
index 7d878cb..7c942f6 100644
--- a/log/middleware.py
+++ b/log/middleware.py
@@ -32,16 +32,16 @@ class TimeSpentMiddleware(object):
request.session['log_id'] = None
- oppened_logs = Log.objects.filter(user = request.user, context__contains={'timestamp_end': '-1'})
+ oppened_logs = Log.objects.filter(user = request.user, context__contains={'timestamp_end': '-1'})
- for op_log in oppened_logs:
- if type(op_log.context) == dict:
- log_context = op_log.context
- else:
- log_context = json.loads(op_log.context)
+ for op_log in oppened_logs:
+ if type(op_log.context) == dict:
+ log_context = op_log.context
+ else:
+ log_context = json.loads(op_log.context)
- log_context['timestamp_end'] = str(int(time.time()))
+ log_context['timestamp_end'] = str(int(time.time()))
- op_log.context = log_context
+ op_log.context = log_context
- op_log.save()
\ No newline at end of file
+ op_log.save()
\ No newline at end of file
--
libgit2 0.21.2