This seems a bit complex for what it seems to do (and took a few minutes to parse).

If the `btn-link` is hidden via CSS and the class is just called 'active" (or 'selected') then I think `onRender` could simplify to:

    onRender: () ->
      model = @model.dereferencePointer?() or @model

      @$el.toggleClass('active', model.get('selected'))

      # if the user hasn't set the state yet make sure the active file is visible
      if not @model.expanded
        hasChild = @model.hasChild (child) ->
          child = child.dereferencePointer?() or child
          return child.get('selected')

        # FIXME: Making `.expanded` be a Backbone attribute would allow the ToC to automatically expand
        @model.expanded = hasChild

      # Add DnD options to content
      EnableDnD.enableContentDnD(@model, @$el.find('> .editor-node-body > *[data-media-type]'))

      if @model.getParent?()
        EnableDnD.enableDropAfter(@model, @model.getParent(), @$el.find('> .editor-drop-zone-after'))