Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Sunday, July 19
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Sports»Uganda seeks CAF approval to use newly-built stadium for AFCON 2027 qualifiers
    Sports

    Uganda seeks CAF approval to use newly-built stadium for AFCON 2027 qualifiers

    Johnson BenguruBy Johnson BenguruJuly 17, 2026No Comments8 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Uganda seeks CAF approval to use newly-built stadium for AFCON 2027 qualifiers
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 23

    Uganda seeks CAF approval to use newly-built stadium for AFCON 2027 qualifiers

    Hoima City Stadium. (Photo: FUFA)

    Listen to article

    2 min listen
    Audio reading is not supported on this browser.
    Ready

    Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

    <img src="https://absafricatv.com/wp-content/uploads/2026/07/IMG-20260414-WA0046.jpg” alt=””>

    Talanta Stadium cost rises to Sh45.85 billion as fresh audit raises procurement concerns

    Erick Kariuki

     · 

    1 week agoRead nextOpens a fresh page.

    Peter Ogwang, Uganda’s state minister for sports, told Xinhua that the request was made because Mandela National Stadium in Kampala is still undergoing renovation.

    Uganda has formally asked the Confederation of African Football (CAF) to allow the newly-built Hoima City Stadium to host its matches in the 2027 CAF Africa Cup of Nations (AFCON) qualifiers, a government official said on Thursday.
    Peter Ogwang, Uganda’s state minister for sports, told Xinhua that the request was made because Mandela National Stadium in Kampala is still undergoing renovation.
    “We are begging CAF to allow us to use the Hoima City Stadium. Although we are co-hosts of AFCON 2027, we are in the tournament as hosts who still have to play in the qualifiers,” Ogwang explained.

    More To Read

    • Talanta Stadium cost rises to Sh45.85 billion as fresh audit raises procurement concerns
    • Afraha Stadium set for major transformation as Kenya accelerates 2027 AFCON preparations
    • CAF opens bidding for 2028, 2032 and 2036 AFCON tournaments
    • President Yoweri Museveni backs single East African visa for 2027 AFCON
    • From Pipeline to MLS history: How Lawrence Olum became Kenya’s quiet football pioneer
    • How the new Ngong Road flyover is fueling growth at Dagoretti Corner

    Uganda has been drawn in Group H alongside Tunisia, Libya and Botswana in the qualifying campaign, which begins in September. The Uganda Cranes will open their campaign away to Tunisia on Sept. 21 before hosting Libya on October 6.
    “We are still working hard to make sure that the renovation is complete in time. But we have engaged CAF and written to be allowed to host our qualifier matches at the Hoima City Stadium,” Ogwang added.
    The minister said the government is also pushing contractors to complete the reconstruction of Mandela National Stadium, commonly known as Namboole, as well as a terminal in Hoima to facilitate flights to the city.

    Latest Stories

    • Explainer: Why stress makes you crave comfort food
    • African states urged to strengthen support for continental human rights court
    • Suspected Somali pirates seize tanker off Yemen’s Hadramawt coast
    • Kenya could unlock Sh3.1 trillion economic gains through care infrastructure investment – study

    Ogwang said Uganda is fully aware of CAF’s stadium requirements for hosting international matches and has explained the country’s circumstances in its request to the continental football governing body.
    Uganda, Kenya and Tanzania will jointly host the 2027 CAF Africa Cup of Nations from June 19 to July 17.

    Other Topics To Read

    Top Stories Today

    • Kenya could unlock Sh3.1 trillion economic gains through care infrastructure investment – study
    • Explainer: Why stress makes you crave comfort food
    • African states urged to strengthen support for continental human rights court
    • Suspected Somali pirates seize tanker off Yemen’s Hadramawt coast
    • Lawyers announce nationwide court boycotts on July 22
    • Uganda suspends school trips after Kapchorwa bus crash kills 20 pupils

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    African states urged to strengthen support for continental human rights court

    African states urged to strengthen support for continental human rights courtAfrica
    |Bashir Mbuthia
    |1 hour ago
    Cherargei seeks probe on county revenue systems over leakages despite automationNews
    |Rachael Mutabasi
    |13 hours ago
    Uganda seeks CAF approval to use newly-built stadium for AFCON 2027 qualifiersSports
    |XINHUA
    |38 minutes ago
    Explainer: Why stress makes you crave comfort foodLifestyle
    |Margaret Wanjiru
    |54 minutes ago

    High Court clears construction of 52km road through Aberdare National Park

    High Court clears construction of 52km road through Aberdare National ParkNews
    |Carolyne Kubwa
    |7 hours ago
    Morocco back Ouahbi until 2030 as Atlas Lions shift focus to home World CupNews
    |Erick Kariuki
    |9 hours ago

    Widow recounts Sh5,200 transfer minutes before Ong’ondo Were was killed

    Widow recounts Sh5,200 transfer minutes before Ong’ondo Were was killedNews
    |Carolyne Kubwa
    |10 hours ago
    CECAFA Kagame Cup will prepare Tusker for CAF Confederation Cup challenge, says MetteSports
    |Erick Kariuki
    |8 hours ago
    Lawyers announce nationwide court boycotts on July 22News
    |Bashir Mbuthia
    |2 hours ago

    Suspected Somali pirates seize tanker off Yemen’s Hadramawt coast

    Suspected Somali pirates seize tanker off Yemen’s Hadramawt coastSomalia
    |Bashir Mbuthia
    |1 hour ago

    Approval newlybuilt seeks stadium Uganda
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Johnson Benguru
    • Website

    Related Posts

    FIFA World Cup final: Kerala govt announces holiday for schools on Monday

    July 19, 2026

    New Black Queens assistant coach, Pierre Persson ready to elevate team’s play

    July 19, 2026

    How 10 African teams fared at 2026 FIFA World Cup

    July 19, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    IEC urges South Africans to register before final voter registration weekend

    July 19, 2026

    Spain and Argentina’s World Cup trophy count before 2026 final

    July 19, 2026

    NRBC Bank CEO highlights cashless ecosystem for financial inclusion

    July 19, 2026

    The ‘2 pizza’ days are over. Here’s what everyone in business and tech is saying about team size.

    July 19, 2026

    National HIV Prevention Day: ANSACA Sustains Momentum in the Fight Against HIV in Anambra

    July 19, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    IEC urges South Africans to register before final voter registration weekend

    Spain and Argentina’s World Cup trophy count before 2026 final

    NRBC Bank CEO highlights cashless ecosystem for financial inclusion

    Most Popular

    The ‘2 pizza’ days are over. Here’s what everyone in business and tech is saying about team size.

    National HIV Prevention Day: ANSACA Sustains Momentum in the Fight Against HIV in Anambra

    Violation of MoU proves Trump’s signature worthless: Iran’s supreme leader amid new US strikes

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.