`is_active` is only ever called if `is_viewable` evaluates to true, so this check is unnecessary.  I should make this clearer somehow, but at the moment I'm not sure it's preferable to duplicate visibility logic in is_active.