code: function editDeleted(objId, req, res, next) {
    models.Deleted.findById(objId).then(function(obj) {
      if (!obj) {
        return next(); // not found
      }
      obj.setPrinciple(req.user);
      obj.ensure('view');
      var deletedModel = getModelFromId(obj.deletedId);
      var refs = [];
      var foreignKeys = {};
      addRefs(deletedModel.schema, refs, foreignKeys);
      // fetch it again with refs populated
      return runQuery(models.Deleted, refs, {_id: objId}, null, 'object.').then(function(docs) {
        obj = docs && docs[0];
        var restored = new deletedModel();
        restored.set(obj.object);
        restored.setPrinciple(req.user);
        restored.ensure('view');
        utils.resolvePromises(foreignKeys).then(function(foreignKeys) {
          render({deleteId: objId, creating: true, foreignKeys:foreignKeys},
                  deletedModel, restored, req, res, next);
        }, next);
      });
    }, next);
  }
docs: XXX revert to async version