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