code: def create_version_model(self, task, releasetype, descriptor):
          
          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
docs: 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