Queries the database for objects updated since timestamp or version

        Arguments:

        timestamp <DateTime=None|int=None> if specified return all objects modified since
        that specified time. If integer is submitted it is treated like a unix timestamp

        version <int=None> if specified return all objects with a version greater
        then the one specified

        deleted <bool=False> if true include soft-deleted objects in the result

        Either timestamp or version needs to be provided

def since(self, timestamp=None, version=None, deleted=False):
        """
        Queries the database for objects updated since timestamp or version

        Arguments:

        timestamp <DateTime=None|int=None> if specified return all objects modified since
        that specified time. If integer is submitted it is treated like a unix timestamp

        version <int=None> if specified return all objects with a version greater
        then the one specified

        deleted <bool=False> if true include soft-deleted objects in the result

        Either timestamp or version needs to be provided
        """

        qset = self

        if timestamp is not None:

            if isinstance(timestamp, numbers.Real):
                timestamp = datetime.datetime.fromtimestamp(timestamp)

            qset = qset.filter(
                models.Q(created__gt=timestamp) |
                models.Q(updated__gt=timestamp)
            )

        if version is not None:

            qset = qset.filter(version__gt=version)

        if not deleted:

            qset = qset.undeleted()

        return qset