sites_affected_by() currently return the list of affected sites but in this case is enough know if at least one site is affected (my suggest is add a boolean argument to distinguish between the two cases and return early if the flag is True).