'Rate a page asynchronously and return updated community data.'

@web.expose
@web.require_login('rate    items')
@web.json
def rate_async(self, trans, id, rating):

    page = self.get_page(trans, id, check_ownership=False, check_accessible=True)
    if (not page):
        return trans.show_error_message('The    specified    page    does    not    exist.')
    self.rate_item(trans.sa_session, trans.get_user(), page, rating)
    return self.get_ave_item_rating_data(trans.sa_session, page)
