Эх сурвалжийг харах

Merge branch 'master' of ssh://192.168.100.6/repo/record

Anastasia 10 жил өмнө
parent
commit
a1acf76886
3 өөрчлөгдсөн 38 нэмэгдсэн , 2 устгасан
  1. 37 1
      asuzr/models.py
  2. 0 1
      asuzr/views.py
  3. 1 0
      record/settings.py

+ 37 - 1
asuzr/models.py

@@ -6,7 +6,11 @@ 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.admin.models import LogEntry
+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
+from django.dispatch import receiver
+from gadjo.requestprovider.signals import get_request
 
 #Изделия
 class Product(models.Model):
@@ -188,3 +192,35 @@ on_login_error = lambda **kwargs: auth_log(u'Ошибка входа польз
 user_logged_in.connect(on_login)
 user_logged_out.connect(on_logout)
 user_login_failed.connect(on_login_error)
+
+def construct_log_entry(**kwargs):
+    instance = kwargs['instance']
+    content_type = ContentType.objects.get_for_model(instance)
+    user = User.objects.get(username = get_request().META['USER'])
+    log_entry = {}
+    log_entry['user'] = user
+    log_entry['object_repr'] = str(instance)
+    log_entry['content_type'] = content_type 
+    log_entry['object_id'] = instance.id
+    return log_entry
+
+@receiver(post_save)
+def after_save(*args, **kwargs):
+    instance = kwargs['instance']
+    if isinstance(instance, LogEntry): return
+    log_entry = construct_log_entry(**kwargs)
+    created = kwargs['created']
+    log_entry['action_flag'] = ADDITION if created else CHANGE
+    entry = LogEntry(**log_entry)
+    entry.save()
+
+@receiver(post_delete)
+def after_delete(*args, **kwargs):
+    log_entry = construct_log_entry(**kwargs)
+    log_entry['action_flag'] = DELETION
+    entry = LogEntry(**log_entry)
+    entry.save() 
+
+@receiver(post_delete, sender=Sketch)
+def sketch_delete(sender, instance, **kwargs):
+    instance.sketch_file.delete(False)

+ 0 - 1
asuzr/views.py

@@ -228,7 +228,6 @@ def delete_sketch(request):
   pk = request.GET.get('pk', -1)
   sketch = get_object_or_404(Sketch, pk = pk)
   order_id = sketch.order.pk
-  sketch.sketch_file.delete(save = False)
   sketch.delete()
   return redirect(sketches, order_id = order_id)
 

+ 1 - 0
record/settings.py

@@ -52,6 +52,7 @@ MIDDLEWARE_CLASSES = (
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'gadjo.requestprovider.middleware.RequestProvider',
 )
 
 ROOT_URLCONF = 'record.urls'