'Convenience method to check that a question is taken.
Additionally, if ``self.taken_until`` is in the past, this will reset
the database fields to expire the setting.'

@property
def is_taken(self):

    if (self.taken_by is None):
        assert (self.taken_until is None)
        return False
    assert (self.taken_until is not None)
    if (self.taken_until < datetime.now()):
        self.taken_by = None
        self.taken_until = None
        self.save()
        return False
    return True
