def _create_loop_from_dict(self, d): """ Takes a json_dict of "loop" type Returns a GroupedSection """ d_copy = d.copy() children = d_copy.pop(u"children", []) columns = d_copy.pop(u"columns", []) result = GroupedSection(**d_copy) # columns is a left over from when this was # create_table_from_dict, I will need to clean this up for column_dict in columns: # If this is a none option for a select all that apply # question then we should skip adding it to the result if column_dict[u"name"] == "none": continue column = GroupedSection(**column_dict) for child in children: question_dict = self._name_and_label_substitutions( child, column_dict) question = self.create_survey_element_from_dict(question_dict) column.add_child(question) result.add_child(column) if result.name != u"": return result # TODO: Verify that nothing breaks if this returns a list return result.children