diff --git a/asuzr/common.py b/asuzr/common.py index e581596..80d5049 100644 --- a/asuzr/common.py +++ b/asuzr/common.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- from datetime import date +from django.contrib.admin.models import LogEntry +from django.contrib.auth.models import User class custom_date(date): @@ -18,5 +20,17 @@ class custom_date(date): def is_weekend(self): return self.weekday() >= 5 - def __format__(self): - return self.strftime('%d.%m.%Y') +def log_view_call(fn): + ''' + Wrapper for views log + ''' + def wrapper(*args, **kwargs): + log_entry = {} + request = args[0] + log_entry['user'] = User.objects.get(username = request.META['USER']) + log_entry['object_repr'] = fn.__name__ + log_entry['action_flag'] = 5 + entry = LogEntry(**log_entry) + entry.save() + return fn(*args, **kwargs) + return wrapper diff --git a/asuzr/models.py b/asuzr/models.py index 3f74cfb..eb259f8 100644 --- a/asuzr/models.py +++ b/asuzr/models.py @@ -6,6 +6,7 @@ from django.contrib.auth.models import User from datetime import date, timedelta from django.utils import dateformat from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed +from django.contrib.sessions.models import Session from django.db.models.signals import post_save, post_delete from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION from django.contrib.contenttypes.models import ContentType @@ -208,6 +209,7 @@ def construct_log_entry(**kwargs): def after_save(*args, **kwargs): instance = kwargs['instance'] if isinstance(instance, LogEntry): return + if isinstance(instance, Session): return log_entry = construct_log_entry(**kwargs) created = kwargs['created'] log_entry['action_flag'] = ADDITION if created else CHANGE @@ -216,6 +218,8 @@ def after_save(*args, **kwargs): #@receiver(post_delete) def after_delete(*args, **kwargs): + instance = kwargs['instance'] + if isinstance(instance, Session): return log_entry = construct_log_entry(**kwargs) log_entry['action_flag'] = DELETION entry = LogEntry(**log_entry) diff --git a/asuzr/tables.py b/asuzr/tables.py index 55a5f75..e2c1357 100644 --- a/asuzr/tables.py +++ b/asuzr/tables.py @@ -236,7 +236,8 @@ class LogTable(tables.Table): return {1: 'Добавление', 2: 'Изменение', 3: 'Удаление', - 4: 'Авторизация'}[value] + 4: 'Авторизация', + 5: 'Открытие страницы',}[value] class Meta: model = LogEntry diff --git a/asuzr/views.py b/asuzr/views.py index fd33864..d55c122 100644 --- a/asuzr/views.py +++ b/asuzr/views.py @@ -9,7 +9,7 @@ from datetime import datetime, date, timedelta from django.utils import dateformat import calendar from django.db.models import Count, Sum -from asuzr.common import custom_date +from asuzr.common import * from django.contrib.auth.decorators import login_required from asuzr.tables import * from asuzr.forms import * @@ -108,6 +108,7 @@ def create_attendance_if_need(date): if created: attendance.save() +@log_view_call @login_required def visit_view(request): curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y') @@ -202,6 +203,7 @@ def main(request, day, month, year): }) return HttpResponse(t.render(c)) +@log_view_call @login_required def sketches(request, order_id): curr_order = Order.objects.get(pk = order_id) @@ -232,6 +234,7 @@ def delete_sketch(request): sketch.delete() return redirect(sketches, order_id = order_id) +@log_view_call @login_required def orders(request, archive): is_archive = (archive == '1') @@ -241,6 +244,7 @@ def orders(request, archive): RequestConfig(request).configure(table) return render(request, 'asuzr/table.html', {'table': table, 'title': title}) +@log_view_call @login_required def desreport(request): start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%Y')) @@ -254,6 +258,7 @@ def desreport(request): RequestConfig(request).configure(table) return render(request, 'asuzr/table.html', {'table': table, 'title': title, 'dateform': form}) +@log_view_call @login_required def production_table(request, order_id): order_costs = OrderCosts.objects.filter(order=order_id) @@ -279,7 +284,7 @@ def production_table_add_item(request, order_id): form.save() return redirect(production_table, order_id = order_id) - +@log_view_call @login_required def prod_plan_view(request): curr_date = datetime.strptime(request.GET.get('date', date.today().strftime('%d.%m.%Y')), '%d.%m.%Y') diff --git a/record/settings.py b/record/settings.py index 481e302..7d9d4aa 100644 --- a/record/settings.py +++ b/record/settings.py @@ -78,10 +78,11 @@ TIME_ZONE = 'Asia/Yekaterinburg' USE_I18N = True -USE_L10N = True +USE_L10N = False USE_TZ = True +DATE_FORMAT = 'd/m/Y' # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.6/howto/static-files/