From 2203bfc34a7aaad0ffc48342025b48dc3fced145 Mon Sep 17 00:00:00 2001 From: jacob-a-brown Date: Tue, 9 Dec 2025 16:48:41 -0700 Subject: [PATCH 1/2] feat: add id to asset search properties & update things Add the id to the asset search properties and update the things associated with assets to correspond with the things associated with contacts --- .DS_Store | Bin 0 -> 8196 bytes api/search.py | 11 +++++++++-- tests/.DS_Store | Bin 0 -> 10244 bytes tests/features/.DS_Store | Bin 0 -> 8196 bytes tests/test_search.py | 20 ++++++++++++++++++-- 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 .DS_Store create mode 100644 tests/.DS_Store create mode 100644 tests/features/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d5ef56cf852670816ca41e3deaef6c16927a0707 GIT binary patch literal 8196 zcmeHMO>fgc5S>lZ#vv3%s7Mt8$r9I6+EgGAmyosx4oIj$Z~$cDIBnfJc8HyZsw&DI z_zV06?)(qHaWTCQc)X~f-e4T5d zl+rV|UD;qS{C$?2S|>c+E!|(%1SE6RM~?_sUl4=greiR&2ZROYNyI7 zItfK5k63MFlu_uOnM`XhtqMjQ>E)aZEJwaXj zEem=?Rh-$TUD}{E8jzPme=DH76yUqSfL!var=!K~9J-G02pKeH@F^re$NH3GmBAVo zP``4htJr0P(PBz~57EXLAG_B_FYV`e70DY>KZpB~!ijjM^Ytv2?#fjRu-*vk?qlUA&@{-6!RlwnSOSuFIs%%RtY!jkOb0qsdLqkQrhUv9 zBR+ay_puf=k}o~P${pe=^vsRJzR8YL#VWgU-Z@$e_E8pHljsnPeYwZ^-pMj7dXDw6 zrhAwLv7@i2#9qqcud&BbnRAFadQy)BM+G&d_p;m?qJBq4|1;Qm(T{sYT+8^dA+>u? zW2}u;9Hc6;ehGb`L|-kze;WS^SY!Ci!QJEG?*h+h91DI?-{L%Q3yKJMNW)iWc=lAR zuZTUQp?P$~E*)b>J@j&TzI!zM0`>_M+B_1Txd`b_;$iv(`tA+`KTg)ye~MDMvandS zs#e{4+c}6Pour$L<92uSnvY&YQQ)5UyY5TBKXDq%TTz&F{jfih1mEie^5&HvdeNjE zjYBV%+>W|n)vTJ+xOsZo+`PZOYBx6@o~_!a8yn5$s{P>6=Gj@zx^d^;<6Y+{7=+Ph zL>7ujf0)pcI-a#((97)pxHAfaDCDOLGa6821ikrrv?mpHW=hTRGRLB(R;|F#>C4X( z@i7yNRYb!vA}Ek|%aQJ98F^XsY#XNY-ziX5J6hrVe+Qw+))b?FQQ&eZAS&CP?Kbv& z{tC-)pL1;+^&Kh~#!Z!#6f`m&hn49#?Cc+g=-YrYr dict: def _get_asset_results(session: Session, q: str, limit: int) -> list[dict]: vector = Asset.search_vector query = search( - select(Asset).join(AssetThingAssociation).join(Thing), + select(Asset) + .join(AssetThingAssociation) + .join(Thing) + .options(selectinload(Asset.things)), q, vector=vector, limit=limit, @@ -176,7 +179,11 @@ def _get_asset_results(session: Session, q: str, limit: int) -> list[dict]: "label": a.name, "group": "Assets", "properties": { - "things": [t.name for t in a.things], + "id": a.id, + "things": [ + {"label": t.name, "id": t.id, "thing_type": t.thing_type} + for t in a.things + ], "storage_service": a.storage_service, "storage_path": a.storage_path, "mime_type": a.mime_type, diff --git a/tests/.DS_Store b/tests/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b290e14aa882d8d6507c67f6780529b19d3efc88 GIT binary patch literal 10244 zcmeHMO>fgM7=GQAE!93Kuw9TQMdHF?8eJ<8h)e0lfh$FD094X8>mt&mB<;Fs8tNVR z3;YG{{15mqoZxw#bU3Y3ZU_xKvfniE^V)vi$Byh0k!Xy%dqg%7S;%b5YbZ2{-*cWz zh4hIHD}X2RXhGHFz_!hfNwS@Yc;W^Gz=I93N+^6Ly9bd%MY_ch2^{Zjt`1vI?If`Y zoJ0aAk+v+-9g2{x182+XBJjqp zPnmExMGfebI^-Z9k;{H&P+#Uy9SYIXAx;Whic#`e!Ax6Xdj?gcF4`E9ll3k>%+#~s z*OfI#6tVxA`ak|uzdeoz>6pK^2fh~%E0yn}uvEOVykf0btJdr0Q8;c6o#7~MIMGY~ z^(+ki_VnIqKlj{mtGu}%21CaS+(-hvu8S(KUU)$_95=#I(2XUwnY^${R;g9Kd3IK< z-L34{)!O~@9s6u=uUg%)?>(rUpO>tyTX!BlZN2sTLHH4)KoaRvNbAY(i}Dlh=9oBc zMu8s&Jq98#Q=g8(yoUV(*HI(Aei5q{xQ%hS`nVOo%^4VhiXGN!1Gksv~K}XQ5R(ZsFRncn-`Vh*Ez?-JuQn4y-Q^EDn*AR1q zd5gfhht^s9IzOyv)z8+PALcQVbBNgpsi$XBu+~*i*XKONh(FIN52df`ja0&7A456s znUy>rtO?bJs-~VC$w;q5sRb3OM$!j^Cz45ysD??_f!I)VP*%pzyz#2VW6#4w2^sti z1s_6z(`YXA!n(+K*-*R;q%H>F-qnqOSGNpS?ZJRX=z}jASlk2XAmc^l{~f%rCbe^s zqo0f9)s=O9qU$-Y0~w?`>KMHD5%HW+bJQ1Ld3BHE*CsFK@0FNm+jXIo81asDedd`j z7GWcBoi}Sa$|_dnm}dxoTYI`zWsFtiwxSPSB^}vk{;EY-L71~1o^=qhR{BlM>l4Ra z^<0AItiPGBql~wTz{EAlFkl!k3>XFs1BQW1#=ufC9-GhqALsx7f5}E|hGQ5o45$o< z;z9GEfhW@gCG{oW^I5x%{05m5*PA3(LQu%#cvyKHj~{#-e;b+WR@idFeLc04#Nr9k YU;i_}?Em=;u0>}5|NDIVKimKR0UDaM0PzL@>2Kf6S!oxCg zvb9paI?zc80NKT~G>qj>f5?a@AQLBBD=~v+tSO{5HLk=ku5vKe9P5eGZ>_ZEWW+OY zoM+=I6ypjH6Nx&R#7gaz0cBvB0j}MCjGz{wZ1FZFbNfX0YG^T>)lu<=fjK0Zx zLwzdgGO)c3Ye>fVnaz#JP6k<=XoN>;|YMa4a%={Tm;glfI8gqBq3;YeaR1DDY0h2(KLx$x$Ew z16=?y$0r6KBYZM=wAsqp5({@{$l3}_apv2#l}s7VUf;{U=Oq;^=82>7SY*ymA9>G1 zX1qC0Q(%|8UygDL-sY?0+PT6N{nm@?wuiZHhH|Fg?@RB0u%S&Ecsc_c7NW=X|L2E) z|9`q8MNkHmfoIEr=?+c?huEIGTbDM Date: Tue, 9 Dec 2025 16:54:06 -0700 Subject: [PATCH 2/2] fix: remove .DS_Store --- .DS_Store | Bin 8196 -> 0 bytes tests/.DS_Store | Bin 10244 -> 0 bytes tests/features/.DS_Store | Bin 8196 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 tests/.DS_Store delete mode 100644 tests/features/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index d5ef56cf852670816ca41e3deaef6c16927a0707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 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