             row.noExpand = true
         browser: false
 
-    events:
-      'submit form': 'onFormSubmit'
-
+    ##
+    # Renders the template and sets the @$el html
     render: ->
       @$el.html @template()
       super
 
+    ##
+    # Creates date pickers and context search instances after render
     filter: ->
       @$('.dateField').datetime_field()
       @$('.contextSearch').contextSearch @contextSearchOptions
 
+    ##
+    # Form submit handler, converts the form into a JavaScript object and calls
+    # the `@save` method. Also handles some shared display concerns.
     onFormSubmit: (event) ->
       event.preventDefault()
       $form = $ event.target

  'jquery.disableWhileLoading'
], ({View}, _, $, Assignment, template, ContextSearch) ->

  class BaseItemView extends View

    contextSearchOptions:
      fakeInputWidth: '100%'
      contexts: ENV.CONTEXTS

      dfd.fail => @trigger 'saveFail'

    ##
    # Sub-classes should implement their own save method
    # that returns a deferred object, used in `@onFormSubmit`
    save: -> @model.save()

