def create_shot_model(self, ):
        """Return a treemodel with the levels: project, sequence, shot and reftrack type

        :returns: a treemodel
        :rtype: :class:`jukeboxcore.gui.treemodel.TreeModel`
        :raises: None
        """
        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)