mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-03-17 04:10:24 +00:00
remove previous_status from StatusField public API
I may be missing the use case, but this seems too ephemeral to be useful (only exists on same instance after a save, can't rely on it being there in general). If it's just an implementation detail for StatusModifiedField, it doesn't need to be tested in public API for StatusField.
This commit is contained in:
parent
fecda79f5c
commit
c43b1ba99d
2 changed files with 4 additions and 20 deletions
|
|
@ -42,6 +42,7 @@ def _previous_status(model_instance, attname, add):
|
|||
return None
|
||||
return getattr(current, attname, None)
|
||||
|
||||
|
||||
class StatusField(models.CharField):
|
||||
"""
|
||||
A CharField that has set status choices by default.
|
||||
|
|
@ -54,17 +55,12 @@ class StatusField(models.CharField):
|
|||
def contribute_to_class(self, cls, name):
|
||||
if not cls._meta.abstract:
|
||||
assert hasattr(cls, 'STATUS'), \
|
||||
"The model '%s' doesn't have status choices." % cls.__name__
|
||||
"To use StatusField, the model '%s' must have a STATUS choices attribute." \
|
||||
% cls.__name__
|
||||
setattr(self, '_choices', cls.STATUS)
|
||||
setattr(self, 'default', tuple(cls.STATUS)[0][0]) # sets first as default
|
||||
super(StatusField, self).contribute_to_class(cls, name)
|
||||
|
||||
def pre_save(self, model_instance, add):
|
||||
previous = _previous_status(model_instance, 'get_%s_display' % self.attname, add)
|
||||
if previous:
|
||||
previous = previous()
|
||||
setattr(model_instance, 'previous_status', previous)
|
||||
return super(StatusField, self).pre_save(model_instance, add)
|
||||
|
||||
class StatusModifiedField(models.DateTimeField):
|
||||
|
||||
|
|
|
|||
|
|
@ -179,13 +179,7 @@ class StatusModelTests(TestCase):
|
|||
t1.save()
|
||||
self.assert_(t1.status_date > date_active_again)
|
||||
|
||||
def testPreviousConditon(self):
|
||||
status = self.model.objects.create()
|
||||
self.assertEquals(status.previous_status, None)
|
||||
status.status = status.STATUS.on_hold
|
||||
status.save()
|
||||
self.assertEquals(status.previous_status, status.STATUS.active)
|
||||
|
||||
|
||||
class Status2ModelTests(StatusModelTests):
|
||||
def setUp(self):
|
||||
self.model = Status2
|
||||
|
|
@ -206,12 +200,6 @@ class Status2ModelTests(StatusModelTests):
|
|||
t1.save()
|
||||
self.assert_(t1.status_date > date_active_again)
|
||||
|
||||
def testPreviousConditon(self):
|
||||
status = self.model.objects.create()
|
||||
self.assertEquals(status.previous_status, None)
|
||||
status.status = status.STATUS[2][0]
|
||||
status.save()
|
||||
self.assertEquals(status.previous_status, status.STATUS[0][0])
|
||||
|
||||
class QueryManagerTests(TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue