update task log

This commit is contained in:
2026-07-18 12:17:10 +07:00
parent e9ef9f475b
commit 25d3995f9d
4 changed files with 81 additions and 9 deletions
+8
View File
@@ -0,0 +1,8 @@
"Mã Task","Sprint","Type","Component","Module/Page","Summary","AC","Deadline","Status","Note","Assignee"
"3155","","Task","Home","Hero Section","Chuyển vị trí tổ chức sang Hà Nội","Hiển thị đúng ""Hà Nội / Hanoi"" trên trang chủ và sponsor (cả Anh/Việt)","14/7/2026","hoàn thành","","Toàn"
"3155","","Task","Home","Partners Carousel","Bổ sung đối tác IEAS vào carousel","Logo IEAS hiển thị ở vị trí đầu tiên hàng 1 carousel","14/7/2026","hoàn thành","","Toàn"
"3155","","Task","Home","Agenda Section","Bổ sung hình đại diện của người phát biểu","Avatar hiển thị đối xứng theo timeline, căn giữa dọc với text mô tả, responsive trên mobile","14/7/2026","hoàn thành","","Toàn"
"3155","","Task","Home","Feedback Page","Generate QR Code trang feedback","Sinh 2 ảnh QR (local+prod) trỏ vào đúng URL. Lưu vào public/assets/img và 1 bản gửi qua email","14/7/2026","hoàn thành","","Toàn"
"3168","","Task","Home","Agenda Section","Cập nhật thông tin agenda, speaker","Cập nhật đúng thời gian biểu, bổ sung các bài phát biểu mới và hình ảnh đại diện của diễn giả (cả Anh/Việt)","18/7/2026","hoàn thành","","Toàn"
"3168","","Task","Home","Agenda Section","Khôi phục cấu trúc Agenda cũ (loại bỏ IEAS)","Gỡ bỏ các bài phát biểu của đối tác IEAS và đưa khung giờ sự kiện về 8:30 AM","18/7/2026","hoàn thành","","Toàn"
"3168","","Task","Home","Partners Carousel","Tạm ẩn logo đối tác IEAS khỏi carousel","Comment out logo IEAS, không hiển thị trên trang chủ","18/7/2026","hoàn thành","","Toàn"
1 Mã Task Sprint Type Component Module/Page Summary AC Deadline Status Note Assignee
2 3155 Task Home Hero Section Chuyển vị trí tổ chức sang Hà Nội Hiển thị đúng "Hà Nội / Hanoi" trên trang chủ và sponsor (cả Anh/Việt) 14/7/2026 hoàn thành Toàn
3 3155 Task Home Partners Carousel Bổ sung đối tác IEAS vào carousel Logo IEAS hiển thị ở vị trí đầu tiên hàng 1 carousel 14/7/2026 hoàn thành Toàn
4 3155 Task Home Agenda Section Bổ sung hình đại diện của người phát biểu Avatar hiển thị đối xứng theo timeline, căn giữa dọc với text mô tả, responsive trên mobile 14/7/2026 hoàn thành Toàn
5 3155 Task Home Feedback Page Generate QR Code trang feedback Sinh 2 ảnh QR (local+prod) trỏ vào đúng URL. Lưu vào public/assets/img và 1 bản gửi qua email 14/7/2026 hoàn thành Toàn
6 3168 Task Home Agenda Section Cập nhật thông tin agenda, speaker Cập nhật đúng thời gian biểu, bổ sung các bài phát biểu mới và hình ảnh đại diện của diễn giả (cả Anh/Việt) 18/7/2026 hoàn thành Toàn
7 3168 Task Home Agenda Section Khôi phục cấu trúc Agenda cũ (loại bỏ IEAS) Gỡ bỏ các bài phát biểu của đối tác IEAS và đưa khung giờ sự kiện về 8:30 AM 18/7/2026 hoàn thành Toàn
8 3168 Task Home Partners Carousel Tạm ẩn logo đối tác IEAS khỏi carousel Comment out logo IEAS, không hiển thị trên trang chủ 18/7/2026 hoàn thành Toàn
+9 -9
View File
@@ -16,12 +16,12 @@
## Bảng Task / Feedback
| Mã Task | Sprint | Type | Component | Module/Page | Summary | AC | Status | Assignee |
| :------: | :----: | :--: | :-------- | :---------------- | :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------ | :-----: | :------: |
| 3155 | — | Task | Home | Hero Section | Chuyển vị trí tổ chức sang Hà Nội | Hiển thị đúng "Hà Nội / Hanoi" trên trang chủ và sponsor (cả Anh/Việt) | `[x]` | Toàn |
| 3155 | | Task | Home | Partners Carousel | Bổ sung đối tác IEAS vào carousel | Logo IEAS hiển thị ở vị trí đầu tiên hàng 1 carousel | `[x]` | Toàn |
| 3155 | | Task | Home | Agenda Section | Bổ sung hình đại diện của người phát biểu | Avatar hiển thị đối xứng theo timeline, căn giữa dọc với text mô tả, responsive trên mobile | `[x]` | Toàn |
| 3155 | | Task | Home | Feedback Page | Generate QR Code trang feedback | Sinh 2 ảnh QR (local+prod) trỏ vào đúng URL. Lưu vào public/assets/img và 1 bản gửi qua email | `[x]` | Toàn |
| 3168 | | Task | Home | Agenda Section | Cập nhật thông tin agenda, speaker | Cập nhật đúng thời gian biểu, bổ sung các bài phát biểu mới và hình ảnh đại diện của diễn giả (cả Anh/Việt) | `[x]` | Toàn |
| 3168 | | Task | Home | Agenda Section | Khôi phục cấu trúc Agenda cũ (loại bỏ IEAS) | Gỡ bỏ các bài phát biểu của đối tác IEAS và đưa khung giờ sự kiện về 8:30 AM | `[x]` | Toàn |
| 3155 | — | Task | Home | Partners Carousel | Tạm ẩn logo đối tác IEAS khỏi carousel | Comment out logo IEAS, không hiển thị trên trang chủ | `[x]` | Toàn |
| Mã Task | Sprint | Type | Component | Module/Page | Summary | AC | Deadline | Status | Note | Assignee |
| :---: | :---: | :---: | :--- | :--- | :--- | :--- | :---: | :---: | :--- | :---: |
| 3155 | — | Task | Home | Hero Section | Chuyển vị trí tổ chức sang Hà Nội | Hiển thị đúng "Hà Nội / Hanoi" trên trang chủ và sponsor (cả Anh/Việt) | 14/7/2026 | `[x]` | — | Toàn |
| 3155 | | Task | Home | Partners Carousel | Bổ sung đối tác IEAS vào carousel | Logo IEAS hiển thị ở vị trí đầu tiên hàng 1 carousel | 14/7/2026 | `[x]` | — | Toàn |
| 3155 | | Task | Home | Agenda Section | Bổ sung hình đại diện của người phát biểu | Avatar hiển thị đối xứng theo timeline, căn giữa dọc với text mô tả, responsive trên mobile | 14/7/2026 | `[x]` | — | Toàn |
| 3155 | | Task | Home | Feedback Page | Generate QR Code trang feedback | Sinh 2 ảnh QR (local+prod) trỏ vào đúng URL. Lưu vào public/assets/img và 1 bản gửi qua email | 14/7/2026 | `[x]` | — | Toàn |
| 3168 | | Task | Home | Agenda Section | Cập nhật thông tin agenda, speaker | Cập nhật đúng thời gian biểu, bổ sung các bài phát biểu mới và hình ảnh đại diện của diễn giả (cả Anh/Việt) | 18/7/2026 | `[x]` | — | Toàn |
| 3168 | | Task | Home | Agenda Section | Khôi phục cấu trúc Agenda cũ (loại bỏ IEAS) | Gỡ bỏ các bài phát biểu của đối tác IEAS và đưa khung giờ sự kiện về 8:30 AM | 18/7/2026 | `[x]` | — | Toàn |
| 3168 | — | Task | Home | Partners Carousel | Tạm ẩn logo đối tác IEAS khỏi carousel | Comment out logo IEAS, không hiển thị trên trang chủ | 18/7/2026 | `[x]` | — | Toàn |
+1
View File
@@ -11,6 +11,7 @@
"test:watch": "vitest",
"lint": "eslint",
"db:seed": "tsx scripts/seed-summit-requests.ts",
"task:export": "tsx scripts/export-tasks.ts",
"scss:build": "sass public/assets/scss/main.scss public/assets/css/main.css --style=expanded --source-map",
"scss:watch": "sass --watch public/assets/scss/main.scss:public/assets/css/main.css --style=expanded --source-map"
},
+63
View File
@@ -0,0 +1,63 @@
import fs from 'fs';
import path from 'path';
function convertMarkdownTableToCsv() {
const mdPath = path.join(__dirname, '../TASK_LOG.md');
const csvPath = path.join(__dirname, '../TASK_LOG.csv');
if (!fs.existsSync(mdPath)) {
console.error('Không tìm thấy file TASK_LOG.md');
return;
}
const content = fs.readFileSync(mdPath, 'utf-8');
const lines = content.split(/\r?\n/);
const csvRows: string[] = [];
for (const line of lines) {
const trimmed = line.trim();
// Bảng Markdown bắt đầu bằng '|'
if (trimmed.startsWith('|')) {
// Bỏ qua dòng separator (ví dụ: | :---: | :---: |)
if (trimmed.includes('---')) {
continue;
}
// Cắt dòng bằng kí tự '|'
const cells = trimmed.split('|');
// split '|' của '| A | B |' sẽ ra ['', ' A ', ' B ', '']
// Bỏ đi phần tử đầu tiên và cuối cùng
const dataCells = cells.slice(1, cells.length - 1);
// Trim khoảng trắng và format lại từng cell
const formattedCells = dataCells.map((cell, index) => {
let value = cell.trim();
// Tự động chuyển đổi Status từ ký hiệu Markdown sang chữ thuần Tiếng Việt cho Excel (Cột Status có index là 8)
if (index === 8) {
if (value.includes('[x]')) {
value = 'hoàn thành';
} else if (value.includes('[/]')) {
value = 'đang làm';
} else if (value.includes('[ ]')) {
value = 'chưa làm';
}
}
// Escape dấu nháy kép nếu có
if (value.includes('"')) {
value = value.replace(/"/g, '""');
}
// Bao quanh cell bằng dấu nháy kép để tránh lỗi dấu phẩy trong nội dung
return `"${value}"`;
});
csvRows.push(formattedCells.join(','));
}
}
fs.writeFileSync(csvPath, '\uFEFF' + csvRows.join('\n'), 'utf-8'); // Thêm BOM để Excel đọc đúng tiếng Việt có dấu
console.log(`Đã chuyển đổi thành công sang file: ${csvPath}`);
}
convertMarkdownTableToCsv();