Fix the n+1's on the timesheet view

Still about 200 queries on first-hit and 40s on revisits