Move set_created_field() to shared utils class

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2011-06-29 10:52:30 -05:00
parent 33b9bf44aa
commit 5e85c5ac9e
3 changed files with 15 additions and 18 deletions

View File

@ -2,6 +2,9 @@
import cPickle as pickle
except ImportError:
import pickle
from datetime import datetime
from django.core.cache import cache
from django.utils.hashcompat import md5_constructor
@ -81,4 +84,11 @@ def retrieve_latest(sender):
pass
return None
def set_created_field(sender, **kwargs):
'''This will set the 'created' field on any object to datetime.utcnow() if
it is unset. For use as a pre_save signal handler.'''
obj = kwargs['instance']
if hasattr(obj, 'created') and not obj.created:
obj.created = datetime.utcnow()
# vim: set ts=4 sw=4 et:

View File

@ -1,9 +1,9 @@
from datetime import datetime
from django.db import models
from django.db.models.signals import pre_save, post_save
from django.contrib.auth.models import User
from main.utils import set_created_field
class PackageRelation(models.Model):
'''
Represents maintainership (or interest) in a package by a given developer.
@ -112,12 +112,6 @@ def remove_inactive_maintainers(sender, instance, created, **kwargs):
type=PackageRelation.MAINTAINER)
maint_relations.delete()
def set_created_field(sender, **kwargs):
# We use this same callback for both Isos and Tests
obj = kwargs['instance']
if not obj.created:
obj.created = datetime.utcnow()
post_save.connect(remove_inactive_maintainers, sender=User,
dispatch_uid="packages.models")
pre_save.connect(set_created_field, sender=PackageRelation,

View File

@ -1,6 +1,7 @@
from datetime import datetime
from django.db import models
from django.db.models.signals import pre_save
from main.utils import set_created_field
class IsoOption(models.Model):
name = models.CharField(max_length=200)
@ -104,14 +105,6 @@ class Test(models.Model):
success = models.BooleanField()
comments = models.TextField(null=True, blank=True)
def set_created_field(sender, **kwargs):
# We use this same callback for both Isos and Tests
obj = kwargs['instance']
if not obj.created:
obj.created = datetime.utcnow()
from django.db.models.signals import pre_save
pre_save.connect(set_created_field, sender=Iso,
dispatch_uid="releng.models")
pre_save.connect(set_created_field, sender=Test,