Great, a few thoughts.
safe_hasattr is generally better than hasattr because it swallows less exceptions.
Doing a count() query might be ok if we were to then only read *some* milestones, but as the page shows today, my understanding is we'll always read all milestones - so the change to listify and use len() makes sense to me - but it might be worth a small comment saying that this is what goes on to aid future selves.
Great, a few thoughts.
safe_hasattr is generally better than hasattr because it swallows less exceptions.
Doing a count() query might be ok if we were to then only read *some* milestones, but as the page shows today, my understanding is we'll always read all milestones - so the change to listify and use len() makes sense to me - but it might be worth a small comment saying that this is what goes on to aid future selves.