A wizard displays a form view to the user, usually as a dialog window, with some fields to be filled in. These will then be used for the wizard logic.
This is implemented using the same model/view architecture as for regular views, but the supporting model is based on models.TransientModel instead of the models.Model.
This type of model also has a database representation and stores state there, but the data is expected to be useful only until the wizard completes its work. A scheduled job regularly cleans up the old data from wizard database tables.
The models/todo_wizard_model.py file will define the fields we need to interact with the user: the list of tasks to be updated, the user responsible, and the deadline date to ...