Skip to content

Commit ced67f3

Browse files
Merge pull request #25 from SteveLin100132/fix/notion-property-aggregation
fix: Update changelog and version to 1.1.6; enhance property extraction support
2 parents ac617a6 + 504bab9 commit ced67f3

File tree

4 files changed

+62
-2
lines changed

4 files changed

+62
-2
lines changed

CHANGELOG.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
# Changelog
22

3+
## [1.1.6] - 2025-08-09
4+
5+
### Fixed
6+
7+
- **[聚合計算] Notion 屬性聚合未依選項產生正確結果** ([#21](https://github.com/SteveLin100132/notion-chart-generator/issues/21))
8+
9+
- 修正 `extractPropertyValue` 函數缺少多種 Notion 屬性類型處理的問題
10+
- 新增 `status` 屬性支援:正確提取狀態名稱(如 "進行中"、"已完成"、"待處理")
11+
- 新增 `people` 屬性支援:正確提取人員名稱並以逗號分隔
12+
- 新增 `created_by`/`last_edited_by` 屬性支援:正確提取創建者/編輯者名稱
13+
- 新增其他屬性類型支援:
14+
- `relation` - 關聯屬性:顯示關聯數量
15+
- `files` - 檔案屬性:顯示檔案數量
16+
- `unique_id` - 唯一 ID 屬性:提取數字或前綴
17+
- `created_time`/`last_edited_time` - 時間屬性:提取時間戳
18+
- 同步修復前端(`frontend/src/lib/api.ts`)和後端(`backend/src/snapshot/snapshot.service.ts`
19+
- 解決 Issue #21:Status 屬性聚合現在會根據不同狀態選項正確分組統計,不再顯示空白欄位名稱
20+
321
## [1.1.5] - 2025-08-03
422

523
### Fixed
624

7-
- **切換資料庫時自動清空進階篩選條件**
25+
- **切換資料庫時自動清空進階篩選條件** ([#15](https://github.com/SteveLin100132/notion-chart-generator/issues/15))
826

927
- 修正圖表設定頁面,當使用者重新選擇資料庫時,進階篩選(Query Builder 內的條件)會自動清空,避免舊資料庫的篩選條件殘留導致圖表生成錯誤。
1028
- 完全符合預期行為,提升使用體驗。

backend/src/snapshot/snapshot.service.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,8 +461,29 @@ export class SnapshotService {
461461
return (
462462
property.multi_select?.map((item: any) => item.name).join(', ') || ''
463463
);
464+
case 'status':
465+
return property.status?.name || '';
466+
case 'people':
467+
return property.people?.map((p: any) => p.name).join(', ') || '';
468+
case 'created_by':
469+
return property.created_by?.name || '';
470+
case 'last_edited_by':
471+
return property.last_edited_by?.name || '';
472+
case 'relation':
473+
return `${property.relation?.length || 0} 個關聯`;
474+
case 'files':
475+
return `${property.files?.length || 0} 個檔案`;
476+
case 'unique_id':
477+
return (
478+
property.unique_id?.number?.toString() ||
479+
property.unique_id?.prefix ||
480+
''
481+
);
464482
case 'date':
465483
return property.date?.start || '';
484+
case 'created_time':
485+
case 'last_edited_time':
486+
return property[property.type] || '';
466487
case 'checkbox':
467488
return property.checkbox;
468489
case 'url':

frontend/src/lib/api.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,29 @@ export const dataProcessor = {
226226
return (
227227
property.multi_select?.map((item: any) => item.name).join(", ") || ""
228228
);
229+
case "status":
230+
return property.status?.name || "";
231+
case "people":
232+
return property.people?.map((p: any) => p.name).join(", ") || "";
233+
case "created_by":
234+
return property.created_by?.name || "";
235+
case "last_edited_by":
236+
return property.last_edited_by?.name || "";
237+
case "relation":
238+
return `${property.relation?.length || 0} 個關聯`;
239+
case "files":
240+
return `${property.files?.length || 0} 個檔案`;
241+
case "unique_id":
242+
return (
243+
property.unique_id?.number?.toString() ||
244+
property.unique_id?.prefix ||
245+
""
246+
);
229247
case "date":
230248
return property.date?.start || "";
249+
case "created_time":
250+
case "last_edited_time":
251+
return property[property.type] || "";
231252
case "checkbox":
232253
return property.checkbox;
233254
case "url":

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "notion-chart-generator",
3-
"version": "1.1.5",
3+
"version": "1.1.6",
44
"description": "Notion Chart Generator - 現代化的資料視覺化工具",
55
"main": "index.js",
66
"directories": {

0 commit comments

Comments
 (0)