Force addition of HTSUser object if someone is creating an auth_users object
authorDiane Trout <diane@caltech.edu>
Wed, 16 Sep 2009 21:36:44 +0000 (21:36 +0000)
committerDiane Trout <diane@caltech.edu>
Wed, 16 Sep 2009 21:36:44 +0000 (21:36 +0000)
htsworkflow/frontend/samples/models.py

index 38c1863bb84e806b7ffdbbd93054420cad4b09b7..749c82eee4cb9e99aceafb783fa6241cf942091e 100644 (file)
@@ -1,6 +1,8 @@
 import urlparse
 from django.db import models
 from django.contrib.auth.models import User, UserManager
+from django.db.models.signals import pre_save, post_save
+from django.db import connection
 from htsworkflow.frontend import settings
 from htsworkflow.frontend.reports.libinfopar import *
 
@@ -272,3 +274,15 @@ class HTSUser(User):
 
     def admin_url(self):
         return '/admin/%s/%s/%d' % (self._meta.app_label, self._meta.module_name, self.id)
+    
+def HTSUserInsertID(sender, instance, **kwargs):
+    """
+    Force addition of HTSUsers when someone just modifies the auth_user object
+    """
+    u = HTSUser.objects.filter(pk=instance.id)
+    if len(u) == 0:
+        cursor = connection.cursor()
+        cursor.execute('INSERT INTO samples_htsuser (user_ptr_id) VALUES (%s);' % (instance.id,))
+        cursor.close()
+    
+post_save.connect(HTSUserInsertID, sender=User)