Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Wednesday, July 29
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • Sports
    • Politics
    • More
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Politics»How UDA campaign team in Ol Kalou failed to connect with voters leading to landslide defeat- Shollei
    Politics

    How UDA campaign team in Ol Kalou failed to connect with voters leading to landslide defeat- Shollei

    Chukwu GodloveBy Chukwu GodloveJuly 28, 2026No Comments11 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    How UDA campaign team in Ol Kalou failed to connect with voters leading to landslide defeat- Shollei
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 16
    Deputy National Assembly Speaker Gladys Boss Shollei. (Photo: Parliament of Kenya)

    Listen to article

    5 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.

    NCIC investigating Gachagua, Duale, Ruku and five other leaders over alleged hate speech

    Lucy Mumbi

     · 

    1 hour agoRead nextOpens a fresh page.

    Shollei said she had watched a television expose’ by a local media station that showed people being given money and pushed around during the campaign, arguing that such actions did not create genuine connections with voters.

    National Assembly Deputy Speaker Gladys Boss Shollei has attributed the United Democratic Alliance (UDA) defeat in the Ol Kalou by-election to the party’s campaign approach, saying the loss was not a rejection of President William Ruto or the party.

    Speaking on Tuesday during the Women Achievers Conference and Awards 2026, Shollei said the manner in which UDA conducted its campaign contributed to the defeat, arguing that the use of money and other inducements during campaigns did not help the party’s chances.

    She added that greater involvement of women in managing campaigns could also have improved the party’s chances of winning the seat.

    More To Read

    • NCIC investigating Gachagua, Duale, Ruku and five other leaders over alleged hate speech
    • IEBC begins search for new CEO to replace Marjan Hussein Marjan, applications close August 11
    • Ruto faces running mate dilemma as ODM demands DP slot in fresh challenge to Kindiki
    • Parliament faces race against time to pass critical election and budget laws before 2027 polls
    • Governor Irungu Kang’ata quits Ruto’s UDA party, joins Gachagua’s DCP
    • Petitioner wants CS Rebecca Miano investigated over alleged use of State resources in Ol Kalou campaigns

    “I watched the Ol-Kalou by-election, and my political party lost. But again, when you look at it, the reason why we lost is the manner in which we conducted the campaign. It’s not that people are against UDA. It’s the way we conducted the campaign. It was not a referendum against Ruto,” she said.

    Her remarks came after Democracy for Citizens Party (DCP) candidate Sammy Kamau Ngotho won the Ol Kalou by-election, defeating UDA candidate Samuel Muchina Nyagah. Ngotho, who was backed by former Deputy President Rigathi Gachagua, received 35,440 votes, while Nyagah garnered 5,450 votes.

    Latest Stories

    • Ghana exits four-year debt distress as IMF upgrades risk rating to moderate
    • Apple reseller Salute iWorld dismisses receivership claims as false, defamatory
    • Angola seeks AU backing for Josefa Sacko’s bid to lead UN Food agency
    • Myanmar approves death sentence for cyberscam offences

    “I remember watching an expose’ by NTV, and the way I saw they were giving money and pushing three people; those people don’t even know each other,” she said.

    She emphasised that campaigns should focus on issues instead of displays of power or wealth.

    “People don’t remember what you gave them or what you did for them. They remember how you made them feel, because it’s the humiliation of it, and that’s why I say women run better campaigns… It’s not about ego; it’s about the issue. You just want to convince someone to vote for you. You’re not dealing with the chest-thumping,” Shollei said.

    The Ol Kalou by-election was seen as a political contest between President Ruto’s UDA and Gachagua’s DCP, with both parties seeking influence in Nyandarua County and the wider Mt Kenya region.

    UDA backed Samuel Muchina Nyagah, while DCP supported Sammy Kamau Ngotho, who won the seat. Other candidates included Edwin Muchiri (PNU), Stephen Wanyoike (NLP), Rachael Njoroge (Independent), Edward Mwaniki (KMM), Abdifatah Hussein (FPK), Timothy Kamau (PRM), and Moses Njoroge Macharia (Jubilee).

    IEBC had registered 73,480 voters across 144 polling stations in Ol Kalou Constituency. However, the election was disrupted by violence, with hooded and masked gunmen firing shots and throwing tear gas near the commercial centre and AC Primary School polling station. Several journalists were also injured and their equipment temporarily confiscated.

    Former Executive Director at Amnesty International Kenya  Irũngũ Houghton said the by-election raised concerns beyond the political outcome, warning about the state of Kenya’s electoral process.

    Houghton said elections must reflect the will of voters and remain free from bribery, intimidation, violence, improper influence and misuse of public re

    He added that IEBC must remain independent and impartial while ensuring all candidates, political parties, public officials and security agencies follow electoral rules.

    “While elections produce both winners and losers, the real loser in Ol Kalou was not UDA’s candidate but the State itself. Unless Kenya radically reforms its electoral environment, the by-election offers yet another warning of how state conduct is undermining our electoral democracy. What lessons should we draw, and what must change before the 2027 General Election?” he wrote.

    “With these trends, it is hard to call Ol Kalou a success. The people may have prevailed, but should any election be this corrupt or violent? After two months of documented abuses and repeated warnings, promises to “identify, investigate and arrest” those responsible ring hollow. Until we see arrests, prosecutions, convictions and fines, electoral criminals remain free to steal future elections.”

    Other Topics To Read

    Top Stories Today

    • NCIC investigating Gachagua, Duale, Ruku and five other leaders over alleged hate speech
    • Ghana exits four-year debt distress as IMF upgrades risk rating to moderate
    • How UDA campaign team in Ol Kalou failed to connect with voters leading to landslide defeat- Shollei
    • Apple reseller Salute iWorld dismisses receivership claims as false, defamatory
    • Myanmar approves death sentence for cyberscam offences
    • High Court declares shisha ban unconstitutional, stops enforcement of 2017 rules

    `;
    }

    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

    High Court declares shisha ban unconstitutional, stops enforcement of 2017 rules

    High Court declares shisha ban unconstitutional, stops enforcement of 2017 rulesNews
    |Carolyne Kubwa
    |1 hour ago

    Kangema probation officer freed on Sh400,000 bail as court summons co-accused magistrate after missing plea

    Kangema probation officer freed on Sh400,000 bail as court summons co-accused magistrate after missing pleaNews
    |Lucy Mumbi
    |2 hours ago

    Apple reseller Salute iWorld dismisses receivership claims as false, defamatory

    Apple reseller Salute iWorld dismisses receivership claims as false, defamatoryNews
    |Mary Wambui
    |34 minutes ago
    Waqf Commission selection enters next stage as panel shortlists 35 candidatesNews
    |Lucy Mumbi
    |4 hours ago

    Court battle deepens over proposed Nairobi–Nakuru highway toll charges as KeNHA challenges COFEK suit

    Court battle deepens over proposed Nairobi–Nakuru highway toll charges as KeNHA challenges COFEK suitNews
    |Carolyne Kubwa
    |16 hours ago

    <img src="https://publish.eastleighvoice.co.ke/mugera_lock/uploads/2026/07/eastleighvoice-co-ke-2026-july-28-090505.webp" alt="Lopes Cabral's stunner against Argentina wins Goal of 2026 World Cup” loading=”lazy”>

    Lopes Cabral’s stunner against Argentina wins Goal of 2026 World CupSports
    |XINHUA
    |3 hours ago
    NCIC investigating Gachagua, Duale, Ruku and five other leaders over alleged hate speechNews
    |Lucy Mumbi
    |1 hour ago
    Sugar production rises to 348,143 tonnes in five months as reforms boost Kenya’s industryNews
    |Lucy Mumbi
    |2 hours ago

    Myanmar approves death sentence for cyberscam offences

    Myanmar approves death sentence for cyberscam offencesNews
    |Mary Wambui
    |1 hour ago

    High Court to rule on loud matatu music after Nairobi lawyer files lawsuit

    High Court to rule on loud matatu music after Nairobi lawyer files lawsuitNews
    |Carolyne Kubwa
    |7 hours ago

    campaign connect failed Kalou team
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Chukwu Godlove

    Related Posts

    Don’t miss your chance to register to vote, IEC urges

    July 29, 2026

    Mamabolo urges South Africans to register as IEC enters final countdown to Local Government Elections

    July 29, 2026

    Government announces State burial for late Ambassador James Victor Gbeho

    July 29, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    MOFA to protest South African ETA system designation

    July 29, 2026

    4 out of 5 American toddler foods are ultra-processed, research says – National

    July 29, 2026

    OneChronos Enters Europe

    July 29, 2026

    Clariant appoints Gapuma Group as Well Service Additives distributor across West Africa

    July 29, 2026

    Why Kenya’s Special Funds Industry Holds Lessons For Africa 

    July 29, 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

    Travel

    MOFA to protest South African ETA system designation

    World News

    4 out of 5 American toddler foods are ultra-processed, research says – National

    Africa News

    OneChronos Enters Europe

    Most Popular

    Features

    Clariant appoints Gapuma Group as Well Service Additives distributor across West Africa

    Trending

    Why Kenya’s Special Funds Industry Holds Lessons For Africa 

    Breaking News

    FG, South Africa hold talks over fresh xenophobic attacks

    © 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.