code: function collectionResultPost (context) {
      // if there are synchronous views then execute any post functions
      if (this.hasCollectionSynchronous) {
          _.each(this.modelViews.collection.synchronous, modelView => {
              // if view does not have post function do nothing
              if (!modelView.post) {
                  return
              }
              // execute post function and merge result to context
              _.merge(context, modelView.post(context))
          })
      }
      // if there are asynchronous views then execute any post functions
      if (this.hasCollectionAsynchronous) {
          return Promise.all(_.map(this.modelViews.collection.asynchronous, modelView => {
              // if view does not have post function do nothing
              if (!modelView.post) {
                  return
              }
              // execute post function
              return modelView.post({
                  context: context,
                  session: this.query.session,
              }).then(ctx => {
                  _.merge(context, ctx)
              })
          }))
          // resolve with context
          .then(() => context)
      }
      // otherwise resolve with context
      else {
          return Promise.resolve(context)
      }
  }
docs: @function collectionResultPost
  
  execute any collection post functions and return results
  
  @param {object} context
  
  @returns {Promise}