How can I change a task's Status based on the Status of all of its Dependent tasks

I would like to change the status of a task from “Blocked by Dependencies” to “Ready to Start” based on if all the assigned dependent tasks have the status “Done”.

I would want to use this on subitem tasks as well.

Also, if I could auto-force a task’s status to “Blocked by Dependencies” based on assigned dependent tasks not being “Done”, well that would just be icing on the cake.