Files
project_v19/cpp_entry/controllers/__pycache__/portal.cpython-312.pyc
T

122 lines
32 KiB
Plaintext
Raw Normal View History

2026-07-01 14:41:49 +07:00
Ë
½`2jòiãó¦ddlZddlZddlZddlmZddlmZmZmZddlmZddl m
Z
ddl m Z m
Z
ddlZeje«ZGdde
«Zy) éN)Údatetime)ÚhttpÚfields)Úrequest)ÚCustomerPortal)Ú AccessErrorÚValidationErrorcóeZdZejdgddd¬«d«Zejddgddd¬«d$d
«Zejd gddddd g¬
«d«Zejdgddd¬«d%d«Zejdgddd¬«d«Z ejdgddddd g¬
«d«Z
ejdgdddd¬«d«Z ejdgddd¬«d«Z ejdgddd¬«d«Z
ejdgdddd¬«d«Zejdgddd¬«d«Zejd gddd¬«d!„«Zejd"gddd¬«d#„«Zy )&Ú CppPortalz/my/cpp_entriesrÚuserT)ÚtypeÚauthÚwebsitec óìddtjjjfg}tjdj |d¬«}tj
d|d|j
d«d œ«S)
z,List all CPP entries for current portal userÚ
create_uidú=ú cpp.entryzcreate_date desc©Úorderzcpp_entry.portal_my_cpp_entriesÚ cpp_entriesÚerror)ÚentriesÚ page_namer)rÚenvr
ÚidÚsearchÚrenderÚget)ÚselfÚkwÚdomainrs ú1/mnt/extra-addons/cpp_entry/controllers/portal.pyÚportal_cpp_entrieszCppPortal.portal_cpp_entriessmð  ¤g§k¡k×&6Ñ&6×&9Ñ&9Ð;ˆÜ—++˜*×1°&Ð@RÐSˆä~‰~ÐØ—VV˜G“_ñB
ó ð óz/my/cpp_entries/newz/my/cpp_entries/<int:entry_id>Nc óö|r´tjdjt|««}|j «stj
d«S|j tjjk7rPtjjjd«s'ttd««tjd}tjdj«jdgd¬«}tjd}|jrJtjdj«jd d
|jjfgd¬«}tjd}|jrJtjdj«jd d
|jjfgd¬«}tjd }tjd }|rf|j «rVtjd jd d
|jfgd
¬«} | j!d«}| j!d«}tj"d||||||ddœ«S)Nrú%/my/cpp_entries?error=Entry+not+foundúbase.group_userú
Access deniedúaddress.address©Úparent_locationrlocation_name ascrr,rú
info.voterÚ cpp_entryúname asccó|j S©Ú status_vote©Úvs r#ú<lambda>z+CppPortal.portal_cpp_form.<locals>.<lambda>Fs
ÀÇÁÐ=N€r%có|jSr2r3r5s r#r7z+CppPortal.portal_cpp_form.<locals>.<lambda>Gs
¸¿¹r%zcpp_entry.portal_cpp_formr)ÚentryÚ provincesÚ districtsÚcommunesÚvoters_not_votedÚ voters_votedr)rrÚbrowseÚintÚexistsÚredirectrr
Ú has_groupr rÚsudorÚ province_idrÚ district_idÚfilteredr)
r Úentry_idr!r9r:r;r<r=r>Ú
all_voterss
r#Úportal_cpp_formzCppPortal.portal_cpp_forms9ñ Ü—K‘K  Ñ3´C¸³MÓBˆ—<<”>Ü×'Ð(OÓ×Ѥ7§;¡;×#3Ñ#3Ò3¼G¿K¹K×<LÑ<L×<VÑ<VÐWhÔ<iÜ!¤! OÓ"4Ó—KK  Ñ,ˆEô—K‘KÐ 1Ñ9× B
àAó&ˆ ô
—K‘KÐ 1Ñ2ˆ Ø × Ò ÜŸ Ð$5Ñ=×" ×):Ñ):×)=Ñ)=ÐFàEó*ˆIô
—;‘;ÐØ × Ò Ü—{‘{Ð#4Ñ<×" ×):Ñ):×)=Ñ)=ÐEàDó*ˆHô
#Ÿ;™; Ü—{{  á U—\\”^ä Ÿ \јc 5§8¡8Ð;àð!ˆJð
2Ñ3NÓ Ø%×.Ñ/FÓGˆ~‰~ÐØ Ø 0Ø<
ó ð r%z/my/cpp_entries/submitÚPOST)rrrÚcsrfÚmethodsc ó¸|jd«} |jd«rt|d«j«stjd«Si}|jd«r-t|d«j«rt |d«|d<|jd«r-t|d«j«rt |d«|d<|jd«r-t|d«j«rt |d«|d<|jd«r"|jd«j
«|d<|r‰t|«dk7r{t|«j«rbtjdjt |««}|j«stjd «S|j|«n"tjdj|«}tjd
|j«S#t$r=}t|«jd d «}tjd
|«cYd}~Sd}~wwxYw)z!Handle main entry form submissionrHrEuT/my/cpp_entries/new?error=Please+select+a+Province+(ážáŸážáŸ’ដ/ក្រុង)rFÚ
commune_idÚ al_officeÚ0rr'ú/my/cpp_entries/ú ú/my/cpp_entries?error=N)rÚstrÚisdigitrrBr@Ústriprr?rAÚwriteÚcreaterÚ ExceptionÚreplace)r ÚpostrHÚvalsr9ÚeÚ error_msgs r#Úsubmit_cpp_entryzCppPortal.submit_cpp_entrySð—88˜'ˆð Jà—88˜*´#°d¸=Ñ6IÓ2J×2RÑ2RÔ2TÜ×'Ð(~ÓÐàˆx‰x˜
Ô&¬3¨t°MÑ/BÓ+C×+KÑ+KÔ+MÜ&)¨$¨}Ñ*=Ó&>x‰x˜
Ô&¬3¨t°MÑ/BÓ+C×+KÑ+KÔ+MÜ&)¨$¨}Ñ*=Ó&>x‰x˜ Ô%¬#¨d°<Ñ.@Ó*A×*IÑ*IÔ*KÜ%(¨¨lÑ);Ó%<x‰x˜ Ô$Ø$(§H¡H¨[Ó$9×$?Ñ$?Ó$AœC M¨SÒ0´S¸³]×5JÑ5JÔ5LÜŸ  KÑ0׸H»
ÓFØ—||”~Ü"×+Ð,SÓ ˜DÕŸ  KÑÓ=ä×#Ð&6°u·x±x°jÐ$AÓ BøÜò JܘA›Ÿ s¨CÓ0ˆ×#Ð&<¸Y¸KÐ$HÓ Iûð Jús,“AHÁE'HÆ=AHÈ IÈ2IÉIÉIz/my/cpp_entries/voter/newc ó° |r t|«nd}|r"tjdj |«nd}|r|j
«stjd«S|jtjjk7r=tjjjd«sttd««g} dtjvr$tjdjgd¬ «}tjd
|tjd |t|«d d
œ«S#ttf$rd}YŒ4wxYw#t$rYŒYwxYw)zShow form to add new voterrrNz3/my/cpp_entries?error=Please+create+CPP+entry+firstr(r)ú
gender.genderÚnamerúcpp_entry.portal_voter_formr.r©r9ÚvoterÚgendersr4r)r@Ú
ValueErrorÚ TypeErrorrrr?rArBrr
rCr rrr[r)r rHr4r!r9rhs r#Úportal_voter_newzCppPortal.portal_voter_newvs+ð Ù(0”s˜8”}°aˆHñ>F ˜KÑÔ9È4ˆá˜EŸL™LœNÜ×#Ð$YÓ × Ñ œwŸ{™{× ¿ ¹ ×8HÑ8H×8RÑ8RÐSdÔ8eÜœa Ó ˆð ؤ'§+¡+Ñ!Ÿ+™+ =¸bÈÐOô~‰~ÐÜ—[‘[ Ñܘ >
ó ð øô%œIÐ Ø‹Hð ûôò Ù ð ús#D1Ã6E Ä1EÅEÅ EÅEz)/my/cpp_entries/voter/<int:voter_id>/editc ódtjdj|«}|j«stjd«S|j
j tjjk7r=tjjjd«sttd««g} dtjvr$tjdjgd¬«}tjd|j
|||jrd nd
d d œ«S#t$rYŒ?wxYw)
z Show form to edit existing voterr.ú%/my/cpp_entries?error=Voter+not+foundr(r)rcrdrreérrrf)rrr?rArBr/rr
rCr rrr[rr4)r Úvoter_idr!rgrhs r#Úportal_voter_editzCppPortal.portal_voter_edit•ô ˜LÑÓØ|‰|Œ~Ü×#Ð$KÓ ?‰?× ¯©×)9Ñ)9Ò 9Ä'Ç+Á+×BRÑBR×B\ÑB\Ð]nÔBoÜœa Ó ˆð ؤ'§+¡+Ñ!Ÿ+™+ =¸bÈÐOô~‰~З_‘_ØØØ %× 1Ò 1™1°qØ >
ó ð øôò Ù ð úsÂ96D#Ä# D/Ä.D/z/my/cpp_entries/voter/submitc óÒ|jdd«}|jdd«} |jd«}|rt|«j«dv}nd}|rt|«j«s t d«t
j d jt|««}|j«s t d
«|jt
j jk7r=t
j jjd «sttd ««|jd
d«j«}t!|«dkrt#td««|j$||jdd«j«|jdd«j«|dœ}|jdd«} | r't| «j«rt| «|d<|jd«}
|
r|
|d<t
j&j(jd«} | rë| j*rß| j*j-dd«dj«} | dvrt#td««| j/dd«| j1«}
| j/d«|
dkDrt#td««| j3«}t5j6|«|d<t8j;d| j*d|
d «|rt|«dk7rqt|«j«rXt
j d!jt|««}|j«s t d"«|j=|«n"t
j d!j?|«t j@d#|j$«S#tB$rx}t|«jEd$d%«}|r9t|«j«r t j@d#|d&|«cYd'}~St j@d(|«cYd'}~Sd'}~wwxYw))z4Handle voter form submission with strict validation.rHÚrorQr4)ÚonÚtrueÚyesFz/Invalid or missing Entry ID. Cannot save voter.rzCPP Entry not found.r(úPermission deniedrdéu{ឈ្មោះážáŸ’រូវមានយ៉ាងážáž·áž… ២ ážáž½áž¢áž€áŸ’សរ (Name must be at least 2 characters)ÚaddressÚphone)r/rdryrzr4ÚgenderÚdobÚphotoú.rnéÿÿÿÿ)ÚjpgÚjpegÚpngÚgifÚbmpz'Invalid file type. Only images allowed.ri zFile size exceeds 2MB limit.zPhoto uploaded: z, Size: z bytesr.zVoter not found.rRrSrTz?error=NrU)#rrVÚlowerrWrirrr?r@rArr
rCr rrXÚlenr
rÚ httprequestÚfilesÚfilenameÚrsplitÚseekÚtellÚreadÚbase64Ú b64encodeÚ_loggerÚinforYrZrBr[r\)r r]rHroÚ
raw_statusÚis_votedr9rdr^Ú gender_idr|r}ÚextÚsizeÚ
photo_datargr_r`s r#Ú submit_voterzCppPortal.submit_voter®ð—8‘8˜J¨ÓØ—8‘8˜J¨ÓðP JØŸ -Ó0ˆJÙä˜z›?×2Ð6PÐP‘ð!á¤3 x£=×#8Ñ#8Ô#:Ü Ð!RÓ—K‘K  Ñ3´C¸³MÓBˆ—<<”>Ü Ð!7Ó×Ѥ7§;¡;×#3Ñ#3Ò3¼G¿K¹K×<LÑ<L×<VÑ<VÐWhÔ<iÜ!¤!Ð$7Ó"8Ó—88˜F '×/ˆ4y˜1Š}Ü%¤að)fó'góhðhð#ŸX™XØØŸ8™8 I¨rÓŸ '¨2Ó.× ˆŸ ¨2Ó.ˆIÙœS ›^×5Ü!$ Y£X‘ð—(‘(˜5“/ˆCÙØ!U ô×'×-×1°'Ó:ˆEÙ˜Ÿšà—n‘n×+¨C°Ó3°BÑ?ØÐ)¬!Ð,UÓ*VÓ
˜1˜aÔ Ø—z‘z“|Ø
˜1”
à˜/Ò)¬!Ð,JÓ*KÓ#ŸZ™Z\
Ü &× 0Ñ 0°Ó <W
ô з±Ð/?¸xÈÀvÈVМC ›M¨SÒ0´S¸³]×5JÑ5JÔ5LÜŸ  LѸX»ÓGØ—|‘|”~Ü$Ð%7Ó ˜DÕ ˜LÑÔ×#Ð&6°u·x±x°jÐ$AÓ BøÜò JܘA›Ÿ s¨CÓ0ˆIáœC ›M××'Ð*:¸8¸*ÀGÈIÈ;Ð(WÓ×#Ð&<¸Y¸KÐ$HÓ Iûð  Jús+¦N>O%Ï% Q&Ï.AQ!Ð>Q&ÑQ!ÑQ&Ñ!Q&z+/my/cpp_entries/voter/<int:voter_id>/delete)rrrrLc óÔtjdj|«}|j«stjd«S|j
}|j tjjk7r=tjjjd«sttd««|j«tjd|j«S)zDelete a voterr.rmr(rwrR)
rrr?rArBr/rr
rCr rÚunlinkr)r ror!rgr9s r#Ú delete_voterzCppPortal.delete_voterô ˜LÑÓØ|‰|Œ~Ü×#Ð$KÓ ˆØ × Ñ œwŸ{™{× ¿ ¹ ×8HÑ8H×8RÑ8RÐSdÔ8eÜœaÐ 3Ó 
ŒÜ×ÑÐ"2°5·8±8°*Ð =Ó>r%z/cpp_entry/get_districtsc ó||rt|«j«stjg«Stjdj «j
ddt|«fgd¬«}|Dcgc])}|j|jxs |jdœŒ+}}tj|«Scc}w©Nr*r,rr-r)rrd© rVrWrÚmake_json_responserrDrr@rÚ
location_namerd)r rEr!r;Úresults r#Ú
get_districtszCppPortal.get_districtsá¤# kÓ"2×":Ñ":Ô"<Ü×-¨bÓ —K‘KÐ 1Ñ
 ¤S¨Ó%5Ð B
