code: def create_shot_model(self, ):
          
          rootdata = treemodel.ListItemData(['Name'])
          rootitem = treemodel.TreeItem(rootdata)
          prjs = djadapter.projects.all()
          for prj in prjs:
              prjdata = djitemdata.ProjectItemData(prj)
              prjitem = treemodel.TreeItem(prjdata, rootitem)
              for seq in prj.sequence_set.all():
                  seqdata = djitemdata.SequenceItemData(seq)
                  seqitem = treemodel.TreeItem(seqdata, prjitem)
                  for shot in seq.shot_set.all():
                      shotdata = djitemdata.ShotItemData(shot)
                      shotitem = treemodel.TreeItem(shotdata, seqitem)
                      for typ in self.refobjinter.get_available_types_for_scene(shot):
                          typdata = treemodel.ListItemData([typ])
                          treemodel.TreeItem(typdata, shotitem)
  
          return treemodel.TreeModel(rootitem)
docs: Return a treemodel with the levels: project, sequence, shot and reftrack type
  
          :returns: a treemodel
          :rtype: :class:`jukeboxcore.gui.treemodel.TreeModel`
          :raises: None