From 4c5d3d4cca385f5b018603ae4c0391c2410cbf94 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 14 Apr 2025 15:52:22 +0300 Subject: [PATCH] new --- .../__pycache__/models.cpython-313.pyc | Bin 4580 -> 4657 bytes .../0007_prospectinglistitem_comments.py | 18 ++ ...ospectinglistitem_comments.cpython-313.pyc | Bin 0 -> 897 bytes osinaweb/addressbook/models.py | 13 +- osinaweb/db.sqlite3 | Bin 2142208 -> 2142208 bytes .../edit/__pycache__/views.cpython-313.pyc | Bin 34517 -> 35078 bytes osinaweb/osinacore/edit/views.py | 35 ++-- .../edit_templates/edit-prospecting-list.html | 159 ++++++++++-------- 8 files changed, 134 insertions(+), 91 deletions(-) create mode 100644 osinaweb/addressbook/migrations/0007_prospectinglistitem_comments.py create mode 100644 osinaweb/addressbook/migrations/__pycache__/0007_prospectinglistitem_comments.cpython-313.pyc diff --git a/osinaweb/addressbook/__pycache__/models.cpython-313.pyc b/osinaweb/addressbook/__pycache__/models.cpython-313.pyc index 09b88c35eabbc0775aaa79cfe44bf2cff1fc8477..6a4ee1005b04b9fdc026a83449cffc792e90fd47 100644 GIT binary patch delta 635 zcmYL_F=!J}7{~LHOLDm+cbA4xsM4r4m6NvMA|z4U7+Vre+oVZtY6@~muIZWFUHI;@ zI0-H~h{NZgAgJIXE*1oFba51PvD~J(I2%X7_i~_b`0@Y$zxTfP@%@-PJRScPj|)C} zIPOpH@?rdB1VMT#o}fts<|tng$Y4H}#;klsbi>6$y;!)i3X8OaH@OtP6GVIfx*(5_KM?dJ#o%lU1=VzDSwpy*G`|QtoaE5|fLVj=o=BqEg`$zZ+aNRDA$fnfJS) zb*rrpG`Qy3VD-QJLmCIi+ ztnO%_U4kyIBwD8eq(JWNKOEd2jD1XxV?mOCJpXLr$->x2Tdlfx}BIW;LiKf5RhB*b)!(=)HQBr&}xF}ElfBElF^6arzfg=A)z z0F{P9xEwy2dD*EcnR!KF5CQhc{L+%rq|~BtAiu~HM0f#-mqtJ$M3boq6v9PHKw`3n zfS!O4hzAZVaS+RQa+-iH!r1{JF%V%qd7D5AV*oH$=^BE zxr%H-Ds_Pb*t@YH9*A(7?9JuE7&}>7(32Y+24E9oC+7>wGA2*%6^s^OVKknhHeY9^ p&KCwC^9$c(E+HA&FAO}4VT@nom>C@zJJR}dI&;1cGDJzBli^dGo#9+4{N%)cR)q>3@L$eAi^T z3JWmXSKt%`Ab>AG6LQ!zxN!$;fx93uZi2w|Xq5wiyCAby3Y>y2;4lE(2p~5D!-w4J7CNQN33IGkF$1ex?3DkzR|xE& zxMu{;o~dfMfy=$VS6`EEYuU|(zJcm*EsSH1h3GMMEbpoH07WcKG0o6`GcmwXMrc1F z;vY^joXYBzpxo&!Du~0k)l20Y3%5G8&`UykERBrSO(l_*1<^3Y(#mb&h~Omt4BDz? z2jx2mNe>|vIZUv^C4}A#!$e0bwt>(Q;UY^2#gyso7!NRwF^vcoTn|P%PviKxF3T-V zH(DVb9Wrfmuk_deF9&rUA(5$}MJUWNPI|)(3xxQlN}Q<&$dUh2U@m-|k_6)KfJ2C7IZlg(HM-lo?C7- z5Kol(0H!u@58%`^uG#MnrXFysW2biR)FwA}C!4iNWoum7Ij`(|%Dz5oomJXDik9n5 zO}k>hZ}Qr*Ub}8dciw3u?&YH8Qq51)cb~`JQb;( U?Gm&xP$bX(3vmJY8vp>RAu$RyhNOGco2bO-$%6;Es23ACc~GLhq7`d2(YuG=>}2=7dH;F;x6)z? zOTc)UWdI?S9wF2Ogb*Uqgg?v=pqhb;jOiV+n66Cp_~^vAC4TSOywQvh9!ZzOI+(V? zdUEcT$>YSn;RSzY!H)qIpjHB1vo$p=m0&y0|vkdm;f_i0ZITXum-RxWNGd4+1$8*%?g$T zwYkcm3LxXOv4y{>|DZ;aBrnJ&RRCwuOXLSVNU69j5>@WFomVNfHRaE- z@^HX@K&{LV+M|rZ_uKd5oGjpH>mgQ8E+FPL6C)Q4%Z9zYqCcm5qP@fI(~PM%;Yrkp z5OZx}i_5i(B@V=EYR$%=;b>5dV9N$^d~8f+txVRx)W{R-{iNENJB>=5vyxE zaisegy+0$mw1xQ7mya22^y!?Ir=PQ;i3Z{}qAle9&1ub9(QEjT;C5BH>AJYh>Vdj$ zzstR zTg1_<$kDAYEM7I#qjClBrQ33FrH@mhkv^I%aVgmuaR>fpg>p$2KM-B2HeJdJjg5Gi ze%WahsQkvPQ65i=d&qgoo|8oE62K9T9Yv( zR-AIKc;G1Xv>-L#`e68AIMNvn7kB+EmGAz1J7*y!S=bci=6mcdd`aee{Bv7V0|N<^0%b6qjuxxB zlq;j`14mfJmBEC)VuhxZk3pX1E$xZK@vdaDqpz!M_0@s8>R_EK f7}{7L+*lW@i3IC|(P*Z7-T^p)a;1B|g1-F delta 3549 zcmcK7dr(x@9S87x?%uuUoD0i>$gT(o#0VmfU9vSB#TOtU##amqL1SPgiYxLE1!JON zecC;&qpBC>)AvqU@q{GZe*#oSNVMp2CfGS3~u8X^5_( z`Q!`oeR7zrB@f^U{3Co6ugA0Xd-~7x<9fSZW&gMRJ=BNFm0QZIC$d7bRP-sYj^R1{ z+K9_-s|)vWZw!|wQ?DiUq>?7CLLhY_?+*|+pPaz%#F_D+b8OKP&DCoO4>B|TwDt1W4jC9Sli z6_&Kzk{-9DWtQ}qB{f>oqn6ZQNlPuMK9$t+@Tpc;Y4VEIrjCf~x5SbbThby+T4+fN zEUCtl=3CM{OM1kT{Hb)Rs8HitI~lB0ud0XDX0-&}L%%?$&=#~sJk!aqx=15Y{KW-S z@wJHieIWiIEJa>PNdi6)AXDQ{S(RzVa0%i!HxU;fxr=9`fAZKx@pv@HACLHgd{E-A z%<(&T3bJ`3Pw^f1uvd+=fX(1Ka4pybJ_)V?p8!{btH71u3UE32IJgXa3~U4+1slMn zV14{~s77^?TFDa0V#y-OLdgP2jYQ0d`04W!@Yn@c1%K;=OGkdW{;*`OK6|^(*fy5mcGHS)^k1eEi0!wbe0ae8AQfilw~7UDVRs-xciXELz<& zzi4Y`{98=d*7)vv6-||Q)yf3sWDFled?JQ3R5Tu6Dvu9bXX1`B#dz&T{L70jul=Or zVGh|OmJX(Y21r2yVo(R|pa$AN6-1ySjSPV=g8RU|2~mVsza*~ScWMgZgCcui!*k$n za1a~-cY!;>esBla2lj$JU^loO>;kueL2xVB32p&5gU^B;;3hBtwu5cpGvG$>X>bF$ z9&F_|Cb5^JcCzPx%o`T`zs?&59bnJ_1|49~0R|ml&;bS=V9)^u9bnJ_1|49~0R|ml z&;bS=V9)^u9bnJ_1|49~0R|ml&;bS=V9)^u9bnJ_1|49~0R|ml&;bS=V6Czf4CXC^ zdCOqlGMKjv<}HJH%V6Fzn70h(ErWT>VBRvAw+!YjgL%tf-ZGfC4CXCsgx?3|ErWT> zVBWHNI9>l`hI5Dnpc0RHmpbQBy=^i<&Ab$3zpZ$srQ| z`*#4BDLlWAbep$7&TU0Q^k4K2{R{n^enLN@zooyX@6w;rA5xQErf<;m^ejD1PtdQ@ zFx^jIpaZm*25AS~NL%O{x|}x9#dIF^(MnoMi)kLsp-xJvjoc^yATjbM@)`Lf`2+b4 zd7r#P-X=dF-y`29uak4+6~f6VIYNfX&=A=}c9L$=Ndja8Sw~irWu%@gBz{s&%E>HJ zNODOwaS%)p{u2Kk{}tcHpW>VNclZYWCH^`7F}{Yc;EQ++zlvYRC-E`N@Ikx}@5VcD z7v7B9a4T-YD{&*P#Wi>?_TVyO%!nGNjpN1<<4}pQ&log%jjcw&SZ_2LD~twXk>NMI zMw#(|k!MUb9EMIOuVjV%nt5p~=R=kA&-5#1(QSQ|{c6aqWtv)_`@VAwMcp5i+B+48 zD*h{y?!4@{?`TfHkk)2g$4&Y>`a||nqf#9DNU6}v%-JLE-y_p|+?}qP=g+t|Ak8RM z=J327?h^bfB+Yg7PT@B@;q6h5<6sK}j zNqgS-l~G9Y@NWG>`#J4h+v{qJa@4stBjPxh&i6+PDo+%J=9^y|oOVwuPoJq2V|Psr zI^^FK*tC6f@6KRPprf~6AD$8aBt<#k8J?claF9=~$#C=NtxVl~F6<%cZWvgO*5ZP}77dzNL_wH<~MuV}^+NuNt4 zv0{gI+6L~5By!HM&MQ*a39`gRiv=Tsb;yvV-Lr7INOKpdx9O60Y0)n2D$fgA7z?of zJC`D9Md{F?gz)M7|M~AZ|Nou;{O8>JuTL4CeAeK)<8&5E^n2a(QRJ!66_-zLz0%T{ z8niHrUmB4{3`5pU2GKGO*#-+);h>$_2OZ2IbfzKapo_UgyI`nj(9PVUZ6qQqBzgMPjX3~Tu*Xop4>okS)SZTvL{b&BDp+IZYJ5A zC*Mc1kL1k!5^EtvMV>(`$(4C>faIz?c@4?cd2$=cHFzBs=+pr6*NN{hBeNBsJ5tsxVeYGV=h+ z(PM=&7MfBtlNx$hVP5q302P2rfCEqhuoDCw^Y+6>Q-WtKe39w_MBn>^%pZQ1}5&0MXx!mhhn!EjK_+ zZ(;$og+F5IHWF16fuDY?oxfrC%j@`$>`d;sfjhDX(`nZG zr`2doQB}>c+&XeDp|A!F-Y6{MEKH${omtVG7|e_+Z8=9~vLF(KeFkHk0GtHma%2>uV9c#ECKL}q8w5NE*Z~Lu5R6s?60`d) z8rGe2k=7ZU3dKNfkhDkngZ>V=jX&+LC===95VU6eVpHkY{G|p;p0^tM<(|CVi78Cs zP*MpPnQ%mG#WJG&$YD{(+R3mB04}AxgB;%3Dq!LU-W5H!2 zXUO2k{QVYAN&401iu9G%PJ`~Ctn*jO-(0g+UdumPvs>SQwo$6QBgr^Br`ZnB9;C_{ z%akACs9=3Xex0XT*ag7j0Gvg78s*BPS-7rQX*hNc8E^?k7YQ^gQ`AH}rgkZMaWRup zkei9iBT@qgLQsEtDjp6^vM2dc+XtCi`eFN~g365;Q4|{Cqeum@3#<5^^|j5&6wMw| z)o6rPAefA6_OPOkvuGk2jmI(@fPZ0quL;S`FKsU8KV0w7NiiJ>sb|CruH1!UXRe?_ zOka)ZOuG|NT1z-4Jo!VkzK9+h;t}EKr^!?3c^YukM{`Z?6BOi8d z9@`><*AH3E6k-uoGoN_`|Mh20Gzx;r4+P<}Yy6$ft$OzJwR^O@qrRIPdv|>r5om?G zlthRnaY$hXO89?%6oC*$aRbrG5psVhqfdSF7{saby_cn8C0tBr zcE(yi48F#{-gn~@J+|+-$79Vt7#}+nSEFJF{XRT@C_a|Rj0exZ@o~>9#Bo8cljmd| zTsCK~@DFy7=O}X@TWEg&(1=LY`!V2ZbgsU_Mf!b4RhOwugT-vs zJ>Op`dveE>SSWEg)jhkrHHBMipip1y`cHC1n6K`QBYS-XHyADF3JID^kdifG-z4R% zOjZeMT$K1ryW=^2%I|fPE{mavI#Vr9&F%rW*x8!#NGS3<&}F7E;M!{+bIqEmED`oP ze{Mh_H*jUD-n&Dt%lRS70pbssG;=aKenv^sef+U~o6K*Ja;9DQ_U67Sy(XKF=oVN_ z&7lh)JJZD>oMZFv$W||-`oXT*^l9KU=FprOneKPE9Eh@1KpiM8ncCu0_{5-3{tizK zeud&Vd#WP6Y3OrCy2StWaLe}ZlJU=pbLnmwIm41l*ncd}&O~Do|G`+VpP^RXC?K|# zN0XWjH<@5EO0Op39=eOyA6!@a9GL_>dYZsoD>xL7Qeo0dDo-5jN{RY_V?`?%k55zI zEws&<@Da4;pb#b|Xm5*)v^XhnB3i=-~&CdJOER>DZyq<1!3JoQF>vQ(|RrVyZU*Zvo~2^8kd#{sr(h z;2FSWfxHp@RtCyuh^VE^aXU4sZ#Gam}kxgOR-MdUXO`mh*B zGaXDQvAZ^Zhd*PMqhNvh*&;!}yK3~gm_;%R9M5KVic{O7;shRga27%IFKbIFGY}CS!(nK5ma-!QnsWwpZ>)%LE9ht z3u8c3h+kvS)w1I^=*X~B8*5L=R99EcmjB0|Sv6Y>nBWs>QbhgCrHu3cq6qFAF{BAl z05Aixtf|hGToF@&c#~{P568ccJ=A)3tEon?REp8c2sHatG#sY)JbWHw9)59pbNw#p zE#vW6lFBu`yL{0h>ihn?&ZsEjkw z1jD(?9t8+aQCb2H!KvoTivWj`8j9<2ISCK`n!+S%kn(Gu@sfBNd}1{I4!-G#U;x@!JSSSL-$ zfy!Yfl18kYSjcV~LcCwjxF(}2o%Bg%ikLldioR4-^YO<|n}w~1&p+)jB5=XOz zl1X|gq8DV%A-?SBUvgE3y-AN=z_8yY;CCONOjYTn3g681G@Pu=R#G_ zd{xgvRo{G7-(vH|MSt63ZQGJXs@}dNnW{@>txFEc-*WBz)$AF@-}N@mo`0ty@KV?Hu7!rp^9`F9o7OHi zx4(4q`pKmNsd3AaWNfVb6U&lSs;sDA@CD|5fdya3yszWs$lJc2+eK1M&wrQjktepw z_`qp45ZfAz$A1GDkk&$f0Wq4fMhWv35J4~1fpIDOMiCiIVa%bIC6 zsWP0D%*|&$JDTc16ZL=%01gAD01Pk#coJ|G@MXX?z>9#d0bT*T3iu}Ab-;H3KLz{@ za0l=qz=DLe0sMeInKs-FiFKk+lve9D`o=arscdI^$$6$=)mr$?kgYjR=B^ zRFrnK0>@FS4ua#@;?&x4?KpMn=+sV&*4m_u1}|2zty=4&qO>}8oaz6ayUAW+hE6-~ zWWJpLKd=A)&i|jsz5ST^wY$uo&)x1E6aD zB}<#V)xjLCIV`8u$(%xGZF9A{nOl^z+B~hfELW6mr1vtfD4W~z7MPD7DN1hjb!L~D zuEb3AV}&H!4RR654uf1wa*jbRA=zn=OG$PaAVj9U_gIrE> zoeL{>HHkRmfyfHm|13Q=Q+G8P(?HLDW3QD#M`DF&1PN&!wl9suFy&(^Y; ze8Z5esJe0*YRY+@y+kVI_4cIHkb2y{-ArpvdQ8tsc%gHi4ejZ2pOpNsXzHYmrsT=MQ?f zN@e^@Z-kiGo;NjFg%PR=G<%$dWftt+GwJ+u(GKCx<^vW076KL#XjXMkLe{d@wp`uZ z$*zK0m?}7$15w!P(Crn9rO+-jtsz{F;$pyR0?i(icLxXJkvJ3XI7kO~#E%8g!YzlR zYOr@miN<6_VQW*%^N&kXBM-SsQ(qJ;wp0k(CakF~)Tc&ol)KilBHmHlk_6M5t5Xg2 z_jj;(e{?{eNO>)_m>3z3s1no%(mfQBK~9)hE1(S^yk3Wr@H$)fS}4{-+d`ntb->N& zU??K%y@a#bRCS4~Il@&1RC>-t8gBM6V8g|5iwB4e_g&$TFzHi z_-xlv{oYCuT=9xr-Q{fZcBkB@vUYSHUw*a9$?8x)a&Kj9NCO&_GmC zH5(DAQX*Xgtwo{4awYV6f(Q+^ne<7vg^=|CGU3q$Q4ronKxl)kKLXeTcnmbJ)1)4gf z7!rCi2C^nFpn1kfqzFKF5hPhOt|1#rjcx=zdduKoJRBNeH}L%02PpZUs68nq;g8?U zL|DTK&9$zpt0TCnd2REi=1rP3%kN}j|AF;ncr+H1!)f#NKnYWY=&#wr@_?+$nyrt? zL<@7Hi*Kro)!J#E57 z%}!Co_8?vkpiz=Qvol#q#A9>_2*Pco)3Z{yzK|H_9|Q`dL;UN&hv|*S+_)fXTP7ie zQ6elvYQh&SOTI~EALMgK|t2ySwHLDM~a#oCnpo<_yb9AB!f`XgrqA z8-DMc#nSbBWKOM~$=0rrvP%!O327`+djccEpeZoJ+D!8^L7lMed!%IFM~wsLp5Q}2 zZ|+3RU4Sis@yxB$_qfAQiq!S!%PkalLwf{pJ%4C!Y0ps<#{)sjhWDUb%;+)r45gS+ zknW*wI_YDmlkX7WuEO>EQ{H)Yq-^Q@uM6+MG-59lxj75s-8``13Oyr_L7qT~XgFz9 zu#6|7(QW80%$gVrMdRiKFUhE-{wKZ#qMHJ1pYd8Mu zV_T^YoHaTMw%Bq0!NQq(YVf6NHNz!hF83~8qlZJz8aWYSs)(lvj*4Z@Y&gOUJwr8j zc)S<*KS?G~t{PG`S2&ny#U7>FP4Emm-vQG_n~9%Ud>vVbV`<;AJ0-e?5?f+Uu^uP+ zJ4@CjPmt2@(Knc0Glzgz)ZX*>MJ znx9zJ)+u)CmFPYhX_GH@?%17ajIgJ`)%bGrWvff1r}?$32laVVZ>=tq=n+73h=mkO zDh|DJ?rxsB7589&j=rRoXf>H7qW$FNxR~58Gdb2L77wEtY&qKOlb+#^HSf=GK<^Ku zDRk=$MU=f$>3&lbi8Sp{2M06@sr(LMl4j`&MJ6?Aa%*hV6-)B$C3cXY+0!{5VbAf$ zza!Im>Rq>4qPNGGHRHDdzg4rT(Y{?WZRz}Q%L3_n{zA(La%_A+UulO z_=WZg=@`%3P;3*o)789b!xiNZ(cu0+);Ip=G6TR zs`5=1P~6lpo6;rNF-3Yeb#uodx*VsZO}ARaRfoNd34RB774QeZFaQp*5x{GJ9{}zk z@cS|jv$N1SO?Z1ZM6@Z0wT=$h(IIGz@LUeeCbywl}DYHH|#?h=B z5_0S-M`dGWx><&T*QuV368MWJ^*-aX2us1kxZ|32AjA*$6t)OHG6YQKzwk7(=+4PW z;OBd4*Nzjw{sQa%N}zx~!GjL^8JRa2V!MKR+$3}YKBIPaGj(X(`JGT~$k#*m; zw{)@?z6xZRVtboGhMP=e6#ehqu#Yj=CxCwd1V#Oq=O_~+>9_KE^qdeQpF(#5 zFwT=Q;g!s{gsP;AsePgPG3Q_Cebv%{9ZPepjt?eqc{c=0h62sRh&;*`{%rr^>oQbi z!ldL|pn_i=DQ&+z6%)cGck*z7sX8A#6>0a56Os-bp0}ffHi-HiWs)t`yyK%WHrjSR zWoZ)o_rEa0s{pZGWJ2K!=yWPj`jXFxH6$~9WJ2TrNSjGRLy~Bk%X89_i4XUG<3pH_ zAuRwaAPb;V#4F-OM9lnnjbu;t#NUu?jntvf%xAaxQtdZXTj|pqHO>bV5YRh18V=Ko z4PV8WkKZ-4aO!I4v-{#PmG)ESLY>y)2d7yIC@a&ZOSFxk{2&iR!@qYrU1G z9_)7InM%d$(L^k=EbC%ae`G zWKsF7-!~#~KB-U;fA3iWGIUTZ?uLh;@ zN%i|W){5Z>V}1jnn!NSee!^QK5i?<)Kp7+mw za_Xt6qy9xB{zbz}HVk)cI;{>b?mFY|9^Sm|jDOon-*DfKBi4I7XT84r97i4ZIxjd) z1r?wAOjD{KZunutXj%P8S^aQe$(gdHhjZWK%fI``bno<0Z(zh581>E>@yP=J J<3%yhe*pJo`T76= diff --git a/osinaweb/osinacore/edit/views.py b/osinaweb/osinacore/edit/views.py index 21993dd8..d501cd7e 100644 --- a/osinaweb/osinacore/edit/views.py +++ b/osinaweb/osinacore/edit/views.py @@ -1,4 +1,4 @@ -from addressbook.models import AddressBook, Country, Contact, Group, ProspectingList, ProspectingListItem +from addressbook.models import AddressBook, Country, Contact, Group, ProspectingList, ProspectingListItem, Comment from osinacore.models import * from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponseRedirect @@ -696,7 +696,6 @@ def edit_addressbook(request, addressbook_id): "countries": countries, "groups": groups, }) - @staff_login_required def edit_prospecting_list(request, list_id): prospecting_list = get_object_or_404(ProspectingList, id=list_id) @@ -704,26 +703,27 @@ def edit_prospecting_list(request, list_id): list_items = prospecting_list.prospectinglistitem_set.all() if request.method == 'POST': + # Update basic list fields prospecting_list.name = request.POST.get('name') prospecting_list.description = request.POST.get('description') prospecting_list.save() - # --- Update existing items --- + + # --- Update existing items (update "attention" checkbox) --- existing_ids = request.POST.getlist('list_item_id[]') - for id in existing_ids: + for item_id in existing_ids: try: - item = ProspectingListItem.objects.get(id=id, prospecting_list=prospecting_list) - # Checkbox will only be present in POST if checked. - item.attention = True if request.POST.get(f'attention_existing_{id}') == 'on' else False + item = ProspectingListItem.objects.get(id=item_id, prospecting_list=prospecting_list) + # Checkbox is only present if checked. + item.attention = True if request.POST.get(f'attention_existing_{item_id}') == 'on' else False item.save() except ProspectingListItem.DoesNotExist: pass # --- Add new inline item if provided --- - new_addressbook = request.POST.get('new_addressbook') - # Only process if user selected a value (it may be empty if no new item is desired) + new_addressbook = request.POST.get('new_addressbook') # can be an existing contact id or the string "new" if new_addressbook: if new_addressbook == 'new': - # Create new AddressBook entry from inline form fields. + # Create a new AddressBook entry from inline fields. new_first_name = request.POST.get('new_first_name') new_last_name = request.POST.get('new_last_name') if new_first_name and new_last_name: @@ -732,7 +732,7 @@ def edit_prospecting_list(request, list_id): last_name=new_last_name ) else: - addressbook = None # Or handle errors as needed. + addressbook = None # Optionally, handle error here. else: try: addressbook = AddressBook.objects.get(id=new_addressbook) @@ -741,11 +741,22 @@ def edit_prospecting_list(request, list_id): if addressbook: new_attention = True if request.POST.get('new_attention') == 'on' else False - ProspectingListItem.objects.create( + new_item = ProspectingListItem.objects.create( prospecting_list=prospecting_list, addressbook=addressbook, attention=new_attention ) + # Process new comments if provided. + new_comments = request.POST.get('new_comments', '') + # Split comments on newline and create individual Comment objects. + for line in new_comments.splitlines(): + comment_text = line.strip() + if comment_text: + comment = Comment.objects.create( + content=comment_text, + added_by=request.user # assuming current user is adding the comment + ) + new_item.comments.add(comment) return redirect('editprospecting-list', list_id=prospecting_list.id) diff --git a/osinaweb/osinacore/templates/edit_templates/edit-prospecting-list.html b/osinaweb/osinacore/templates/edit_templates/edit-prospecting-list.html index 0e0ba634..b7ce391c 100644 --- a/osinaweb/osinacore/templates/edit_templates/edit-prospecting-list.html +++ b/osinaweb/osinacore/templates/edit_templates/edit-prospecting-list.html @@ -8,83 +8,97 @@ Edit Prospecting List - +
{% csrf_token %}
-
- - -
+ +
+ + +
+
+ + +
-
- - -
-
- - - - - - - - - - - {% for item in list_items %} - - - - - {% empty %} - - - - {% endfor %} + +
+ +
ContactAttention
- {{ item.addressbook.first_name }} {{ item.addressbook.last_name }} - - - - -
- No contacts yet. -
+ + + + + + + + + + {% for item in list_items %} + + + + + + {% empty %} + + + + {% endfor %} - - - - - - -
ContactAttentionComments
+ {{ item.addressbook.first_name }} {{ item.addressbook.last_name }} + + + + + {% if item.comments.all %} +
    + {% for comment in item.comments.all %} +
  • {{ comment.content }}
  • + {% endfor %} +
+ {% else %} + No comments + {% endif %} +
+ No contacts yet. +
- - - - - - -
- -
-
-
- -
+ + + + + + + + + + + + + + + + + + + +
+ +
+ +
@@ -94,7 +108,6 @@ // Toggle the new-contact fields when "Add new contact" is selected. const newSelect = document.getElementById('new-addressbook-select'); const newContactFields = document.getElementById('new-contact-fields'); - newSelect.addEventListener('change', function() { if (this.value === 'new') { newContactFields.classList.remove('hidden');