Để sử dụng toàn bộ tiện ích nâng cao của Hệ Thống Pháp Luật vui lòng lựa chọn và đăng ký gói cước.
| BỘ GIÁO DỤC VÀ ĐÀO TẠO | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
| Số: 1254/BGDĐT-GDTX | Hà Nội, ngày 24 tháng 03 năm 2023 |
Kính gửi: Các sở Giáo dục và Đào tạoThực hiện Chương trình công tác năm 2023, Bộ Giáo dục và Đào tạo (GDĐT) tổ chức đánh giá tình hình thực hiện Thông tư số 04/2014/TT-BGDĐT ngày 28/02/2014 của Bộ trưởng Bộ GDĐT về “Quy định quản lý hoạt động giáo dục kỹ năng sống và hoạt động giáo dục ngoài giờ chính khóa” (Thông tư 04).
Bộ GDĐT đề nghị các sở GDĐT tổ chức đánh giá và xây dựng Báo cáo kết quả tình hình thực hiện Thông tư 04 trong thời gian qua, đặc biệt từ năm học 2020-2021 đến nay. Đồng thời, đề xuất các giải pháp trong thời gian tới để triển khai có hiệu quả việc quản lý hoạt động giáo dục kỹ năng sống và hoạt động giáo dục ngoài giờ chính khóa (Báo cáo theo Đề cương, Phụ đính kèm).
Báo cáo của các sở GDĐT gửi về Bộ GDĐT, số 35 - Đại Cồ Việt, Hai Bà Trưng, Hà Nội (qua Vụ Giáo dục thường xuyên, đ/c Nguyễn Đức Thành, email: ndthanh@moet.gov.vn, điện thoại: 0979645775) trước ngày 20/4/2023.
|
| KT. BỘ TRƯỞNG |
ĐỀ CƯƠNG BÁO CÁO
TÌNH HÌNH HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG VÀ HOẠT ĐỘNG GIÁO DỤC NGOÀI GIỜ CHÍNH KHÓA
(Ban hành kèm theo Công văn số 1254/BGDĐT-GDTX ngày 24 tháng 03 năm 2023 của Bộ Giáo dục và Đào tạo)
1. Việc quán triệt, triển khai thực hiện các văn bản chỉ đạo của cấp trên; việc ban hành văn bản chỉ đạo, hướng dẫn thực hiện có liên quan.
2. Kiểm tra, đánh giá tình hình thực hiện Thông tư 04.
II. Kết quả đạt được (theo các quy định, điều kiện, quản lý hoạt động của Thông tư 04)
1. Công tác quản lý hoạt động giáo dục kỹ năng sống và hoạt động giáo dục ngoài giờ chính khóa.
2. Cơ sở vật chất.
3. Giáo trình, tài liệu, nội dung bồi dưỡng, giảng dạy.
4. Đội ngũ quản lý, giáo viên, báo cáo viên, huấn luyện viên, nhân viên và học viên.
5. Kết quả hoạt động giáo dục kỹ năng sống và hoạt động giáo dục ngoài giờ chính khóa.
6. Việc công khai hoạt động các trung tâm.
(Kết quả đạt được có các minh chứng và số liệu kèm theo)
III. Đánh giá chung
1. Ưu điểm
2. Hạn chế.
3. Nguyên nhân của hạn chế.
III. Phương hướng triển khai trong thời gian tới
IV. Kiến nghị, đề xuất
1. Đối với địa phương.
2. Đối với Bộ GDĐT (Nêu rõ nội dung nào của Thông tư 04 cần điều chỉnh, sửa đổi, bổ sung để phù hợp với việc thực hiện Chương trình GDPT 2018).
PHỤ LỤC
SỐ LIỆU QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG VÀ HOẠT ĐỘNG GIÁO DỤC NGOÀI GIỜ CHÍNH KHÓA
(Ban hành kèm theo Công văn số 1254/BGDĐT-GDTX ngày 24 tháng 03 năm 2023 của Bộ Giáo dục và Đào tạo)
I. Văn bản chỉ đạo
| STT | Tên văn bản | Số văn bản | Ngày ban hành | Ghi chú |
| 1 |
|
|
|
|
| 2 |
|
|
|
|
| 3 |
|
|
|
|
II. Số liệu cơ sở giáo dục và đội ngũ cán bộ quản lý, giáo viên
| STT | Tên văn bản | Tổng số | Năm học 2020-2021 | Năm học 2021-2022 | Năm học 2022-2023 | Ghi chú |
| 1 | Cơ sở giáo dục có hoạt động giáo dục kỹ năng sống |
|
|
|
|
|
| Công lập |
|
|
|
|
| |
| Ngoài công lập, có vốn đầu tư trong nước |
|
|
|
|
| |
| Ngoài công lập, có vốn đầu tư nước ngoài |
|
|
|
|
| |
| 2 | Đội ngũ cán bộ quản lý, giáo viên, báo cáo viên, huấn luyện viên, nhân viên |
|
|
|
|
|
| Cán bộ quản lý |
|
|
|
|
| |
| Giáo viên, báo cáo viên, huấn luyện viên |
|
|
|
|
| |
| Nhân viên |
|
|
|
|
| |
| Người nước ngoài tham gia giảng dạy |
|
|
|
|
|
III. Số liệu học viên theo từng chương trình
| STT | Nội dung | Tổng số | Năm học 2020-2021 | Năm học 2021-2022 | Năm học 2022-2023 | ||||||
| Sinh viên | Học sinh | Đối tượng khác | Sinh viên | Học sinh | Đối tượng khác | Sinh viên | Học sinh | Đối tượng khác | |||
| 1 | Chương trình... |
|
|
|
|
|
|
|
|
|
|
| 2 | Chương trình... |
|
|
|
|
|
|
|
|
|
|
| 3 | Các chương trình khác |
|
|
|
|
|
|
|
|
|
|
|
| Tổng số |
|
|
|
|
|
|
|
|
|
|
lồng nhau (bên trong) hay không
const memberID = 0;
const vbID = 'f380fda242887a00916c5095d50f3bce';
// State management cho phân tích
let isAnalyzing = false; // Có đang phân tích không
let currentAnalyzingAddress = null; // Address đang được phân tích
let currentAnalyzingElement = null; // Element đang được phân tích
let currentAnalyzingBadge = null; // Badge của element đang phân tích
let isPanelOpen = false; // Panel phân tích có đang mở không
console.log('Tiện ích loaded - memberID:', memberID, 'vbID:', vbID);
function isInViewportAndTabNoiDung(element) {
const rect = element.getBoundingClientRect();
const buffer = 1500; // Buffer to preload content below the viewport (approx. 50+ lines)
const viewHeight = window.innerHeight || document.documentElement.clientHeight;
const isInViewport = rect.top < viewHeight + buffer && rect.bottom >= 0;
const isInTabNoiDung = $(element).closest('#tab_noi_dung_vb').length > 0;
return isInViewport && isInTabNoiDung;
}
function getAddress(element) {
const validTags = ['trichyeu', 'cancu', 'phan', 'chuong', 'muc', 'tieumuc', 'dieu', 'khoan', 'diem'];
const $parent = $(element).closest(validTags.join(','));
if (!$parent.length) {
return null;
}
let addr = $parent.attr('address');
if (!addr && $parent.prop('tagName').toLowerCase() === 'trichyeu') {
addr = 'trichyeu';
$parent.attr('address', addr);
}
return addr || null;
}
function processTnplClasses($element) {
const tnplKeysInLine = new Set(); // key = slug hoặc text (thường là slug)
$element.find('tnpl').each(function () {
const $tnpl = $(this);
const tnplSlug = ($tnpl.attr('slug') || '').trim().toLowerCase();
const tnplKey = tnplSlug || $tnpl.text().trim().toLowerCase();
// Đã xử lý trong cùng dòng => bỏ
if (tnplKeysInLine.has(tnplKey)) {
return;
}
tnplKeysInLine.add(tnplKey);
let tnplExists = false;
// Chỉ duyệt các tnpl đã được tô màu (class on)
$('tnpl.on').each(function () {
const $existingTnpl = $(this);
const existingSlug = ($existingTnpl.attr('slug') || '').trim().toLowerCase();
const existingKey = existingSlug || $existingTnpl.text().trim().toLowerCase();
if (
existingKey === tnplKey &&
isInViewportAndTabNoiDung($existingTnpl[0])
) {
tnplExists = true;
return false; // break each
}
});
if (!tnplExists) {
$tnpl.addClass('on');
}
});
}
function processQueue() {
while (pendingRequests < maxConcurrentRequests && requestQueue.length > 0) {
const task = requestQueue.shift();
pendingRequests++;
task()
.always(() => {
pendingRequests--;
processQueue();
});
}
}
function processVisibleParagraphs() {
try {
$('#tab_noi_dung_vb p:not([is-posted="1"])').each(function () {
let $element = $(this);
if (isInViewportAndTabNoiDung(this)) {
$element.attr('is-posted', '1');
$element.addClass('loading-content');
let p_innerHTML = $element.html();
let address = null;
if (cac_cau_hinh.loai_noi_dung.includes('docs')) {
address = getAddress($element);
}
const isSubP = $element.parents('p').length > 0;
if (isSubP && !allow_sub_p) {
$element.removeClass('loading-content');
return; // Không gửi nếu không cho phép
}
const postData = { p_content: p_innerHTML, cac_cau_hinh, address };
if (isSubP && allow_sub_p) {
postData.sub_p = 1;
}
requestQueue.push(() =>
$.ajax({
url: '//tnpl' + (Math.floor(Math.random() * 10) + 1) + '.hethongphapluat.com/tien-ich/tim.tien.ich.php',
type: 'POST',
data: postData,
success: function(response) {
$element.html(response);
processTnplClasses($element);
// Đợi CTTD và các tiện ích load xong rồi mới attach badge
if (memberID === 4 && typeof attachPhanTichBadge === 'function') {
setTimeout(function() {
// $element chính là thẻ p, kiểm tra và attach badge trực tiếp
const $parent = $element.closest('phan, chuong, muc, tieumuc, dieu, khoan, diem');
if ($parent.length > 0 && $parent.find('.badge-phan-tich[data-for="' + $parent.attr('address') + '"]').length === 0) {
const address = $parent.attr('address');
$element.attr('data-address', address);
// Lấy tên loại thẻ cho tooltip
const parentType = getParentTypeName($parent.prop('tagName').toLowerCase());
// Append badge VÀO PARENT (dieu, khoan,...) thay vì vào để tránh xung đột CTTD
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
// Xử lý các p con (nếu có sub-p)
attachPhanTichBadge($element);
}, 300); // Đợi 300ms để CTTD render xong
}
},
complete: function() {
$element.removeClass('loading-content');
}
})
);
processQueue();
}
});
} catch(e) {
console.error('Lỗi processVisibleParagraphs:', e);
}
}
$(window).on('scroll resize', function () {
processVisibleParagraphs();
});
console.log('Bắt đầu processVisibleParagraphs lần đầu...');
processVisibleParagraphs();
console.log('processVisibleParagraphs lần đầu hoàn thành');
// Chức năng phân tích điều luật (chỉ cho member_id = 4)
if (memberID === 4) {
// Modal cảnh báo
function showWarningModal(message) {
// Tạo modal nếu chưa có
if ($('#warningModal').length === 0) {
const modalHTML = `
' + message + '
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
}
});
}
// Helper: Escape HTML entities
function escapeHtml(text) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
}
// Helper: Convert Markdown to HTML (đơn giản)
function markdownToHtml(markdown) {
if (!markdown) return '';
let html = markdown;
// Headers
html = html.replace(/^### (.*$)/gim, ' ' + para.replace(/\n/g, ' Đang phân tích... Đang phân tích... Đang xóa cache và phân tích lại... Đang phân tích...$1
');
html = html.replace(/^## (.*$)/gim, '$1
');
html = html.replace(/^# (.*$)/gim, '$1
');
// Bold
html = html.replace(/\*\*(.*?)\*\*/g, '$1');
// Italic
html = html.replace(/\*(.*?)\*/g, '$1');
// Blockquote
html = html.replace(/^> (.*$)/gim, '$1
');
html = html.replace(/^> (.*$)/gim, '$1
');
// Lists (unordered)
html = html.replace(/^\- (.*$)/gim, '$1
');
// Lists (ordered)
html = html.replace(/^\d+\. (.*$)/gim, '
') + '' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
if (response.from_cache) {
html += ' Cache';
}
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
