mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
parent
96f2f3d93e
commit
31db99497a
3 changed files with 24 additions and 10 deletions
|
|
@ -69,7 +69,7 @@ def get_field_value(obj, field):
|
|||
# to its naive form before we can accuratly compare them for changes.
|
||||
try:
|
||||
value = field.to_python(getattr(obj, field.name, None))
|
||||
if value is not None and settings.USE_TZ:
|
||||
if value is not None and settings.USE_TZ and not timezone.is_naive(value):
|
||||
value = timezone.make_naive(value, timezone=timezone.utc)
|
||||
except ObjectDoesNotExist:
|
||||
value = field.default if field.default is not NOT_PROVIDED else None
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ class DateTimeFieldModel(models.Model):
|
|||
timestamp = models.DateTimeField()
|
||||
date = models.DateField()
|
||||
time = models.TimeField()
|
||||
naive_dt = models.DateTimeField(null=True, blank=True)
|
||||
|
||||
history = AuditlogHistoryField()
|
||||
|
||||
|
|
|
|||
|
|
@ -269,12 +269,13 @@ class DateTimeFieldModelTest(TestCase):
|
|||
"""Tests if DateTimeField changes are recognised correctly"""
|
||||
|
||||
utc_plus_one = timezone.get_fixed_timezone(datetime.timedelta(hours=1))
|
||||
now = timezone.now()
|
||||
|
||||
def test_model_with_same_time(self):
|
||||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -292,7 +293,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -308,7 +309,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -324,7 +325,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -340,7 +341,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -356,7 +357,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 12, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.count() == 1, msg="There is one log entry")
|
||||
|
||||
|
|
@ -372,7 +373,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 15, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.latest().changes_display_dict["timestamp"][1] == \
|
||||
dateformat.format(timestamp, settings.DATETIME_FORMAT),
|
||||
|
|
@ -398,7 +399,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 15, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.latest().changes_display_dict["date"][1] == \
|
||||
dateformat.format(date, settings.DATE_FORMAT),
|
||||
|
|
@ -423,7 +424,7 @@ class DateTimeFieldModelTest(TestCase):
|
|||
timestamp = datetime.datetime(2017, 1, 10, 15, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
self.assertTrue(dtm.history.latest().changes_display_dict["time"][1] == \
|
||||
dateformat.format(time, settings.TIME_FORMAT),
|
||||
|
|
@ -444,6 +445,17 @@ class DateTimeFieldModelTest(TestCase):
|
|||
msg=("The time should be formatted according to Django's settings for"
|
||||
" USE_L10N is True with a different LANGUAGE_CODE."))
|
||||
|
||||
def test_update_naive_dt(self):
|
||||
timestamp = datetime.datetime(2017, 1, 10, 15, 0, tzinfo=timezone.utc)
|
||||
date = datetime.date(2017, 1, 10)
|
||||
time = datetime.time(12, 0)
|
||||
dtm = DateTimeFieldModel(label='DateTimeField model', timestamp=timestamp, date=date, time=time, naive_dt=self.now)
|
||||
dtm.save()
|
||||
|
||||
# Change with naive field doesnt raise error
|
||||
dtm.naive_dt = timezone.make_naive(timezone.now(), timezone=timezone.utc)
|
||||
dtm.save()
|
||||
|
||||
|
||||
class UnregisterTest(TestCase):
|
||||
def setUp(self):
|
||||
|
|
@ -647,3 +659,4 @@ class AdminPanelTest(TestCase):
|
|||
assert res.status_code == 200
|
||||
res = self.client.get("/admin/auditlog/logentry/{}/history/".format(log_pk))
|
||||
assert res.status_code == 200
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue