From 80cbb80d067fa411f7076f9f8b80e45a06a81d67 Mon Sep 17 00:00:00 2001 From: kdeterme Date: Wed, 19 Aug 2026 11:02:54 +0200 Subject: [PATCH] feat: add controller model name display to traffic light intersection details --- loko/assets/locale/en/LC_MESSAGES/django.mo | Bin 95539 -> 95595 bytes loko/assets/locale/en/LC_MESSAGES/django.po | 4 + loko/assets/locale/fr/LC_MESSAGES/django.mo | Bin 106669 -> 106731 bytes loko/assets/locale/fr/LC_MESSAGES/django.po | 4 + loko/assets/locale/nl/LC_MESSAGES/django.mo | Bin 97485 -> 97540 bytes loko/assets/locale/nl/LC_MESSAGES/django.po | 4 + loko/assets/models/trafficlights.py | 12 +++ .../trafficlights_intersection_detail.html | 2 + loko/assets/tests.py | 99 ++++++++++++++++++ 9 files changed, 125 insertions(+) diff --git a/loko/assets/locale/en/LC_MESSAGES/django.mo b/loko/assets/locale/en/LC_MESSAGES/django.mo index 7403fb265383300b61ce00856b6b4bf421f33d13..0907baa70aa3431a575fc299dd6cbdac9512e8b8 100644 GIT binary patch delta 30090 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
  • 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 diff --git a/loko/assets/locale/en/LC_MESSAGES/django.po b/loko/assets/locale/en/LC_MESSAGES/django.po index de2ba79..12c34b9 100644 --- a/loko/assets/locale/en/LC_MESSAGES/django.po +++ b/loko/assets/locale/en/LC_MESSAGES/django.po @@ -7366,6 +7366,10 @@ msgstr "GIEP zones" msgid "Aucune localisation GIEP trouvée à proximité" msgstr "No location found" +#: assets/templates/assets/trafficlights_intersection_detail.html:52 +msgid "Modèle du contrôleur" +msgstr "Controller model" + #~ msgid "StreetUp" #~ msgstr "StreetUp" diff --git a/loko/assets/locale/fr/LC_MESSAGES/django.mo b/loko/assets/locale/fr/LC_MESSAGES/django.mo index 68148130d4f95450ba751518ebd23b7fe8af6939..b163d65423fdb4774f06676db10dea5e52e3478e 100644 GIT binary patch delta 30458 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 K{+;jL*Zm(65|Zoy delta 30416 zcmZAA3Aj#G|M2nq;F#y>m>rIJCPL)L(RT6+z@HSB#3_5A*i(2fzK%8GvDjw(9{1pynXyYvPvbYJYcmylpRm_3q?v6UDg?Y)>#}sUjb+I2h z@B>%~*I{nliTUw^kUxRh89(+jiCjGR6CEJioLGznh!w&rSQ7JLd$i+TSOiCf=kqWp z`Hff@ccKA*iUxQUZ^hjA#9}ON><&!EhcPqb#~vr)fNL$l7tw&W1m6zNKSl#NhR*m0 zycsjijq<(Fz{Uj^U>fZ`9CBKAm_Yj=?kJ2>Z2>r37yGgbP4ap zlK3cQ$5*j9?m+`Mfe!o!I+0TIW3h}_4Xa}6-Nh33tktVcSTpSS12EYPG}z5|B5(?G9;cu2Y4SH@LM#n z^O%a4&?PUlAezB7=#n=N`PwJVKo zK}+n6w_|JEh%WVIw8PAcVzJs-3Ugu?^m%V|i$D z>?8>f$scH>dGC*A&<^dWKN`?dbm>>29c;#G_&!?i3OYcgMAW`My2oA7mFR(aaXePU zIT&w9Vgrdb_#JvUsx6ORzYcf}`QBIym!S=Jqcc5+o|ViGL`z=*J*3^S0!~2tdjxI2 z4Q+Q8Q!)8L*1sT$3J*pDHbQ6E8QsGn*c@kJ`WA%epNIS}XuX^(qEB}P%uc=z`t~%z z!q_U<3-gm7iv~7l1?!(eVhsg$v>lD`5V~|fp%s5aJ1X!HpIfYgZb?nFeq;0t*8?5+ zw($IRbje3!Hk^rd@jlFlJL4n@kvJGCoJJd5K$kkh%IL>x6?COKpdIx=>kUQsb_zPP z<)M5nRwBPGl%GH+bO{aoPjuXP)`z2+l|nzE^+LWE<{&>7eLbh65kH3I@n!VOcLe=l z9Y^>63|7U=k3{Y3pn)~T0@xK@p+QKycx*Tc_iO?d!#Jkk!)U{e!9D0<{4C^iJ{omc z8eN%dg6+|n_eKMqi`{VpHo%OlqQlr2lYRe3k|@H1@mLfWhWs<=>$DR~;s@wy{{daf zoU5Y%3!u*{U>#Yu2>^R)Q?OHw_)$fFHBk51Vj>e-A&PVtD5wwG~ z*bnz&U#zr-HwNeP4?jFrp5XhBJ+To!hn?^{bYgX%j1F59EKB}I^zcr4lJ)mA&ZEHB zYB?I=%HUII2QQ+5ZVSGPuEZBu3co|QD*34>@Pb%{d}_$wfR1wumcxOVz7@SW)Ew?9t8 z!*?8=>F-zqlb(rYQVQLgDrkddSRQXi2cCwuUyL5UwV`|~`oVe^4dg_4{%d%iyf#|V zco7m-sDkcEQ_O;$(GG7x0~>-4I0l{3-RK#47G0@L=zwpbfgVGb{Aa9)SJCI?pN&?a zF|yV1SX&Yf&=uXYUg(VO!7R8M-Q#D_mDq#Hcnl5rYs`ulFf;yvE^*SjD4zpck`ED*66c4QHcU^&+}r zhcP?;fvK3hJ{G%<@naQ87bNZ0aeXwfR_GSpiUv3it-k=>`$y1# zoa)DxAF(HpDZs%D_!bE)<2bkN)*_j16pw~I@4L`o;`wg^bA^WGdjbM z(SgsPTXz**;w&#kXQnthU_-QCm*61u5KoPh@NmpT56jc&4BkU$`Z4-R{T}V8;>%IT zO|cgF+tB)p(ART08u;2!z6%X(A3A}LL;eKjBOm{sgnN4xb7JX@(c!9wZb1{YyhAAO zjvlfh=+=zJTsRNiiU-g=UyZKZuJHVQw7+AR7r(>mzWH$@i1JmhPjTh$bOeQ!lqa0(j0Qq1rBzlMa7ZbE0Y6Ybzg zC_jyE#l?`%u{jE$aIh3QvkK@yb+9yc3D3u%{ZB@h{BAU`2e72?|3(t-*+*Cz&tWAj zxFtG_P0$tUfd)1m4RjIO;nV0AY()?6p78u@OeOz2I$+VQ(HXcF4Y&=a|NQStq7VfG zur^LX_i{bDmz&T-bOdd90)2mfL=RuKZP5zlMe~)>4^S<1tLmZco1mZacIZkC-p2YD zAu)%7g18D@s*UJOcc2XppdJ2z25 zXZ@Y&HVRzIUFeJtp-cK3`aILC(c#I322c*2Q7yFHb!f*OgZ;4r`AKLXtI)S-KRS_5 z(FuMYCy_$pd-Q{l@wI3M+0X#;p({`teJh%x9SuX zoW_cn`E|Af<26WFaRgqA)3GIPLYML~7Q=tgnH1X*9ip~qyPMGf28Z%V=t|s!uF%8S z2A@K=;vCxUDzcLCSnfBXh>M}GO>K0*uGkGnpnJU&eb3)PXLJnh@Y~?;*qnThoza$c z#Pk5sfCh*BG_;?E>BjkaPr{|!ghlXObbyoSQlCfn{7)>2S>BAEmq!Drg(a{R+P+`N zPYFJV2Ji}cCibEAe!>iK5?Oaedz}M|k}rxLx@*uSY>aM2TXbdqhXy~C0=*(Y7e;6Hpi~Ua{af$*PW_>%_n*zuWhgd~4@|)3yccL9F zMOR`~DBp&@EeC_gu{il3(FtbT69rldJrlLjep>Ef{SBZq1s;m=*bL{POTQQG=wQhI zh-JxNMrTm$ohY!%=mc7#?K)v9-hy>;GB(ENu@0WY23Rt_H~Q`l99WDI`jf*nrO9J#2}e zVh1exE`Je?1JHWK-iy9q4bdfUiXNtp=ouIg^3%{2x*yBq8uW1P#Y}ht8806Dj)Z%1 z0sWL_ct7f}AlhM7^m!}v`AwJu2crRx!<;xBU9tPn*Yq*8{SGw1!{{0M0SzSifc4q` z(jY@#Ea+3;I5z@N}FlJr4TUJebQ20BigP<|_B z_x&G4!c#s5jqHB3!3H#-x3D69j_zT`52M$#1v>EEm>CzL?Uti~tw+zmrck~wcpP2P z-!Sf}%<@t6>1~ZJ?Lah;F_?_^p@A&LJos#I8@iYKuo51?T=*OMUC4AW+L{!!pK>8z z1r4zNLDt`j%_;CTyAku@Xf%LX=#o7Wd>Jc~-;3725Xy6X91WO;c6=>*Ses!^?1Ncw zIHuxw^pm~(W7gj#dYJ-exCis%m*@cJ(XGjTD0*HEt=}4RV-NI0Gz2}2v(W$+pRT>`a99Bdk3xmDH=%pEQtanE}$JGAC6{L7>&F<8c(C06n0hUJdH8B16|3)N=QqTz*6ce z0MDTH%X}UU+yGO_Hx2o|*o^!jOu?toE!}|zxa)J)-w)1y3LNk-x&mLJ17F1QnB$A6 zL2dMPY=}O;6%Bj>rr~1rE!l|0@b%ykbn7mn^)I7`HQ$%4zk6Ty%V^IlqaC+FBkY6j z)nN26O+p*K9z1}y{|cSqx99|}qW$FiDq6WJ=<_CM`Je94z%BCSPoaAE3zB2 zF@Ed-31@f&)9@TR^W5J?4J)C0d_B6vz0f5bif-M^kY9ohv=*(uA6@dJXuFeG0xzK7 zh1}n<{=O#VNVw0Is2 zb7;UjLjDMPR?eXTUcu}b&-ZCh2-@Kc^b9OQXZ$2O z@JpCJF|__C!SAse`3yg#2NI9fBw>Yi=;`l+IdC?5iWj4YXf+z~tLW10L6`ghR>e=z zdKrFTNS7Dt!3D(1pgm>avI0rm^|yReY&{{j;3-5NB)H!u%=h@Oe#Xn@)9vElhVbf8Dj57AaMprh!PUPAkeU5o=gudUIe~AJrkFHP)bOIePKlb^B^>=`=6y(E&=+dl4S7a+1 z&_T4}*H{35MQ4)jQnUprXaMEVLsgihoQ zbl`WJ#%(Z>M0s3-&2ck2!{5*W|3Oc8>A#~hQ5ju{+UN|gMFVaf@;9I} z?1|2JEc&6Ei3YqVlt247`|px(rN98*M+dx!jWPc}QRJP`dIQiIO-4Ij5PTSmlV69f z*dBDnzCi2$7@qT&GU@%4Km)2BizlU5Y#JVP#*#c3h#s=p=w3dEcK8fB&{lMyLm__- zt(Q3|DgDD$7+sk%SPg5UAFkVQJkG=tcqvZ8*D7Czr1YgPgzd?9M^E)*!TsnV`UQOp z{z2dKA{mp?_p&1zz;JZyrlDIh2YnkBpaCpH>upB+i|-*}hX>IapTp|-H@f82GDVTL zKm+Q7md{5I(<<~k@e11hHEfC>hJ5biq*yBXvgpdTLbtX*cJuvTO`;FM>CA!5kFmAyH61DIQdb*3|ik7k-x-#w28T3R~Xfe7XkE3Vc0D8zy zqCd9JVm-WsPM}Ke=uo!6^bZ@l1zmF|#nT(~q`)N~i0<_S^n)`6eLLHqnDyi1{INedT_ zJ|xY8eb4}=V>4Wa&iEjDxIV*F{2L9tbV~GrX@x*Dx9AYs&v9g{`1^kn z?$u@VkmV^74cr=?Ne}ex7=`Zj^pIbQZp~xp%%4LC*oJP&+gJtPM_2eVI-zVuqYqw5 ztit%QYe{$*`lE+q6dLh8=waG`x8e@0iA9S=r@aF@lg{XX-9x?)8qgp#@bTgKY&4Mj z&@C$U{uS5B7=!Ym%$!IG|p=Y5oy3`%e zQ{Nj6a3uPcOhi}uzLLEE&TI_@JZtG_My1gKYGN5|i4HIj z9dJ4t*j!A-h3Jw$k8as}=!$<94+WRdrA$hVIxLRPunBrtdY}!*pfj9~9=?as0N0>< zzZKnrW7rx0z}9$undl5HLHk>cwK2YhgdLv=6@EqcC{x+!uocDn69{Y@hk(@(cuM*{=mFS4Bz+kkaS!e*; z&>4J)9@5hxpQC&fa2gt5J+xj+bZdHHDvn22YI*u|-oLFRd_6uy_vCA=fq$V9SFI4) z96hWzqk#+zPD5vOKN{$>=vE#_`?-P!RHfCKahkKm!Si^iFWWIy2oeH zmG~JAG)JZA=XnWiNWL|;!5Qe;cpH8FPT)28E7rowm7{jO(235*xQAsm377s2^pu`Q zzkoTbL>*p(cF+ZFI15v86}m!ipaUL4m;5w3fq$?$7Ofh#0DV3_l|Vaei1yPJ4RAQRa`Vs?S&a6x9{v4dH@YQztHq-R zpHScz?q_u1OQFIa=#pot9(|aKpr^hp`YFBz-TPtTc^s{OFIL2du@vq`SLy`%f%^@u z$A5nl?QK4EX4TLK&9D-73FTAJ87)L3PoM)oj?Qcg`UO1@@)yw+%~msdJqw`$*T?eM z0sZjBN0ac2btk&_GqEbJMmu;H4eV2NkI$kjbQNuvu~xKYInhI!f^JD2wB7Z=-soW* z6Y@_X{l#NjNw_rc1;0jT{wo@3soF{D|NgEuHX#29*1}KFK$7c3hbsqq2FiteQ}k`R z1)bPn^svuCSMn)L|L_0ShYD|?Kdrt%1Ns47qNHo08D&FfR0dtjx@f(&=t|s*4m1$c zUoZ5h=W6s2Zb0{bKYGXyVfyd?Uy*QWe?h-!S?VUG{~L{}XvE{OEhf;0$I$xUq5)n( z14*hE1y~r}y2@z#de{$d#=f`(*I?mmdH?$b`80G%7o&kbj(#^bq3!mdhxq^+*q3O(-=P6rK?98EZX7LDF?68H z=**g(7oP(4zLx|w+x-o_h=xQnnYi~oan$+(G_ft1k8W`Pr?pv zLHDj7I>3;SAB(NXPe%9j_27GGhsV&se?n)RxoMOyjDC=+qpxLqbZZ8qD|R=g`1}8g z^aQ^~V=52!Vl_O2?p2{?(HUrj&bS|@;&3d33(>$|Km*^5&U_~t@Lu#g@M(B{3f-#n z%J{K=NElJx=263P=<8Gs-GbV|rf9tz&@JkV4loft#BCJbV+HaD&_FMtuWjKL z(aP1rxQCz(2_x)^elYr?1H{qSz}?G)H>cX)6F-K($A8UBgxW%gE4N9EC_Zj7ne7Og)7U9manOqZcs zwjLdD3tDdnI>BSD;?clAQ(%Y5t)nH*gC3eRH1ZZ`fIWgE(NjDdo%wupYaT)e+JMgV z74(bxKH5*#Hc`K&(UoZuCt-t|(f9KYsAE_AQHM7QD(bP0>Jj{>NPu2^$4 z&>PVu?SrR4F z9h^dcT%Sj0o~vWjt}6O=v_`k0Cpy!CX#ELjKM6GON6>NBcI5rH;tQeRjZkq9R;By^ zy2n>SdCpGJKn2mWP#K+Rb95y-pfkP|UC|lg`9ie*184vn&^Ps^bLRYwDA8uB-y9SsalMrXDVJ;YC-fxU(<_1=*G1UA(MHyD@sbN}wGy4Eb)s(P#h*(X+A!)9@Aai*^J(Y{$^=z!~&VX1FO@!5ruo6+#0l zi3VH+)BpGX%}KZgw_y4w6aB?w7J3NRqI>-TroZp#8Od;S6j)JoMm4YnHpE&u4IOv` z8t|r&{|r5>Ut`=o{f>mE@e0~ezV6Wymq2G;3yr)DxddQcf_1_r4`)`F~6gc3| zXvY}`MoX0w4WKIeC2N4G*c|#6!-i`jaK8v2AAJG-gJ2>jE5W3Z+ z(G{u?C*jPSqmkc;1~L$x;Uu&{0^PfZ(fZG!f$TtMv^=;B@#Bc4(*@=I&iO$zcV-=eJxi8x1uvVjLzhDG{F2rqk3i0ft#a&wnhi+h;C^g zWL*C5e~@q~r=lIqN8f^nup+*Q-SG&z$2EpUGi!^kL|=4;#-Up@1>O5N`el3s?f+GD zEB2uQ9l(6P|A$F9@M&}r`3jx+ zujuz8%kU_m{8*OpW2q!EU@LS6ZP5rjq66QAF4-MufOm%cT(si^x&=?81MWl*@uz6J z<7l8ipg+w1L4SDF9l`r=gOMa0cn+rGeIdUd{l(#BbmE!_ zd2_Vm+t2|gqFXf`+u$O!-J#&AQM~_l@GAw*@Go=^3yzLDs)R0G3-tL-Xa^(EnNP>6 zcrV&+GuFoa=ntnq(Rz8uME#XO4`V%aD_g}$7-2VbFKWtY^W+K9^TJq;e06jSx}hu92c6g;%ery?n5I_pr>>_I>0vc!?HX0Ioj@0c>WjqdS;#)y~gFxnO=(q(m0g&L<1O(PIN|` zgzw`$XvLMG!WJ~*{ULu6UE1H!0F$RhGcFmdgr1RW(5-0^%G-qUF6c`4L051*+F$%W z5}tvT=!{=P2Ywx$`KM@uuY;Gd8u{FJMFBKI>$OGSo-XKCjz_mHj-H_<=oYOXG0R!F6c8 zm(Z1Y8!O{cOn?6~&Wb7&MF*;m&aeX-SPyhh`=Ki`0^Ree=m%>KI`e1Hc3aWCeg~b< zL3Blb2+uRkj#i++Y~Fu6u0??zHb(cVE&6`v0PC zZ*U~uHZMAC@1g^rL02qke)K~t8+!O^pcAZv1`uyV!aeMPZpBn|Dd(aUA3|4P4Z7r8 z(3$K--}jT~q0D@5WKQ%8mmlq~Ji21F(ZHIaThIgf-o#@gNO&5jpnLx$+Tp9gH_;B> zK@ZU<=pp+7J!F5Pfo8rh3N#P;+Lc4!hL-4rI-py9D_XxFmi6cVFcP&XScuN>4fOr} z5FPk9I+GvKfv=!}WL*%wrm0wy{I%%J2crW|K_@g5?RN#b)z6~!_F*yK|IbOd7r&v0 zr@+GKFjYq@wnvxjR`k0t8V%?kwEi+IkL$5H9z$SKNB5zHM*4>(R#blaSoy5 z{IrDk--66bql#tGLsbV|i6-bzyBjbKC*yd06y37C%c9q+IyNU?8{6YJ^iaQs4)iU$ zWq+Y>LDu`D*St)egkQRw(MTttdp8H&l11p-upABGVYJ>GXonx59Uenx{0mmcEQx5P z>Y;&Nj|MaZJwwZa@wFs86g$vEvIiaLLrm`wQ^{vp9xZJpY)rl_cEh`|BYuj$1!)gN zXXHjS&{61Nn}M$A-JyIL^8JX%){yW}y^ZemadeL_q93L#4@N6d84aiw8gT1iM|5v* zLf`X2=)ia4Q#cRZ!fGqRpDVBq`Ps<-{(~PPq2M$&;6bs6qQBF<5w9V?0PEsT{2yMz z{@7||6zJ3FA$}D-l>5<{ev0n>DfI35GdwTzaP+(e=JEY+YyvxCD&B@Rn2zr8lUNa7 z#71}o-Qxm}MEMq2i~Mx-Fu#EA@w@2Ce2q@v0=hyK9*tI{0jB@_A4I}KHVr-fv(TSz z3(*`WA>6 zq4b;3HZS#uk={rUxawwz^q*Nh3tVk^epi%C|7S_c2U71C_t;S9 z2l{@6{GZ&rsqghwM*hO?1QkA{;8_alGROfc{zUpL>1EtcTa&9Z^?v8sAnyA~|3O(6 zI@^yE&?^(=`$@l&sNAo3wk`C!g!|1zr+&q&7v@k@n|w{_gWL&URk}d&2tCb^{*8`IP@a+N*qs z5_|iX%$3UXH!1V#khsvlKzs?g8yI1HXxSL>WD?@T}Z_@*joPFXJ?xwZYNMs?LAv z+(CLkh}u59KB3-P${#0Pm56(gZko|ADc1xZ(nsui?v^|#7pA%h`%!iS@(#q_qtX{V zFG2klbyY8XxILande-3v$>itIkIB9-K;7Vi|P`Gz(x@bwp?{;z0 zaUKl|-OZ$|4Ecq0RS3VM>Ek^6kaDj-sqdAGvdcW5iQ}mA@AX1r;(&JfmeJblTJGDp zHzW=Ws2I;eX%&mPrjb5Q+qBU31$>*b8Qk-uDzQKD5OwM@<}B{#8LtK29NH8leSxxC z)bSb=%AY6CM>duR@4#ZXF%$pwcmWy=r@(6kg%i1tGhlVfuh4i4>9x`0*qOwdfd!IZ zqx8+h_JO67pW@kt#FzYU7fvLu4y;=8_b}LK+(7%!Lc1LFzai0PQ0e#^Jo%OpZVe;e zO@1~t{S!$C%14v-nn*c6tp4w{DwNk^#DzQ?!0mMtb+(cIjOSnREGK-qLhZ@(Zamvg`2y}o7`iNF4|98s!fz5yhEyC@n5SO+9+`gi zq~=~)=EpaqqV#``pq@XFyuRmICGJzSY0q6C^xBECt)!dL{w~TJkoW3F*^$J7A;lY} z&=>Go^kd@i(9+4DQZ^xRWoTNiJLx)=p}n3?R3273K9mx#C+M_6=;%(``xD$N zdw70lcs7=@OQb7M$LlfDRjBh0mZfYYY5zF#b!g{r7@N?&Ily{NS*v_6dI$ycD(_oVOP z-b0=Bw9ZW0UkCRkI^B^{ax1wC^f!g4y?OfIE0LIWN7}H*sj-)*e^AR`)_x8VeM$P_ z|JPy)+@tIxff_LpC0_f zi`Sd<^bXJNqRguz&&QJgn7ed{B8fULlK+K!BlS*DuQTb-sp}t$6wi`U&HCKGO6w44{=}S*%@3)*)60y(JnvzjKpUX2S%oJ=tt>)uM^b%j;FVB z@BPoSLgfFV;sC73?e#zBM4ff?_Bo zlAle@Rorp%&xO&+rvI7mX`Xw1Oa02E=OucMu2}n2sMUy)K0HY#zcbVv7pxNM+=S03 zULIXMDRbh$=;A$Rg!25`QhtE+t33N3wjqMClpjyLJf=XyOO#v< zE#xNhoq782buIbHA!f^F@$4DR0M}99que`Eu^} zx$_dwE^J0mNz~!b=rR5fnSNytR>kkBlb?GiPs$_~jZI5>FY)r&0`*GJ{w4a|N}csQ zdl~mo_6|NpeXpbBpX7d&{M*$1HF0HZ&C27+B~vS7sC5_KK`^EYAseu%Okxj!YHNIX5RYPKEZyjmrWjw>DC zN&EBkRSn0{x7R7|W!yh<{}5`Ej6KBj8sytyJ?=S_b)@Yd|EV*c{OzG1+vKEQuLG35 zfCqVgE9u#kx6Bm&u+V@G8dCW7e>!RvI{BNj^`U$-Wi`2<4V@09ybcrlmQKC$h4Q|n zU!~p{^0|2SP$;*~uhgF!`gY2wET#Venq_FC?8+?N=y zDXnJWT5d1?wm6oL+Q$;LC#EF#B$YAIX<|yYk<_n7-8G4k6Vr0-q5NC!6iOy1R!vMx zYL?hFu|T0snvlA=kn@;=1JoTD{k0;7ZN~!l2rQ?XTEcXwjZ|7+j z97_IXYOTl3-0MTj8+legF>+E$uBD{BR`KMC#Ii|g$q7;`6Wb@HwfTT&pU`S-sAIie zr2VVWN<{SUHHUP@kpGMNt->1gqNnzWGIth;9}44c`?yodA4=q#no{xz?Jv@EDN29f zzCx}0xchKFm}oP#X1(H+en_pqC|QB$xpPuBi#YvT%cgi6J$QXX`TgYYO{|-m7XOKw zC3x~APjc`i8&6)Rmwnv-UehV}x+!=Eb-et$_6Ml9fcA%Z_7CNSxL1;1L3z(GViU^N za-X8?QJ#H*)wsFR(*G7WBM<+*HWAPo?p55Ysk}WoF?L!3zp|6bC2?P++gJasj^C4S zLwBvYXL1j7SnkrK7f|2pcG8vU@e%H+q0GNMtwz1BlntS5F;Uc_-fNW4BY%*)Gi9r| z@4qWG>5fF1y9!jlCA7BJJlr4Cx(D~aR}Dw!dWU*1B>LY~JgH7%`dujvyV3K%*HL<0 zOq)j3Swh^%Y7Sl9!?y%D=l7(r|Za-rt}qBXr` zYdpI@^!5wog}L9S&UM^1DK8(M^`(3|_j8oj#*XyWiTh*nd&qmujq2u)-9yJuGI(|T zi~D3^*7UTbA&IA_r^P=C9qz?9XnY%<4jtIZQ0l)wF+C65UJbx*@6-#2CD--&!Rwh&5>pp+o%t7HsI?7Jt5qOpR-bC*iX+_5Hq!8Uq t;>jAC%qIOVWr>$&mP+KEnf;YFXUw~4Maw}+H@vd$(ClSfNv&)2e*n*XeZl|$ diff --git a/loko/assets/locale/fr/LC_MESSAGES/django.po b/loko/assets/locale/fr/LC_MESSAGES/django.po index f29f9e8..9d0c0a7 100644 --- a/loko/assets/locale/fr/LC_MESSAGES/django.po +++ b/loko/assets/locale/fr/LC_MESSAGES/django.po @@ -7417,6 +7417,10 @@ msgstr "Zones GIEP" msgid "Aucune localisation GIEP trouvée à proximité" msgstr "Aucune localisation GIEP trouvée à proximité" +#: assets/templates/assets/trafficlights_intersection_detail.html:52 +msgid "Modèle du contrôleur" +msgstr "Modèle du contrôleur" + #~ msgid "StreetUp" #~ msgstr "StreetUp" diff --git a/loko/assets/locale/nl/LC_MESSAGES/django.mo b/loko/assets/locale/nl/LC_MESSAGES/django.mo index ac13f1ed62673078745d88e004f07aa600d6a2d3..c78b6f2024eb5766c1d4d15534b2f1e0bbfab93c 100644 GIT binary patch delta 30026 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 delta 29982 zcmZA93ABx6-+=LLp63t;=N!{9%T#8`P!f?@$q*r#G8D>=ghGZLiIAazQbdX3MTkrl zX_6w8QlS!+eAjiJyR};1Uh8>(_dNXX``PC>@B4j|{>-xfa+dh9f|=*W_#DU*iWD{&-|{EJVI7Ho-oa z6_;T-T!|^MSUh%+L^1{EungvZG!`q3wb6!MuslA3xo`#M$2C|Kw_$Dk9Gx)lgjlRF zmd3nT7YpLeA>SQyk{^h9m_Ig>gac1RHXeHlE8#pWfZNc458<`=U8s*ujKy-3uZ%^o zF1pa$(FKmi>No|n;081To6&i8m}majJ`#EGQ1EzY@C&+tKhT}#cq|s{gsEu$L3BYg zgD+zl^4rjzpF;cphDIdoq-en<&;?Y)cxe(fNZ6nwy7T+c9n3{T_ac_WjcDjT#Uwm| zF5n+@;-Zg78)<-<$hX3(*d~;Z!(!y0K*w4BIPv%FU!%YfAHaNg0$t$+yaxY7L!57N zw6pS9mV6z|f!)!C^hMh}63U-Ok7zL#$5${5?n1}kH<|dCAaR%icX}SPW9BK*fO*h- z`CxU-M!qgO(T%|_XuBb3Bp(drGtdpKK*wK?srWv+;4^U&cFZ_6T3IekAzuIuc};W& z?a+|-2>CH+C?}%>K9BBjJ9;<1Li_!WZZP8$(dA1<7g!!W`glVU9zjoRZUK6EcAx_t z!W#G^I$+5sqxwqd(bPjPSzEjTd!dn;kG6jueLder7kVB&fyaxEam&L>oSYxo{5V#Kq_(T8W1G_24cnNd7By zVdu~Z^E@4mQx08V6Et#nK27{>*oOiKieqM+haSm7w8P8jH`)$#;@zSC0OlwECFa1h zSQ{^50jxYXI{QXweFwCC4>Zz4;w1dBIS;SFH_?V4pbZbBXL}0WS!`ZZUI;6YEsK`7 zL3h*(U3h;ij3coKK8b!~E)DrzXhh>*k?_4dgRVH&GtrOTl9-KrGt7>y(X;P}mGJ>| zfW_znR$(FBj7I1qwBM)bk$r=1g12vgA=RX}�P|rt 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 {{ intersection.current_index|default:""}} +
    + {{ intersection.controller_model_name|default:""}} {% if intersection.master %}
    {{ intersection.master.code|default:"/" }} diff --git a/loko/assets/tests.py b/loko/assets/tests.py index e9562f8..19f58d2 100644 --- a/loko/assets/tests.py +++ b/loko/assets/tests.py @@ -3235,3 +3235,102 @@ class CreateInterventionForAssetWorkflowTest(TestCase): self.assertEqual(first_event.event_user, self.user) +class TrafficLightIntersectionControllerModelTest(TestCase): + def setUp(self): + self.thematic, _ = Thematic.objects.get_or_create( + code="trafficlights", + defaults={ + "name_fr": "Feux de signalisation", + "name_nl": "Verkeerslichten" + } + ) + self.user, _ = User.objects.get_or_create(username="tl_ctrl_testuser") + self.user.set_password("password123") + self.user.save() + self.config, _ = UserConfig.objects.get_or_create(user=self.user, defaults={"limit_assets_to_contracts": False}) + self.config.limit_assets_to_contracts = False + self.config.save() + UserThematics.objects.get_or_create( + user_config=self.config, + thematic=self.thematic, + defaults={"can_view_assets": True} + ) + + from django.contrib.gis.geos import Point + geom_intersection = Point(648000, 670000, srid=3812) + + self.intersection = TrafficLightIntersection.objects.create( + code="TL_INT_001", + name_fr="Carrefour Test", + geom=geom_intersection, + lon=4.3508, + lat=50.8465, + current_index="IDX-12345" + ) + + self.category, _ = AssetCategory.objects.get_or_create( + code="TL_CONTROLLER_CAT", + defaults={ + "name_fr": "Contrôleur de trafic", + "name_nl": "Verkeersregelaar", + "thematic": self.thematic + } + ) + + from assets.models import TrafficLightControllerModel, TrafficLightController + self.controller_model = TrafficLightControllerModel.objects.create( + code="CTRL_MOD_01", + name_fr="Siemens Sitraffic C1000", + name_nl="Siemens Sitraffic C1000 NL", + category=self.category + ) + + self.controller = TrafficLightController.objects.create( + code="CTRL_001", + intersection=self.intersection, + model=self.controller_model, + geom=geom_intersection, + lon=4.3508, + lat=50.8465, + status="active" + ) + + def test_controller_model_name_property(self): + self.assertEqual(self.intersection.controller_model_name, "Siemens Sitraffic C1000") + + def test_controller_model_name_none_when_no_controller(self): + from django.contrib.gis.geos import Point + empty_intersection = TrafficLightIntersection.objects.create( + code="TL_INT_EMPTY", + name_fr="Carrefour Sans Contrôleur", + geom=Point(648000, 670000, srid=3812) + ) + self.assertIsNone(empty_intersection.controller_model_name) + + def test_detail_view_renders_controller_model_name(self): + self.client.force_login(self.user) + # Test French + response_fr = self.client.get( + reverse("assets:trafficlights_intersections_detail", args=[self.intersection.id]), + HTTP_HOST="localhost", + HTTP_ACCEPT_LANGUAGE="fr" + ) + self.assertEqual(response_fr.status_code, 200) + content_fr = response_fr.content.decode("utf-8") + self.assertIn("Modèle du contrôleur", content_fr) + self.assertIn("Siemens Sitraffic C1000", content_fr) + self.assertIn("IDX-12345", content_fr) + + # Test Dutch + response_nl = self.client.get( + reverse("assets:trafficlights_intersections_detail", args=[self.intersection.id]), + HTTP_HOST="localhost", + HTTP_ACCEPT_LANGUAGE="nl" + ) + self.assertEqual(response_nl.status_code, 200) + content_nl = response_nl.content.decode("utf-8") + self.assertIn("Controllermodel", content_nl) + self.assertIn("Siemens Sitraffic C1000 NL", content_nl) + + +