You have it correct, with one caveat for the DR
The DR election is based on interface priority first.
Priority is configured on the interface in the range of 0 to 255, with a higher number being better and a zero basically causing the router to not participate in the election on that interface. The default interface priority is 1.
If the interface priority is the same for all competing routers, then the highest router ID wins.
The router id is selected one of three ways
1) via the router-id command as a part of OSPF configuration
2) the highest addressed loopback interface, if the router-id command is not configured
3) the highest configured interface address, if there are no loopback interfaces configured.
The router id is chosen by ospf at the point in time where you configure your first network statement, so if you are going to use the router-id command, it should be the first command you enter after going into router configuration mode for OSPF.
If you leave the router-id command out and/or want to change the router id, you have to set the configuration and then restart the OSPF process, either by saving your configuration and rebooting the router (ouch) or issuing the clear ip ospf process command.
The loopback or physical interfaces do not have to be configured for OSPF to be considered for the router id; that is there does not have to be a network statement that includes that particular interface's network or subnet.