             v = (x for x in v when matches(x))
         v.sort (a,b) ->
             return misc.cmp(a.path.toLowerCase(), b.path.toLowerCase())
-        return {assignments:v, num_omitted:num_omitted}
+
+        # Deleted assignments
+        w = (x for x in v when x.deleted)
+        num_deleted = w.length
+        v = (x for x in v when not x.deleted)
+        if @state.show_deleted  # but show at the end...
+            v = v.concat(w)
+
+        return {assignments:v, num_omitted:num_omitted, num_deleted:num_deleted}
 
     render_assignments: (assignments) ->
         for x in assignments

###
TODO:

- [ ] (0:45?) (0:37) delete student; show deleted students
- [ ] (0:45?) delete assignment; show deleted assignments
- [ ] (1:00?) help page -- integrate info
- [ ] (1:00?) changing title/description needs to change it for all projects
- [ ] (1:00?) clean up after flux/react when closing the editor

    delete_assignment: ->
        @props.flux.getActions(@props.name).delete_assignment(@props.assignment)

    undelete_assignment: ->
        @props.flux.getActions(@props.name).undelete_assignment(@props.assignment)

    render_delete_button: ->
        if @props.assignment.get('deleted')
            <Button onClick={@undelete_assignment}>
                <Icon name="trash-o" /> Undelete
            </Button>
        else
            <Button onClick={@delete_assignment}>
                <Icon name="trash" /> Delete
            </Button>

    render_summary_line: ->
        <Row style={entry_style}>
            <Col md=4>
                <h5>
                    <a href='' onClick={(e)=>e.preventDefault();@setState(more:true)}>{@props.assignment.get('path')}</a>
                    {<b> (deleted)</b> if @props.assignment.get('deleted')}
                </h5>
            </Col>
        </Row>

