From 3f8e2ae30d9423dae975d795d64006e8e3c2bb8c Mon Sep 17 00:00:00 2001 From: Nav0za Date: Fri, 10 Apr 2026 01:09:36 +0700 Subject: [PATCH] update data --- app/pages/sections/[id].vue | 10 ++++++++-- server/api/Subjects/index.get.js | 2 ++ server/data/data.db | Bin 245760 -> 266240 bytes 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/pages/sections/[id].vue b/app/pages/sections/[id].vue index 848d861..06a92d3 100644 --- a/app/pages/sections/[id].vue +++ b/app/pages/sections/[id].vue @@ -977,7 +977,8 @@ const getSubjectLabel = (val, roomId = null, sectionIds = null) => { const extSubj = externalSubjects.value?.find(e => e.id_ext_subject === extId) const roomText = roomId ? ` [${rooms.value?.find(r => r.id_room == roomId)?.room_name || ''}]` : '' if (!extSubj) return `Unknown (ถูกลบ)${roomText}` - return `${extSubj.name_subject} [นอกสาขา]${roomText}` + const instructor = extSubj.instructor_name ? ` (${extSubj.instructor_name})` : '' + return `${extSubj.name_subject}${instructor} [นอกสาขา]${roomText}` } const subj = allSubjects.value?.find(s => s.id_subject == val) @@ -1002,7 +1003,12 @@ const getSubjectLabel = (val, roomId = null, sectionIds = null) => { if (r) roomName = r.room_name } - return `${subj.name_subject} ${sectionDisplay} ${roomName ? `[${roomName}]` : ''}` + let teacherName = '' + if (subj.first_name || subj.last_name) { + teacherName = ` (${[subj.prefix, subj.first_name, subj.last_name].filter(Boolean).join(' ').trim()})` + } + + return `${subj.name_subject}${teacherName} ${sectionDisplay} ${roomName ? `[${roomName}]` : ''}` } const clearSchedule = (noConfirm = false) => { diff --git a/server/api/Subjects/index.get.js b/server/api/Subjects/index.get.js index 9900b69..d6f1185 100644 --- a/server/api/Subjects/index.get.js +++ b/server/api/Subjects/index.get.js @@ -8,6 +8,7 @@ export default defineEventHandler((event) => { let subjects let baseQuery = ` SELECT s.*, + t.prefix, t.first_name, t.last_name, ( SELECT GROUP_CONCAT(sec.section_name, ', ') FROM SubjectSections ss @@ -22,6 +23,7 @@ export default defineEventHandler((event) => { WHERE ss.id_subject = s.id_subject ) as sections_json FROM Subjects s + LEFT JOIN teachers t ON s.id_teacher = t.id_teacher ` let whereClauses = [] diff --git a/server/data/data.db b/server/data/data.db index a2bd5af11291df4a43122937636c1e5e3e23b1a2..e452b684c8d0b5fd6726e900d5eef3ef2065d844 100644 GIT binary patch delta 7429 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𝔰Ja!EewV_1 zi(YQ)YSiyT@Ki+>7WHA;dEz0QqA$`&Y=*BD8f~SB$UB+gksOh|HzZCb+=0F^Mb=To z_lo!%h0~;GpO$9>W>-EXM3uBnj}f%jc?_MactV}t7iKcbieK^%M^#DR%K?y8oJ7UT05z| zs~yt*9tnl!4GpVP)hX&E^-{H1^{FG(40U*9cW7+)MXp;Nk(sx>I*D_}W;n%SAU<6Y ziy85o9b&OWe41Uf5}RrlEyQkei)Mo*izb6ulJ0{w%Z2SWt3}$G?P1uF1SyfO1sS+wH&?q~TF}ARxbD!x zH5@ORza9 zJ*eI5n(CO6(~-t3QZF5+ygV|$WoG1tmg(IGT6~O++T14hS|pbwIp6Mfx9@fa{LCt4 z*po8yk8FK-1Xv|EOB$L#Yc}Nhib`hPH#^`D6y^F0a{YnKyux6fKbT+I6Jl~^Y>!j4 zN59jNAhRT9YCumLv((9tO5#y{BEW~B`i6HVkc z>G^9tEI+?IYBS_~y;{KMfVCT83o7q%4PAEFgr3*QxGM}RvFs_>V|uF7l3y`{<}f_8 zkN#&|N6uX+=~J?yl%dN5Azar7quk_NVK6^G=G;S1pNZTIUdY(j@rChP@U_-|FWmV<<*WQ_^3wv*ip|_Hpw(CBb}uOt)SV z_1`~F2$F@v0FP*bh0al|(>ZQsxGfB0boUHsVpwT|NAN`(OgHl5F*9bdyvshu6@60} zrU=8ybIJUWBpxCs69uNvfvdC1&AcsN_6R>|GMT?5+ zGF-Enq!yz#4M`8(1-(LdX>2OPf4@SfZOWyz_%R6r#n`cfkG2kEanBKc4d~Z+VK3+z z@AFp(9Q=_to3n9wJ---_tfE}0EC+417u?wSAuq)hAM(R!siu++eZ1TK$xd8+ zpQX129_{C4de;Vi%%WXz78zIW=ZV(X!DL*#gL@MO21O-cgqFWB&ugvN}Swst^vf_!1>g`y%R9fU1$W*KY$a(k|;Kv#;jA2XpK(R3@?9{R|7Ve z-2w~D)^onim~2=+OO^=&sY(Yd`y}Dh-Br}~((iEEqQ7*K;XC8uF++B}F?ZSdAhq7Y z9+nNfa^d_x@zfY;YcL5bX5 zPp#3=++NOKhy&_L{kp691cpy7q@B#y$M>ZN;;Xk{=@gz4!Fmnfp?(_|jD|WD54;E? z&t1F`>>K#V!8+*)aoL4(9YyTKX0GZNh4`1UK70-jayvl-Y57J9J_{xv1Tizn}~q(whro(dwDz7457~4xs$TIvzMNs|Hts1UEGg{PZRDe-^u@hFYV;HxOOvLNAG>QM%^p keRcedO+V2;(6#P>0d@NYP;JL;E!?Yr(85y~r+4dr0Yvm*V*mgE