àAó&ˆ ðLUÖUÀa˜Ÿ ¡Ò'@¸!¿&¹&ÓUˆÐ×)¨&Ó1ùòVóÁ4.B9z/cpp_entry/get_communesc ó||rt|«j«stjg«Stjdj «j
ddt|«fgd¬«}|Dcgc])}|j|jxs |jdœŒ+}}tj|«Scc}wr)r rFr!r<Úcr¢s r#Ú get_communeszCppPortal.get_communes"á¤# kÓ"2×":Ñ":Ô"<Ü×-¨bÓ —;‘;Ð
 ¤S¨Ó%5Ð A
à@ó&ˆðLTÖTÀa˜Ÿ ¡Ò'@¸!¿&¹&ÓTˆÐ×)¨&Ó1ùòUz0/my/cpp_entries/voter/<int:voter_id>/toggle_votec ótjdj|«}|j«stjd«S|j
j tjjk7r=tjjjd«sttd««|jd|j i«tjd|j
j«S)zQuick toggle for status_voter.rmr(rwr4rR)rrr?rArBr/rr
rCr rrYr4r)r ror!rgs r#Útoggle_voter_statuszCppPortal.toggle_voter_status.ô ˜LÑÓØ|‰|Œ~Ü×#Ð$KÓ  ?‰?× ¯©×)9Ñ)9Ò 9Ä'Ç+Á+×BRÑBR×B\ÑB\Ð]nÔBoÜœaÐ 3Ó   ×(9Ñ(9Ð$9Ð×ÑÐ"2°5·?±?×3EÑ3EÐ2FÐ GÓHr%z/my/cpp_entries/dashboardc ó¶ tjj}tj«}tjjj
xsd}t
j|«}t jj|«j|«}g}|jd«s|jdd|jf«|jd«}|jd«} |jd«}
|jdd «j«} |jd
«} |r-|j!«r|jddt#|«f«| r-| j!«r|jddt#| «f«|
r-|
j!«r|jddt#|
«f«| r|jdd | f«| r-| j!«r|jd
dt#| «f«tjd j%«j'|«}
t)t+d
d««}i}dddddddœ}d}|
D}|j,}|j.r|j.j0nd}||vrdddddd|Dcic]}|dŒc}dœ||<|j3d«}|j3d«}|j3d«}|j3d«}|j3d«}||}|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|dxxt5|«z
cc<|D]:}|j6sŒ|j6j8}||vsŒ+|d |xxd!z
cc<Œ<Œü||d|d«|d"<||d|d«|d#<|j;«D]h}||d|d«|d$<||d|d«|d"<||d|d«|d#<d}|D])}||d |z
}|d |||||d«d%œ|d |<Œ+Œj||d|d«}tjd&j%«j'd'gd(¬)«} tjd&}!|rP|j!«r@tjd&j%«j'd*dt#|«fgd(¬)«}!n tjd&}"| rO| j!«r?tjd&j%«j'd*dt#| «fgd(¬)«}"tjd+j%«j'gd,¬)«}#tj<d-|||||| |!|"|#|| |