'This method returns a form_list based on the initial form list but
checks if there is a condition method/value in the condition_list.
If an entry exists in the condition list, it will call/read the value
and respect the result. (True means add the form, False means ignore
the form)
The form_list is always generated on the fly because condition methods
could use data from other (maybe previous forms).'

def get_form_list(self):

    form_list = SortedDict()
    for (form_key, form_class) in six.iteritems(self.form_list):
        condition = self.condition_dict.get(form_key, True)
        if callable(condition):
            condition = condition(self)
        if condition:
            form_list[form_key] = form_class
    return form_list
