'Overrides the from_json method to de-serialize the CourseTab objects from a json-like representation.'

def from_json(self, values):

    self.upgrade_tabs(values)
    self.validate_tabs(values)
    tabs = []
    for tab_dict in values:
        tab = CourseTab.from_json(tab_dict)
        if tab:
            tabs.append(tab)
    return tabs
