'The parent may just be a superclass for something like a
subprofile.  Get the first parent of a different type.'

def get_conceptual_parent(self):

    mtype = type(self)
    parent = self.get_parent()
    while (parent is not None):
        ptype = type(parent)
        if (mtype != ptype):
            self.conceptual_parent = parent
            return parent
        parent = parent.get_parent()
    return None
