#NomeTurmaFase DISCTemp.EneagramaArquétipo KolbNeed. 1ªHollandDataAções
📄 Relatório Individual

Gera o relatório completo em PDF de um respondente específico. Selecione o respondente na tabela e clique em "Ver perfil".

📦 CSV — Todos os Dados

Exporta todos os dados em formato CSV compatível com Excel. Ideal para análise em lote ou cruzamento com outros sistemas.

📊 Relatório de Turma

Gera um relatório HTML com o mapa de perfis de uma turma completa — ideal para devolutiva coletiva.

🎯 Selecionados

Exporta apenas os respondentes marcados na tabela de respondentes.

Turmas Cadastradas
⚠️ Restaurar Padrão

Restaura a lista de turmas para os valores padrão do sistema. Esta ação não pode ser desfeita.

🔗 Google Sheets — Fonte de Dados
URL de Exportação CSV
Planilha deve estar pública (somente leitura). ID atual: 1C8kfRIjc3caRCfCkIgFToudZJD6Ch_-_36JBW9Mr7ho
URL do Apps Script (Web App)
Gerada ao implantar o Apps Script como Web App com acesso público.
🔐 Acesso Admin
Senha de Acesso ao Painel
Armazenada localmente neste navegador. Para uso multi-dispositivo, configure via variável no código.
📋 Guia Rápido Apps Script
1. Abra a planilha → Extensões → Apps Script
2. Cole o conteúdo do arquivo APPS_SCRIPT.gs
3. Execute configurarCabecalhos() uma vez
4. Implantar → Nova implantação → Aplicativo da Web → Qualquer pessoa
5. Cole a URL gerada no campo acima e no arquivo index.html
6. Torne a planilha pública (somente leitura) e cole a URL de exportação CSV acima
🏆
Selecione uma turma
Escolha a turma e a rodada para lançar pontos
📋 Atividades Cadastradas
🏅 Níveis de Certificação
Use "∞" no máximo para o nível mais alto (ex: Top 1 por turma).
⚠️ Restaurar Padrão

Restaura as atividades e níveis do programa Impact Leader conforme configuração padrão.

function renderPontuacaoTable(){ const turma = document.getElementById('pts-turma')?.value; const rodada = document.getElementById('pts-rodada')?.value||'1'; const wrap = document.getElementById('pts-table-wrap'); if(!wrap) return; if(!turma){ wrap.innerHTML='
🎯
Selecione uma turma
'; return; } const participantes = allData.filter(r=>r.turma===turma); if(!participantes.length){ wrap.innerHTML='
👥
Nenhum respondente nesta turma
'; return; } const atividades = getAtividades(); const pontuacoes = getPontuacoes(); const discColors={D:'#F07030',I:'#F0C030',S:'#4A90D4',C:'#A878E0'}; const discNames={D:'Dominante',I:'Influente',S:'Estável',C:'Conformidade'}; // Build HTML using string concatenation to avoid nested template literal issues let html = '
'; html += ''; atividades.forEach(a=>{html+='';}); html += ''; html += ''; atividades.forEach(a=>{ const label=a.nome.split(' ').slice(0,2).join(' '); html+=''; }); html += ''; participantes.forEach(r=>{ const key=respKey(r); const rdData=(pontuacoes[key]||{})[rodada]||{}; const total=atividades.reduce((sum,a)=>sum+(rdData[a.id]?a.pts:0),0); const dc=discColors[r.disc_primario]||'#C9A84C'; const dn=(discNames[r.disc_primario]||r.disc_primario||'—').slice(0,3); const safeKey=key.replace(/[^a-zA-Z0-9]/g,'_'); html += ''; html += ''; html += ''; atividades.forEach(a=>{ const checked=rdData[a.id]?'checked':''; html+=''; }); html += ''; html += ''; }); html += '
ParticipanteDISC'+a.pts+'ptsTotal
Atividade →'+label+'
'+(r.nome||r.name||'—')+''+dn+''+total+'
'; html += '
Rodada '+rodada+' · '+participantes.length+' participante(s) · '+atividades.length+' atividade(s)
'; wrap.innerHTML = html; }