Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Saturday, July 4
    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»Breaking News»Visa Oshwal closes early for midterm break as probe into pupil’s death intensifies
    Breaking News

    Visa Oshwal closes early for midterm break as probe into pupil’s death intensifies

    Nouman mBy Nouman mJuly 4, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Visa Oshwal closes early for midterm break as probe into pupil’s death intensifies
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 15

    Visa Oshwal closes early for midterm break as probe into pupil’s death intensifies

    Visa Oshwal closes early for midterm break as probe into pupil’s death intensifies

    Ilyaas Abdikarim Ali Mohamud, 11, whose body was found in a school’s swimming pool. (Handout)

    Read this story aloud

    Listen to the clean text version of this article

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

    Ilyaas Abdikarim Ali Mohamud who went missing on Tuesday at around 2 pm was found dead in the school’s swimming pool on Wednesday

    Visa Oshwal Primary School in Parklands, Nairobi, has closed early for the midterm break amid a probe into the mysterious death of an 11-year-old pupil.
    In a statement on Thursday, the school announced the mid-term break will start on February 22 and run until March 4, “to allow staff, teachers and learners an ample opportunity to mourn and heal”.
    Ilyaas Abdikarim Ali Mohamud who went missing on Tuesday at around 2 pm was found dead in the school’s swimming pool on Wednesday. He was buried on Thursday at Lang’ata Cemetery.
    Following this, the school said it opted for an early midterm break to ensure that the learners could mourn Ilyaas even as the family demanded justice.
    “Throughout this period, we encourage you to engage your child/children in discussions about their feelings related to this loss. We understand that grief affects everyone differently, so please do not hesitate to reach out if you need guidance on how best to help your child cope with these emotions,” the school said in a memo addressed to parents.
    In an interview withThe Eastleigh Voice, his uncle, Ali Adan, who has called for a probe into the death said he had received conflicting information from the school regarding Ilyaas’ whereabouts.

    Latest Stories

    • Report records 83 harassment incidents against Christians in Israel over three months
    • Clean mobility gains ground in trucks and buses, but fossil fuels still dominate at 94 per cent – report
    • Weekly new Ebola cases reach highest level since outbreak began: WHO
    • Over 1,000 Sudanese return home from Egypt under ongoing repatriation programme

    “The class teacher claimed that the boy had gone to the toilet at around 3 pm and did not come back. The swimming pool guard, on the other hand, said Ilyaas’s class didn’t have a swimming session on the fateful day. The school gave me conflicting reports,” he said.
    Ali said he found other pupils swimming but no one informed him of Ilyaas’s whereabouts. “I went back to the school again and nobody told me of his whereabouts.”
    Ali, who had come to pick up the deceased at 4 pm, said he stayed at the school until midnight before they headed to the police station where they were told to wait until 24 hours before they could file a report.
    “I went to the school in the morning but I couldn’t find him. I later went to the police station before contacting the DCI officers who went to the school. I was later informed of my nephew’s death at 1 pm on Wednesday,” he said.
    Omar Hussein, the Secretary-General of Eastleigh Business District Association (EBDA) and one of the people who spearheaded the search for Ilyaas accused the school of negligence and failing to inform the family of his missing.
    “The child disappeared during a class hour at 2:45 pm, why did the class teacher not start the search immediately? Why was a grade 2 pupil missing for hours with no concern whatsoever from the school?” he posed.
    Omar also questioned why there was no guard at the swimming pool when the pupil was apparently swimming contrary to the normal schedule.
    “There was no swimming program for the pupils on that day but the school claimed to have found his body after 20 hours,” he added.
    The family together with their lawyer Danstan Omari are on a course to seek justice for Ilyaas’s death.

    Other Topics To Read

    Top Stories Today

    • Weekly new Ebola cases reach highest level since outbreak began: WHO
    • Report records 83 harassment incidents against Christians in Israel over three months
    • Clean mobility gains ground in trucks and buses, but fossil fuels still dominate at 94 per cent – report
    • Over 1,000 Sudanese return home from Egypt under ongoing repatriation programme
    • Somalia intelligence agency kills Al-Shabaab mortar unit leader in Basra operation
    • Court declares Ruaraka School land public, rules Sh1.5 billion payout illegal

    `;
    }

    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

    Rwanda to use Kenya's fuel storage under new import deal
    Rwanda to use Kenya’s fuel storage under new import dealBusiness
    |The New Times
    |1 day ago
    Junior Starlets edge closer to FIFA U-17 Women's World Cup after beating South Africa
    Junior Starlets edge closer to FIFA U-17 Women’s World Cup after beating South AfricaFootball
    |Erick Kariuki
    |2 hours ago
    Pope Leo XIV shines spotlight on Mediterranean migration crisis
    Pope Leo XIV shines spotlight on Mediterranean migration crisisWorld
    |Mary Wambui
    |4 hours ago
    Report records 83 harassment incidents against Christians in Israel over three months
    Report records 83 harassment incidents against Christians in Israel over three monthsMiddle-East
    |Bashir Mbuthia
    |28 minutes ago
    Over 1,000 Sudanese return home from Egypt under ongoing repatriation programme
    Over 1,000 Sudanese return home from Egypt under ongoing repatriation programmeSouth Sudan
    |Bashir Mbuthia
    |1 hour ago
    UN agencies warn South Sudan funding shortfall pushes millions toward acute hunger
    UN agencies warn South Sudan funding shortfall pushes millions toward acute hungerRegional
    |XINHUA
    |13 hours ago

    Somalia intelligence agency kills Al-Shabaab mortar unit leader in Basra operationSomalia
    |Bashir Mbuthia
    |2 hours ago
    Families of Ethiopians on Saudi death row gripped by fear as executions loom
    Families of Ethiopians on Saudi death row gripped by fear as executions loomRegional
    |Addis Standard
    |8 hours ago
    Colombia beats Ghana to complete World Cup round of 16 lineup
    Colombia beats Ghana to complete World Cup round of 16 lineupSports
    |XINHUA
    |13 hours ago
    Diplomatic row erupts as South Africa, Ghana spar over migrant’s death
    Diplomatic row erupts as South Africa, Ghana spar over migrant’s deathWorld
    |DW News
    |1 day ago

    Closes early midterm Oshwal visa
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Nouman m
    • Website

    Related Posts

    AI‑driven border surveillance is spreading across West Africa: What this means for migrants’ rights

    July 4, 2026

    South Africa poised for Showdown With Nigeria

    July 4, 2026

    South Africa 45-21 England: Springboks show muscle in seven

    July 4, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Senegal suspends non-essential travel for ministers as oil prices surge

    July 4, 2026

    The women deploying drones and data to protect Africa’s wildlife

    July 4, 2026

    Africa’s most powerful military inaugurates a new military HQ with a US

    July 4, 2026

    WAHO harmonises 58 health training curricula across West Africa

    July 4, 2026

    Law, Witnessing, and the ‘Grey Zone’

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

    Senegal suspends non-essential travel for ministers as oil prices surge

    Environment

    The women deploying drones and data to protect Africa’s wildlife

    Business

    Africa’s most powerful military inaugurates a new military HQ with a US

    Most Popular

    Health

    WAHO harmonises 58 health training curricula across West Africa

    Legal

    Law, Witnessing, and the ‘Grey Zone’

    Lifestyle

    ‘Love and Marriage Remain Sacred Institutions’: Nollywood Veteran Emeka Ike Speaks Out

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