Skip to content

Commit 1b9c3a5

Browse files
brylieBrylie Christopher Oxley
authored andcommitted
Add next and previous record diffs
Closes #797 Added next and previous record diffs for consistency
1 parent 8215eb9 commit 1b9c3a5

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

simple_history/models.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,18 @@ def get_next_record(self):
423423
.first()
424424
)
425425

426+
def get_next_record_diff(self):
427+
"""
428+
Get the difference between this and the next record. `None` of no next record.
429+
"""
430+
431+
next_record = self.get_prev_record()
432+
433+
if next_record is not None:
434+
return self.diff_against(previous_record)
435+
436+
return None
437+
426438
def get_prev_record(self):
427439
"""
428440
Get the previous history record for the instance. `None` if first.
@@ -434,6 +446,18 @@ def get_prev_record(self):
434446
.last()
435447
)
436448

449+
def get_prev_record_diff(self):
450+
"""
451+
Get the difference between this and the previous record. `None` if no previous record.
452+
"""
453+
454+
previous_record = self.get_prev_record()
455+
456+
if previous_record is not None:
457+
return self.diff_against(previous_record)
458+
459+
return None
460+
437461
def get_default_history_user(instance):
438462
"""
439463
Returns the user specified by `get_user` method for manually creating
@@ -455,7 +479,9 @@ def get_default_history_user(instance):
455479
"instance": property(get_instance),
456480
"instance_type": model,
457481
"next_record": property(get_next_record),
482+
"next_record_diff": property(get_next_record_diff),
458483
"prev_record": property(get_prev_record),
484+
"prev_record_diff": property(get_prev_record_diff),
459485
"revert_url": revert_url,
460486
"__str__": lambda self: "{} as of {}".format(
461487
self.history_object, self.history_date

0 commit comments

Comments
 (0)