Source code for swimlane.core.fields.history
from .base import CursorField, FieldCursor, ReadOnly
[docs]class RevisionCursor(FieldCursor):
"""An iterable object that automatically lazy retrieves and caches history data for a record from API"""
def __init__(self, *args, **kwargs):
super(RevisionCursor, self).__init__(*args, **kwargs)
self.__retrieved = False
def _evaluate(self):
"""Lazily retrieves, caches, and returns the list of record _revisions"""
if not self.__retrieved:
self._elements = self._retrieve_revisions()
self.__retrieved = True
return super(RevisionCursor, self)._evaluate()
def _retrieve_revisions(self):
"""Populate RecordRevision instances."""
return self._record.revisions.get_all()
[docs]class HistoryField(ReadOnly, CursorField):
field_type = 'Core.Models.Fields.History.HistoryField, Core'
cursor_class = RevisionCursor
bulk_modify_support = False