code: def view_asset(self, asset):
          
          log.debug('Viewing asset %s', asset.name)
          self.cur_asset = None
          self.pages_tabw.setCurrentIndex(5)
  
          name = asset.name
          prj = asset.project.name
          atype = asset.atype.name
          desc = asset.description
          self.asset_name_le.setText(name)
          self.asset_prj_le.setText(prj)
          self.asset_atype_le.setText(atype)
          self.asset_desc_pte.setPlainText(desc)
  
          assetsrootdata = treemodel.ListItemData(["Name", "Description"])
          assetsrootitem = treemodel.TreeItem(assetsrootdata)
          self.asset_asset_model = treemodel.TreeModel(assetsrootitem)
          self.asset_asset_treev.setModel(self.asset_asset_model)
          atypes = {}
          assets = asset.assets.all()
          for a in assets:
              atype = a.atype
              atypeitem = atypes.get(atype)
              if not atypeitem:
                  atypedata = djitemdata.AtypeItemData(atype)
                  atypeitem = treemodel.TreeItem(atypedata, assetsrootitem)
                  atypes[atype] = atypeitem
              assetdata = djitemdata.AssetItemData(a)
              treemodel.TreeItem(assetdata, atypeitem)
  
          tasksrootdata = treemodel.ListItemData(["Name", "Short"])
          tasksrootitem = treemodel.TreeItem(tasksrootdata)
          self.asset_task_model = treemodel.TreeModel(tasksrootitem)
          self.asset_task_tablev.setModel(self.asset_task_model)
          tasks = asset.tasks.all()
          for t in tasks:
              tdata = djitemdata.TaskItemData(t)
              treemodel.TreeItem(tdata, tasksrootitem)
  
          self.cur_asset = asset
docs: View the given asset
  
          :param asset: the asset to view
          :type asset: :class:`jukeboxcore.djadapter.models.Asset`
          :returns: None
          :rtype: None
          :raises: None