       for course in courses
         course.newConcepts = _.difference(course.concepts, alreadyCoveredConcepts)
         alreadyCoveredConcepts = _.union(course.concepts, alreadyCoveredConcepts)
-        console.log course.campaignID, course.newConcepts
     accountManager: ->
       @accountManagerFullName = "#{@accountManager?.firstName} #{@accountManager?.lastName}"
+    dataReady: ->
+      console.log "Data ready!", @dataReady
     
   methods:
     submitEmail: (e) ->
-      $.ajax
-        type: 'GET',
-        url: '/db/user'
-        data: {email: @teacherEmail}
-        success: @fetchCompleteUser
-        error: (data) => noty text: 'Failed to find user by that email', type: 'error'
+      @fetchData().then =>
+        @dataReady = true
+    
+    fetchByEmail: ->
+      new Promise (accept, reject) =>
+        reject("No email provided!") if _.isEmpty(@teacherEmail)
+        $.ajax
+          type: 'GET',
+          url: '/db/user'
+          data: {email: @teacherEmail}
+          success: (data) => accept(data)
+          error: (data) =>
+            noty text: 'Failed to find user by that email', type: 'error'
+            reject(data)
 
     displayReport: (e) ->
       @fetchLinesOfCode().then @finishDisplayReport

  template: require('templates/admin/outcomes-report-view')()
  data: ->
    accountManager: me.toJSON()
    teacherEmail: 'robin+teacher@codecombat.com' # TODO: Don't hardcode this. And add get-by-email endpoint.
    # teacherEmail: '568e7f2552eea226005180b3' # TODO: Don't hardcode this. And add get-by-email endpoint.
    teacher: null
    teacherFullName: null
    accountManagerFullName: null

    startDate: null
    classrooms: null
    courses: null
    courseInstances: []
    dataReady: false
    isClassroomSelected: {}
    isCourseSelected: {}
    endDate: moment(new Date()).format('MMM D, YYYY')
    insightsMarkdown: ""
  computed:
    sessions: ->
      _.flatten(@classrooms.map (c) -> c.sessions)
    studentIDs: ->
      _.uniq _.flatten _.pluck(@classrooms, 'members')
    indexedSessions: ->
