Create and return a new model that represents taskfiles for the given task, releasetpye and descriptor

        :param task: the task of the taskfiles
        :type task: :class:`djadapter.models.Task`
        :param releasetype: the releasetype
        :type releasetype: str
        :param descriptor: the descirptor
        :type descriptor: str|None
        :returns: the created tree model
        :rtype: :class:`jukeboxcore.gui.treemodel.TreeModel`
        :raises: None

def create_version_model(self, task, releasetype, descriptor):
        """Create and return a new model that represents taskfiles for the given task, releasetpye and descriptor

        :param task: the task of the taskfiles
        :type task: :class:`djadapter.models.Task`
        :param releasetype: the releasetype
        :type releasetype: str
        :param descriptor: the descirptor
        :type descriptor: str|None
        :returns: the created tree model
        :rtype: :class:`jukeboxcore.gui.treemodel.TreeModel`
        :raises: None
        """
        rootdata = treemodel.ListItemData(['Version', 'Releasetype', 'Path'])
        rootitem = treemodel.TreeItem(rootdata)
        for tf in task.taskfile_set.filter(releasetype=releasetype, descriptor=descriptor).order_by('-version'):
            tfdata = djitemdata.TaskFileItemData(tf)
            tfitem = treemodel.TreeItem(tfdata, rootitem)
            for note in tf.notes.all():
                notedata = djitemdata.NoteItemData(note)
                treemodel.TreeItem(notedata, tfitem)
        versionmodel = treemodel.TreeModel(rootitem)
        return versionmodel