This makes sure that for each proposal kind, we have the right
Permission records created.
It also makes sure we have the corresponding Section, ProposalKind,
and ProposalSection records, and even the Conference record for the
current year.
Along the way it has to clean up some miscoding around kind &
section slugs and names. The assumption through here is that the
slugs are the unchanging parts of each proposal kind, while names
could change.
Additionally, a number of tests no longer need to create some
of these records in setup() because they'll already exist, which
might even speed up the tests slightly.
This might seem like overkill, but it's been an ongoing problem.
It's also set up to only run at the end of running migrations, so
there shouldn't be any overhead.
This makes sure that for each proposal kind, we have the right Permission records created.
It also makes sure we have the corresponding Section, ProposalKind, and ProposalSection records, and even the Conference record for the current year.
Along the way it has to clean up some miscoding around kind & section slugs and names. The assumption through here is that the slugs are the unchanging parts of each proposal kind, while names could change.
Additionally, a number of tests no longer need to create some of these records in setup() because they'll already exist, which might even speed up the tests slightly.
This might seem like overkill, but it's been an ongoing problem. It's also set up to only run at the end of running migrations, so there shouldn't be any overhead.