;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Apenas uma escola municipal de São Paulo abrirá em 7 de outubro

Apenas uma das cerca de 4 mil escolas municipais de SP abrirá em 7 de outubro - divulgação
Apenas uma das cerca de 4 mil escolas municipais de SP abrirá em 7 de outubro Imagem: divulgação

Ana Carla Bermúdez

Do UOL, em São Paulo

05/10/2020 17h27

Apenas uma das cerca de 4 mil escolas da rede municipal de São Paulo abrirá as portas no próximo dia 7 de outubro, data em que fica autorizada a retomada de atividades extracurriculares presenciais em escolas públicas e particulares na cidade.

A informação foi confirmada pela Secretaria Municipal de Educação. O nome da unidade não foi informado.

Neste momento de retomada, a reabertura das escolas é opcional e a decisão fica a cargo das próprias unidades de ensino. Além disso, a ida dos alunos às atividades presenciais não é obrigatória.

Secretário já falou em baixa adesão

A baixa adesão das escolas da rede municipal à possibilidade de reabertura em 7 de outubro já era esperada pelo secretário municipal de Educação, Bruno Caetano. Em entrevista à GloboNews, na manhã de hoje, Caetano afirmou ser "claro" que "nesse primeiro momento uma parte muito pequena vai voltar [às atividades presenciais]".

As escolas da rede municipal terão uma segunda fase para adesão ao oferecimento de atividades extracurriculares ainda em outubro, no dia 19. Caetano disse esperar que, nesta segunda etapa, o número de escolas reabertas seja maior.

Nas escolas da rede estadual localizadas na cidade de São Paulo, a adesão ao oferecimento de atividades extracurriculares em outubro também é baixa. Segundo a Secretaria Estadual de Educação, cerca de 100 das 1.100 escolas da rede informaram que pretendem receber alunos no dia 7 de outubro —um percentual de aproximadamente 9%.

Ainda não há um levantamento do número de escolas particulares que devem reabrir esta semana na capital paulista. Sindicatos que representam os donos e as mantenedoras destes colégios têm afirmado que a maioria sinalizou que irá abrir. No entanto, cada escola particular deve submeter um protocolo para a retomada à Prefeitura e receber uma aprovação antes de ter a reabertura autorizada.

A relação do número de colégios particulares que receberam o aval da Prefeitura ainda não foi informada pela Secretaria Municipal de Educação.

Protocolo sanitário deve ser cumprido

Uma instrução normativa publicada pela Prefeitura no dia 26 de agosto detalha as regras que devem ser seguidas para este retorno facultativo em outubro.

Nas escolas da rede municipal, os alunos poderão ser recebidos apenas duas vezes na semana e por no máximo duas horas em cada dia. Não há limite para a rede privada.

Todos os colégios, no entanto, ficam obrigados a receber apenas 20% dos alunos em cada turno. As escolas particulares devem submeter um plano de retorno à Prefeitura e receber uma autorização antes de voltarem a funcionar.

As regras da istração municipal são complementares às estabelecidades pelo governo de São Paulo para o retorno das atividades nas escolas públicas e particulares de todo o estado.