{"id":28873,"date":"2026-02-07T20:01:04","date_gmt":"2026-02-08T02:01:04","guid":{"rendered":"https:\/\/sionpuntarenas.com\/?page_id=28873"},"modified":"2026-02-24T07:07:49","modified_gmt":"2026-02-24T13:07:49","slug":"mis-calificaciones","status":"publish","type":"page","link":"https:\/\/sionpuntarenas.com\/?page_id=28873","title":{"rendered":"Mis Resultados"},"content":{"rendered":"\n<p>Aqu\u00ed se muestran, de forma resumida, las puntuaciones de los distintos trabajos que has entregado por medio de la plataforma <strong><a href=\"https:\/\/sionpuntarenas.com\"><em>sionpuntarenas.com.<\/em><\/a><\/strong><\/p>\n\n\n\n\n\r\n<div class=\"gte-mis-calificaciones\">\r\n    <div class=\"gte-card\">\r\n        <div class=\"gte-header-flex\">\r\n            <div class=\"gte-title-group\">\r\n                <h3 class=\"gte-title\">\ud83d\udcda Mis Calificaciones<\/h3>\r\n            <\/div>\r\n                    <\/div>\r\n        \r\n                    <div class=\"gte-message gte-message-warning\">\r\n                <p>\u26a0\ufe0f Para ver tus calificaciones, debes iniciar sesi\u00f3n.<\/p>\r\n                <a href=\"https:\/\/sionpuntarenas.com\/wp-login.php?redirect_to=https%3A%2F%2Fsionpuntarenas.com%2F%3Fpage_id%3D28873\" class=\"gte-btn gte-btn-primary\">\r\n                    Iniciar Sesi\u00f3n\r\n                <\/a>\r\n            <\/div>\r\n            <\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* Estilos espec\u00edficos para la tabla de calificaciones del estudiante *\/\r\n.gte-user-badge {\r\n    display: flex;\r\n    flex-direction: column;\r\n    text-align: right;\r\n    background: #f8fafc;\r\n    padding: 8px 16px;\r\n    border-radius: 12px;\r\n    border: 1px solid #e2e8f0;\r\n}\r\n\r\n.gte-loading-wrapper {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    padding: 3rem;\r\n}\r\n\r\n.gte-spinner {\r\n    width: 40px;\r\n    height: 40px;\r\n    border: 4px solid #f3f3f3;\r\n    border-top: 4px solid var(--gte-primary);\r\n    border-radius: 50%;\r\n    animation: gte-spin 1s linear infinite;\r\n    margin-bottom: 1rem;\r\n}\r\n\r\n@keyframes gte-spin {\r\n    0% { transform: rotate(0deg); }\r\n    100% { transform: rotate(360deg); }\r\n}\r\n\r\n.gte-table-modern {\r\n    width: 100%;\r\n    border-collapse: separate;\r\n    border-spacing: 0 8px;\r\n    margin-top: 1rem;\r\n}\r\n\r\n.gte-table-modern th {\r\n    padding: 12px 20px;\r\n    text-align: left;\r\n    color: #64748b;\r\n    font-size: 0.85rem;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.05em;\r\n    font-weight: 600;\r\n}\r\n\r\n.gte-table-modern tr.gte-row-item {\r\n    background: #ffffff;\r\n    transition: all 0.2s ease;\r\n    box-shadow: 0 1px 3px rgba(0,0,0,0.05);\r\n}\r\n\r\n.gte-table-modern tr.gte-row-item:hover {\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);\r\n    background: #f8fafc;\r\n}\r\n\r\n.gte-table-modern td {\r\n    padding: 20px;\r\n    background: white;\r\n    border-top: 1px solid #f1f5f9;\r\n    border-bottom: 1px solid #f1f5f9;\r\n}\r\n\r\n.gte-table-modern td:first-child {\r\n    border-left: 1px solid #f1f5f9;\r\n    border-top-left-radius: 12px;\r\n    border-bottom-left-radius: 12px;\r\n}\r\n\r\n.gte-table-modern td:last-child {\r\n    border-right: 1px solid #f1f5f9;\r\n    border-top-right-radius: 12px;\r\n    border-bottom-right-radius: 12px;\r\n}\r\n\r\n.gte-task-name {\r\n    font-weight: 700;\r\n    color: #1e293b;\r\n    display: block;\r\n    margin-bottom: 4px;\r\n}\r\n\r\n.gte-task-date {\r\n    font-size: 0.75rem;\r\n    color: #94a3b8;\r\n}\r\n\r\n.gte-points-total {\r\n    font-weight: 600;\r\n    color: #64748b;\r\n}\r\n\r\n.gte-points-obtained {\r\n    font-size: 1.25rem;\r\n    font-weight: 800;\r\n}\r\n\r\n.gte-points-obtained.aprobado {\r\n    color: #059669;\r\n}\r\n\r\n.gte-points-obtained.pendiente {\r\n    color: #d97706;\r\n}\r\n\r\n.gte-observation-text {\r\n    font-size: 0.9rem;\r\n    color: #475569;\r\n    line-height: 1.5;\r\n    background: #f1f5f9;\r\n    padding: 8px 12px;\r\n    border-radius: 8px;\r\n    border-left: 4px solid #cbd5e1;\r\n}\r\n\r\n.gte-no-obs {\r\n    color: #94a3b8;\r\n    font-style: italic;\r\n    font-size: 0.85rem;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n    .gte-table-modern, .gte-table-modern thead, .gte-table-modern tbody, .gte-table-modern th, .gte-table-modern td, .gte-table-modern tr {\r\n        display: block;\r\n    }\r\n    .gte-table-modern thead { display: none; }\r\n    .gte-table-modern tr { margin-bottom: 15px; }\r\n    .gte-table-modern td { \r\n        text-align: right; \r\n        padding-left: 50%; \r\n        position: relative;\r\n        border-radius: 0 !important;\r\n        border: none !important;\r\n        border-bottom: 1px solid #f1f5f9 !important;\r\n    }\r\n    .gte-table-modern td::before {\r\n        content: attr(data-label);\r\n        position: absolute;\r\n        left: 20px;\r\n        width: 45%;\r\n        text-align: left;\r\n        font-weight: 600;\r\n        text-transform: uppercase;\r\n        font-size: 0.7rem;\r\n        color: #64748b;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script>\r\njQuery(document).ready(function($) {\r\n    if ($('#gte-cal-lista-container').length > 0) {\r\n        $.ajax({\r\n            url: gteAjax.ajaxurl,\r\n            type: 'POST',\r\n            data: {\r\n                action: 'gte_get_mis_calificaciones',\r\n                nonce: gteAjax.nonce\r\n            },\r\n            success: function(response) {\r\n                const $container = $('#gte-cal-lista-container');\r\n                \r\n                if (response.success) {\r\n                    const trabajos = response.data.trabajos;\r\n                    if (trabajos.length === 0) {\r\n                        $container.html('<div class=\"gte-no-trabajos\"><p>\ud83d\udced No tienes trabajos enviados o calificados a\u00fan.<\/p><\/div>');\r\n                        return;\r\n                    }\r\n                    \r\n                    let html = '<div class=\"gte-table-responsive\">';\r\n                    html += '<table class=\"gte-table-modern\">';\r\n                    html += '<thead><tr>';\r\n                    html += '<th>Tarea \/ Actividad<\/th>';\r\n                    html += '<th style=\"text-align:center\">Puntos Totales<\/th>';\r\n                    html += '<th style=\"text-align:center\">Puntos Obtenidos<\/th>';\r\n                    html += '<th>Observaciones del Docente<\/th>';\r\n                    html += '<\/tr><\/thead>';\r\n                    html += '<tbody>';\r\n                    \r\n                    trabajos.forEach(function(trabajo) {\r\n                        const calif = trabajo.calificacion !== null ? Math.round(parseFloat(trabajo.calificacion)) : null;\r\n                        const total = Math.round(parseFloat(trabajo.puntos_maximos || 100));\r\n                        const fecha = new Date(trabajo.fecha_envio).toLocaleString(undefined, { \r\n                            day: 'numeric', \r\n                            month: 'short', \r\n                            year: 'numeric',\r\n                            hour: '2-digit',\r\n                            minute: '2-digit'\r\n                        });\r\n                        \r\n                        html += '<tr class=\"gte-row-item\">';\r\n                        \r\n                        \/\/ Tarea\r\n                        html += '<td data-label=\"Tarea\">';\r\n                        html += '<span class=\"gte-task-name\">' + (trabajo.asignacion_titulo || 'Sin t\u00edtulo') + '<\/span>';\r\n                        html += '<span class=\"gte-task-date\">\ud83d\udcc5 ' + fecha + '<\/span>';\r\n                        html += '<\/td>';\r\n                        \r\n                        \/\/ Puntos Totales\r\n                        html += '<td data-label=\"Puntos Totales\" style=\"text-align:center\">';\r\n                        html += '<span class=\"gte-points-total\">' + total + ' pts<\/span>';\r\n                        html += '<\/td>';\r\n                        \r\n                        \/\/ Puntos Obtenidos\r\n                        html += '<td data-label=\"Obtenidos\" style=\"text-align:center\">';\r\n                        if (trabajo.estado === 'calificado') {\r\n                            const statusClass = calif >= (total * 0.7) ? 'aprobado' : '';\r\n                            html += '<span class=\"gte-points-obtained ' + statusClass + '\">' + calif + ' pts<\/span>';\r\n                        } else {\r\n                            html += '<span class=\"gte-points-obtained pendiente\">\u23f3<\/span>';\r\n                            html += '<div style=\"font-size:0.65rem; color:#d97706; text-transform:uppercase; font-weight:700;\">Pendiente<\/div>';\r\n                        }\r\n                        html += '<\/td>';\r\n                        \r\n                        \/\/ Observaciones\r\n                        html += '<td data-label=\"Observaciones\">';\r\n                        if (trabajo.estado === 'calificado') {\r\n                            if (trabajo.comentario_profesor && trabajo.comentario_profesor.trim() !== '') {\r\n                                html += '<div class=\"gte-observation-text\">' + trabajo.comentario_profesor + '<\/div>';\r\n                            } else {\r\n                                html += '<span class=\"gte-no-obs\">Sin observaciones<\/span>';\r\n                            }\r\n                        } else {\r\n                            html += '<span class=\"gte-no-obs\">Esperando revisi\u00f3n...<\/span>';\r\n                        }\r\n                        html += '<\/td>';\r\n                        \r\n                        html += '<\/tr>';\r\n                    });\r\n                    \r\n                    html += '<\/tbody><\/table><\/div>';\r\n                    $container.html(html);\r\n                } else {\r\n                    $container.html('<div class=\"gte-message gte-message-error\"><p>' + (response.data.message || 'Error al cargar los datos') + '<\/p><\/div>');\r\n                }\r\n            },\r\n            error: function() {\r\n                $('#gte-cal-lista-container').html('<div class=\"gte-message gte-message-error\"><p>Error de conexi\u00f3n con el servidor.<\/p><\/div>');\r\n            }\r\n        });\r\n    }\r\n});\r\n<\/script>\r\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aqu\u00ed se muestran, de forma resumida, las puntuaciones de los distintos trabajos que has entregado por medio de la plataforma sionpuntarenas.com.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"saved_in_kubio":true,"footnotes":""},"class_list":["post-28873","page","type-page","status-publish","hentry"],"kubio_ai_page_context":{"short_desc":"","purpose":"general"},"_links":{"self":[{"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/pages\/28873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28873"}],"version-history":[{"count":4,"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/pages\/28873\/revisions"}],"predecessor-version":[{"id":29051,"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=\/wp\/v2\/pages\/28873\/revisions\/29051"}],"wp:attachment":[{"href":"https:\/\/sionpuntarenas.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}