code: def add_item(self, path, name, icon=None, url=None, order=None, permission=None, active_regex=None):
          if self.root_item is None:
              self.root_item = MenuItem('ROOT', 'ROOT')
          root_item = self.root_item
          current_path = ''
          for node in path.split('/')[:-1]:
              if not node:
                  continue
              current_path = '/' + '{}/{}'.format(current_path, node).strip('/')
              new_root = root_item.child_by_code(node)
              if not new_root:
                  new_root = MenuItem(current_path, name=str(node).capitalize())
                  root_item.add_child(new_root)
              root_item = new_root
          new_item = MenuItem(path, name, icon, url, order, permission, active_regex)
          current_item = root_item.child_by_code(path.split('/')[-1])
          if current_item:
              current_item.merge(new_item)
          else:
              root_item.add_child(new_item)