Neurolingua
commited on
Update templates/teacher.html
Browse files- templates/teacher.html +54 -49
templates/teacher.html
CHANGED
@@ -1016,7 +1016,7 @@
|
|
1016 |
.then(response => response.json())
|
1017 |
.then(data => {
|
1018 |
const reportDiv = document.createElement('div');
|
1019 |
-
reportDiv.innerHTML =
|
1020 |
studentExpandedInfo.appendChild(reportDiv);
|
1021 |
})
|
1022 |
.catch((error) => {
|
@@ -1043,11 +1043,11 @@
|
|
1043 |
const numberOfSubjects = parseInt(this.value);
|
1044 |
for (let i = 0; i < numberOfSubjects; i++) {
|
1045 |
const subjectLabel = document.createElement('label');
|
1046 |
-
subjectLabel.textContent = Subject ${i + 1}
|
1047 |
|
1048 |
const subjectInput = document.createElement('input');
|
1049 |
subjectInput.type = 'text';
|
1050 |
-
subjectInput.name = subject_${i + 1}
|
1051 |
subjectInput.required = true;
|
1052 |
|
1053 |
subjectsContainer.appendChild(subjectLabel);
|
@@ -1206,55 +1206,60 @@
|
|
1206 |
});
|
1207 |
|
1208 |
</script>
|
1209 |
-
<script>
|
1210 |
-
// Extract weekly performance data from the template
|
1211 |
-
const weeklyPerformanceData = JSON.parse('{{ teacher.weekly_class_performance|tojson|safe }}');
|
1212 |
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
text: 'Performance Score'
|
1242 |
-
},
|
1243 |
-
beginAtZero: true
|
1244 |
-
}
|
1245 |
-
}
|
1246 |
-
}
|
1247 |
-
});
|
1248 |
-
|
1249 |
-
function getRandomColor() {
|
1250 |
-
const letters = '0123456789ABCDEF';
|
1251 |
-
let color = '#';
|
1252 |
-
for (let i = 0; i < 6; i++) {
|
1253 |
-
color += letters[Math.floor(Math.random() * 16)];
|
1254 |
}
|
1255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1256 |
}
|
1257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1258 |
|
1259 |
|
1260 |
</body>
|
|
|
1016 |
.then(response => response.json())
|
1017 |
.then(data => {
|
1018 |
const reportDiv = document.createElement('div');
|
1019 |
+
reportDiv.innerHTML = `<h3>AI Generated Report</h3><p>${data.report}</p>`;
|
1020 |
studentExpandedInfo.appendChild(reportDiv);
|
1021 |
})
|
1022 |
.catch((error) => {
|
|
|
1043 |
const numberOfSubjects = parseInt(this.value);
|
1044 |
for (let i = 0; i < numberOfSubjects; i++) {
|
1045 |
const subjectLabel = document.createElement('label');
|
1046 |
+
subjectLabel.textContent = `Subject ${i + 1}:`;
|
1047 |
|
1048 |
const subjectInput = document.createElement('input');
|
1049 |
subjectInput.type = 'text';
|
1050 |
+
subjectInput.name = `subject_${i + 1}`;
|
1051 |
subjectInput.required = true;
|
1052 |
|
1053 |
subjectsContainer.appendChild(subjectLabel);
|
|
|
1206 |
});
|
1207 |
|
1208 |
</script>
|
|
|
|
|
|
|
1209 |
|
1210 |
+
|
1211 |
+
<script>
|
1212 |
+
// Extract weekly performance data from the template
|
1213 |
+
const weeklyPerformanceData = JSON.parse('{{ teacher.weekly_class_performance|tojson|safe }}');
|
1214 |
+
|
1215 |
+
// Prepare data for Chart.js
|
1216 |
+
const ctx = document.getElementById('performanceChart').getContext('2d');
|
1217 |
+
const labels = Object.keys(weeklyPerformanceData);
|
1218 |
+
const datasets = labels.map(label => ({
|
1219 |
+
label: label,
|
1220 |
+
data: weeklyPerformanceData[label],
|
1221 |
+
borderColor: getRandomColor(),
|
1222 |
+
fill: false
|
1223 |
+
}));
|
1224 |
+
|
1225 |
+
const performanceChart = new Chart(ctx, {
|
1226 |
+
type: 'line',
|
1227 |
+
data: {
|
1228 |
+
labels: Array.from({length: 7}, (_, i) => `Week ${i + 1}`),
|
1229 |
+
datasets: datasets
|
1230 |
+
},
|
1231 |
+
options: {
|
1232 |
+
responsive: true,
|
1233 |
+
scales: {
|
1234 |
+
x: {
|
1235 |
+
title: {
|
1236 |
+
display: true,
|
1237 |
+
text: 'Weeks'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1238 |
}
|
1239 |
+
},
|
1240 |
+
y: {
|
1241 |
+
title: {
|
1242 |
+
display: true,
|
1243 |
+
text: 'Performance Score'
|
1244 |
+
},
|
1245 |
+
beginAtZero: true
|
1246 |
}
|
1247 |
+
}
|
1248 |
+
}
|
1249 |
+
});
|
1250 |
+
|
1251 |
+
function getRandomColor() {
|
1252 |
+
const letters = '0123456789ABCDEF';
|
1253 |
+
let color = '#';
|
1254 |
+
for (let i = 0; i < 6; i++) {
|
1255 |
+
color += letters[Math.floor(Math.random() * 16)];
|
1256 |
+
}
|
1257 |
+
return color;
|
1258 |
+
}
|
1259 |
+
</script>
|
1260 |
+
|
1261 |
+
</body>
|
1262 |
+
</html>
|
1263 |
|
1264 |
|
1265 |
</body>
|