From 7686b1143d004cd183dd2dadd1d48e2913ecb797 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 24 Jan 2026 20:50:44 +0000 Subject: [PATCH] Autosave: 20260124-205044 --- ERD.md | 12 +- core/__pycache__/admin.cpython-311.pyc | Bin 5343 -> 5424 bytes core/__pycache__/forms.cpython-311.pyc | Bin 10955 -> 11430 bytes core/__pycache__/models.cpython-311.pyc | Bin 13250 -> 17320 bytes core/__pycache__/urls.cpython-311.pyc | Bin 2790 -> 2902 bytes core/__pycache__/views.cpython-311.pyc | Bin 22688 -> 24678 bytes core/admin.py | 8 +- core/forms.py | 23 ++- core/migrations/0006_voter_is_targeted.py | 18 +++ ...street_voter_city_voter_county_and_more.py | 48 ++++++ .../0006_voter_is_targeted.cpython-311.pyc | Bin 0 -> 823 bytes ...city_voter_county_and_more.cpython-311.pyc | Bin 0 -> 1723 bytes core/models.py | 64 +++++++- core/templates/core/voter_detail.html | 143 +++++++++++++++++- core/urls.py | 3 +- core/views.py | 39 ++++- requirements.txt | 1 + 17 files changed, 337 insertions(+), 22 deletions(-) create mode 100644 core/migrations/0006_voter_is_targeted.py create mode 100644 core/migrations/0007_voter_address_street_voter_city_voter_county_and_more.py create mode 100644 core/migrations/__pycache__/0006_voter_is_targeted.cpython-311.pyc create mode 100644 core/migrations/__pycache__/0007_voter_address_street_voter_city_voter_county_and_more.cpython-311.pyc diff --git a/ERD.md b/ERD.md index 92f991e..a5aac2c 100644 --- a/ERD.md +++ b/ERD.md @@ -83,11 +83,19 @@ erDiagram string first_name string last_name text address + string address_street + string city + string state + string zip_code + string county + decimal latitude + decimal longitude string phone string email string district string precinct date registration_date + boolean is_targeted string candidate_support string yard_sign datetime created_at @@ -96,7 +104,6 @@ erDiagram VotingRecord { int id PK int voter_id FK - string participation_type date election_date string election_description string primary_party @@ -120,7 +127,6 @@ erDiagram Donation { int id PK int voter_id FK - string participation_type date date int method_id FK decimal amount @@ -129,7 +135,6 @@ erDiagram Interaction { int id PK int voter_id FK - string participation_type int type_id FK date date string description @@ -139,7 +144,6 @@ erDiagram VoterLikelihood { int id PK int voter_id FK - string participation_type int election_type_id FK string likelihood } diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index 66bd230ffc53b4c6b57364ad0c81a08ba6e8cf6d..c6c1cfd2751b862afea3123c619d85ca40f144e5 100644 GIT binary patch delta 297 zcmcbwxj~C}IWI340}!12Rg$@WBd;VcBj;pwUg!E-+?mDkC5c7psU@i?w^))hODb=% z7MCQJq-wGkX#h18d4LE{AaRScGO;KnzBn^IugD!F=mjFYfrKVUkqe0J3L@Nq#4Yy3 zl$4^>;$noFTO3uH1@X!GDXF*ElJiURN-F&{xr-*x<_(cE0P1Lf!w)PBB5q6#J~xE2 z8oY0ataXkNRXkKK{w7{C=ttAc;sI;a3y_ pVoHJtDG(tIBErDL0jA4@x^B;p46gIhEK$bCK^I8ET764OZPEG&- delta 212 zcmdm>bzhTrIWI340}z*I8GSrAPxPT;u^HZgEy77Nx`&XQt;B zxdZu{%tbCBIad(j1|%jw<&BWm1u`1o@PTk@gU<~iuLkcMBG!|m`RdtxL8^TwKj716 z^9C`!CyVlHF?vr{U%+G$ VfnyMZ0wzBYkY$Y8{7=A$1pxmaOpHDhB}RF{bMADzY^hBQx3gdG zoO|xycfWJ)e0lJ~;ov)^r4k2aOC+PeSn*-da7kW#hw|qrJ-?z?P`zU=`t^#2ELPqV zF7O<834TsdePiw;e$~I9lck%%#|=v(I}DPHJgQkyx!jiebYfacDw@=6e zN_11PqNHE5G?i-ZbsavUMO7n}7#gnZgLSNm87YexiMnI`s}g#D+>%{HhLzi53|3>x zZc-0#q#B`yzUS_h{0FpWtw&Pnj70^ZH=Bi))3bk5p~?|)+9j4t(_9`#Jkvq0VeR?K zw`;F>KJ(-@?9A17PtQlmFGxGTu*G0EZvp&$ntmTxk*%p6+kCaA{o9)MiJHh{O=Oz$_`7%q zU)nvgeYAP1Y;kVsnp_z^Q=zIK%fjcH$J*Z)CtEj9lyyv&bxd>a(k>oUb~Z2>YPcGb zzYWRnZpf|Mk!#yI5$c`{b?4Y~ZH~v~o?IJU(;^AE(DrNeN$>s#Q8E`je0!u}f$68`BaAMY+h6onSRFtUJki`kS}$Xg~xJ-U-*ycB9a+tVHaEP5wV5>&6ql z5T9+v^{mA8l&G2+BYN7>jg&2>Adi@2ww1J?i$IK%=C7znP#bn4djWc6Y3?rZ07(P^ zrGxt5$Ql6Khp`=n3_qggI0QsZC_dR*2ql+3Vc!7RVnsRotho0~q zrEdh!WRXAHlhmxZq1v8k5)-XMDq|f9?~(m;nf2nx^DsNZC$`R^GYYo*;Ad_DC?rz) zX4(3HLonET$N_q}B0L_cdybDk0S0mm;XnArCJEs%!Vv^^&QD_PDTHE{$`-6{w?CJbIM}w)(WVOe zT19yg5#yIDe&@4{1RXmTlRyT*HmfvjFG09FCSZi&Wh}q#(T{5hJ#NtD72aSz&oL$b zOeX>|J-qbe1&Hdyr64@ai0Y}DA*zoNRTq9~E>We}VPT>SaM?$%g*K^wnj*EI?2amw>Q$hM?8- zhvi$H&`i?$6}OzQlr)?|v4-Ft?8Pp{iID6=+hYLvJcv&79mMv#qnj>jSjzW9gs!DW8t4MNS~wTNQQ-BA z!>0wJ3)2?YR{BTdp)S&eE{6bmtnJ3_9!>O9c?tbS{zpK~{tIp^ B?EwG) delta 2821 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 Suc++nl^QYC-1|>8u>TJ|5!T26 delta 2672 zcmai0ZA_C_6z*+lOA9S6h0+gTic=^u1Oc^GD4=NSO8u%PW7*n<_jMKvWw(V52b(S? z8l#Ei#F@?@1?u^-!?X|m~(ZP}lh-E)AKgcW%c9^U($ z^WOX1bI&=qADm)ezGS{?G8t9kX?U29f8!iCJD6j<+GAF$cB!PilPXCovpyYISXq&t zIGy113YSk@zTgZBXCTffxB`VU5?3fVlfo4cXBJ$M!W9x{5u8=wOvDun&Zcm4`bq>> zs&GZ*XBS+V!dZxO2+pZ+R^nWObI)@XhH^2gSn$x;q)IrhUYEJ5Zd9`ZxR*D}EO1Ku zVTFfrr-)UG325gofn2`;+RT34&uZ;vF|GiwVKr-m(N-s<4N=z?!DaJ@QZgTi^~>Cg zpV$z5@VlXbt%9eF$F`x<+-zj8B0EAGLM1{gf*XOBuEjS58!&$gY8U)yvDa_H;lTx;5I=;kOQO+(974TNImvny zg=58)%P9P**tU|wUNIpBW?6+!7`K(yci`$PD2$>Hf|ug>w{46?N#(hcFLEo~ZtfbE z2h!n@LAkzLPRIBP@r;Yf>9m$t+iqQ)G7?Fpc_b1NG9^m&I+iOvJub<5Qq|*@iVvtfHW+bDi8@*3wzn#&$4$bKV@7$@ z*}Q?FM1mJ0(=T9J!*O-qg3yh?5zKI?p$qzI{HzbI)l_Rjo^trE#_L;JBIt`%oy{Lk zrez+9OMDEu*AbpZgFYrnTu!B6*b{{BJ)U)yXj+n`3FHv4Zd1czZ_r$O8IG^#psx$U zkiQHj>vSwZd2y@muAOQtAHTxdqACmXSB2;uYTg0AKGV%ou&KUXBE2*_mGpUZJ}n?? zk`r=oI-VSeNHHNC_rS-=Fv#QmF+LI*jPdkH&K`9Roe?mAsZn_7bHiWtee9f&_lp^& zg++^LK(7(l*KmrB!o3FnbGc%NTKFXd%%ZG*@BTgEuI*v|4pJCDz7`=@%r2k-VHjR+ zJj*UnY-S70nY9}$**a8_Es?QKXeaUB_+Sk8o8qtFhm#1$sGGmp^rEQ~hu9lE8h##r zYkHoYfj~2Nk!D(n;&&C@D4gfvhvq8hl4G1eGr}8SX_;UXBjLbkGmW`@`ft0J5#H88+oBX{LAWM{mG$$G`~b$+P~S#0QPMT99`~6=fa4sE}MU# zD;xZ4f>1Q*vlgTar z=;?I%MVRo$Y#HISpf)cpy3xGW^}Z7JF0}gsv0PfI6McdU-9%W-0Lno+ZYmt@fT*Zc zPMJ6GLxi{Bf$uWAf$B2vZ}qZblqW89%00S5n#HBFyORRCnDVIg3HQ%!G08Pt!jCY2 z|BSXKt$0Sq)V@{oo91`m-_`(|gN=Z6a3L4Gc3KQ)P sz4L7F59I$`G;YhB=&WY{0UVo0aR2}S diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index a3e9c96b3ce8cbee3e5f16ec1b1125ad5e4e49a9..5a7894eba8073fccf8e316c89e839d72ca293dd4 100644 GIT binary patch delta 212 zcmaDRdQD7yIWI340}ycNmu7ZzFfcp@abQ3S%J^)xQC*OE;s#bt{Z!^GNtkqs!5X$@ z%nS^xffxeP#iFEA41*aojV3!WA7PZ69LOprnVy=ToS%}ae~Y&)za+IN9?Gv$1Iccd zWtq*)C_Q;6dn;3s>||?>04`;qS&TqjoH%(Z#}bJfEF29k7dSOnm|oGgI}m??CG;Xo a=oOaG&6b?=82K$_`I#EHL9j>>s0RR@2r^*+ delta 114 zcmca6_DocLIWI340}vd&Tasza!NBks#DM`xDC4u(Ms-1Eu5{5T$rSxy22F#>Y0O79 yN3v{UW|W%D!_hi<8iy~J5>PQC5Epw+e#^0B^GeQnjQr*@{7enpAXuaTlmY;4JQ&6R diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index fd154aa7605f0a6e431e1105c4ed96fc42dd0b6c..d807a7336955d33f5af9b935c13bfde2cd30d37e 100644 GIT binary patch delta 6663 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 pg delta 5124 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 P-+XW`7iRxit?&H<9fQ@v literal 0 HcmV?d00001 diff --git a/core/migrations/__pycache__/0007_voter_address_street_voter_city_voter_county_and_more.cpython-311.pyc b/core/migrations/__pycache__/0007_voter_address_street_voter_city_voter_county_and_more.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..469c1a70b249531a421499980f143159de703cbf GIT binary patch literal 1723 zcmb_b%}*0S6rbI0x4UaWSR2tmOhiD63FV|0s4)^vjB?SasU(wSXDnOxqwI%*Ck`Gw za^vg;G4cm^^ysl9Jv4Lm)LRLhh>5=0b}>-nN5kyy+j%qZ{oe1rdGn#KPeU-CABEQY zG(z9Fk_^z}aWD(NEkqCzY~%wvrorbDMh5mD4%Zf z?Yzh|$13|qXnAhHWXB`a4$Q=p|NA@2!FPd&q^KkiR1%3$7D_1*QK^!Ug3yGo$dyb2 zKqQjhmA6G80AG9TW=<07!ce*})c?lN&H&?FjG-jFA(t%aBhqgFwgmaW_mBCUKO>xh zGstPM3q$`~ZOfUGN-jXl=@n=k$@F~6F3!x%+{CZEkowpPaA^2t8dAd2@e=Dd z2=QqU;2`uV4WBfBK+(WCy<{8i3N)XwhHdJW!{vMmG~RyLH5|&MSf*cE)Fu$h3fG$i zT$yZoksGcv#fF{@BSM=pEH_mSEBRS&(od*qIfjj^wqeqs9fVkAD+~ZOvTdf?o(n2? zvvd#|A!W)NtBOqs-^>BTLSADEj)`E*G>m~*WK)=DFY5e}e1654 za)*$6oV3pygsFFz4L{adcD_xkt!ZABcCOt=bO5I4$SEv)4lP7WkYH4xYt)QF&o8|8 z{FR^znG|@z3%{;w0ZMp1r8)i+lQFU0?h&!I54aFZIUqxPqfKeQr;mtLt;8 z3Em#l<&6jY@vkQ*wUC#XN-Bn1_NK{F+;DN5wa;>bo5i-1FgsFa+g)4qr$B|{MZr@L kt&|`LaK1vmh9 + + + +
+ {% if voter.is_targeted %} +
Targeted Voter
+ {% endif %} {% if voter.candidate_support == 'supporting' %}
Supporting
{% elif voter.candidate_support == 'not_supporting' %} @@ -53,6 +61,22 @@
+ +
+
+
Location Map
+
+
+ {% if not voter.latitude or not voter.longitude %} +
+ +

No coordinates available for this address.

+

Edit profile to trigger auto-geocoding.

+
+ {% endif %} +
+
+
Contact Information
@@ -333,7 +357,7 @@
-
+ {% csrf_token %}