def get_extra(request):
    """Return information about a module / collection that cannot be cached."""
    settings = get_current_registry().settings
    exports_dirs = settings['exports-directories'].split()
    args = request.matchdict
    if args['page_ident_hash']:
        context_id, context_version = split_ident_hash(args['ident_hash'])
        try:
            id, version = split_ident_hash(args['page_ident_hash'])
        except IdentHashShortId as e:
            id = get_uuid(e.id)
            version = e.version
        except IdentHashMissingVersion as e:
            # Ideally we would find the page version
            # that is in the book instead of latest
            id = e.id
            version = get_latest_version(e.id)
    else:
        context_id = context_version = None
        id, version = split_ident_hash(args['ident_hash'])
    results = {}
    with db_connect() as db_connection:
        with db_connection.cursor() as cursor:
            results['downloads'] = \
                list(get_export_allowable_types(cursor, exports_dirs,
                                                id, version))
            results['isLatest'] = is_latest(id, version)
            results['latestVersion'] = get_latest_version(id)
            results['headVersion'] = get_head_version(id)
            results['canPublish'] = get_module_can_publish(cursor, id)
            results['state'] = get_state(cursor, id, version)
            results['books'] = get_books_containing_page(cursor, id, version,
                                                         context_id,
                                                         context_version)
            formatAuthors(results['books'])

    resp = request.response
    resp.content_type = 'application/json'
    resp.body = json.dumps(results, default=json_serial)
    return resp
Return information about a module / collection that cannot be cached.