forked from UKSOURCE/ipv6
update task log
This commit is contained in:
@@ -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"
|
||||||
|
+9
-9
@@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
## Bảng Task / Feedback
|
## Bảng Task / Feedback
|
||||||
|
|
||||||
| Mã Task | Sprint | Type | Component | Module/Page | Summary | AC | Status | Assignee |
|
| 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) | `[x]` | Toàn |
|
| 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 | `[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 | `[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 | `[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) | `[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 | `[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 |
|
||||||
| 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 |
|
| 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 |
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"test:watch": "vitest",
|
"test:watch": "vitest",
|
||||||
"lint": "eslint",
|
"lint": "eslint",
|
||||||
"db:seed": "tsx scripts/seed-summit-requests.ts",
|
"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: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"
|
"scss:watch": "sass --watch public/assets/scss/main.scss:public/assets/css/main.css --style=expanded --source-map"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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();
|
||||||
Reference in New Issue
Block a user