         return p.slice(0,i) + '.' + ext
 
     open_file : (path) ->
-        @props.redux.getProjectActions(@props.project_id).open_file(path:path,foreground:true)
+        @actions(project_id : @props.project_id).open_file(path:path,foreground:true)
 
     write_file : (path, content) ->
-        actions = @props.redux.getActions(@props.name)
+        actions = @actions(@props.name)
         id = actions.set_activity(desc:"Writing #{path}")
         salvus_client.write_text_file_to_project
             project_id : @props.project_id

        s = ReactDOM.findDOMNode(@refs.admin_input).value
        quotas = JSON.parse(s)
        console.log("admin upgrade '#{s}' -->", quotas)
        @props.redux.getActions(@props.name).admin_upgrade_all_student_projects(quotas)
        return false

    render_admin_upgrade: ->

        redux       : rtypes.object.isRequired
        name        : rtypes.string.isRequired
        path        : rtypes.string.isRequired
        project_id  : rtypes.string.isRequired
        settings    : rtypes.immutable.Map.isRequired
        project_map : rtypes.immutable.Map.isRequired

    getInitialState : ->
        delete_student_projects_confirm : false
