Ë
    ^Pg¼R  ã                   óî  — d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZmZmZmZmZ d d
lm Z  d dl!m"Z" d dl#Z#d dl$Z$d dl%m&Z& d dl'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 ddl"m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9m:Z: d dl;m<Z< d dl=m>Z> d+d„Z? ed¬«      d+d„«       Z@d„ ZAd„ ZB ed¬«      d+d„«       ZC ed¬«      d,d„«       ZD ed¬«      d„ «       ZE ed¬«      d „ «       ZF ed¬«      d!„ «       ZG ed¬«      d"„ «       ZH ed¬«      d#„ «       ZI ed¬«      d$„ «       ZJed%„ «       ZKed&„ «       ZLed'„ «       ZMed(„ «       ZN G d)„ d*e>jž                  «      ZPy)-é    )ÚrenderÚredirectÚget_object_or_404)Úlogin_required)Ú	LoginForm)Ú	Paginator)Úreverse)ÚCountÚSumÚPrefetchÚFÚOuterRefÚExistsÚSubqueryÚQ)ÚRound)Útimezone)Ú	QueryDictÚJsonResponseÚHttpResponseBadRequestÚHttpResponseForbiddenÚHttpResponse)Úrender_to_string)ÚformsN)Úget_column_letter)ÚFont)ÚFarmerÚRegionÚCultureÚCatalogLandingFieldsÚCultureableName)ÚInteraction)ÚContactPersonÚContactDetailé   )ÚCultureFilterFormÚ
FarmerFormÚLandingFieldFormÚContactDetailForm)Úis_supervisorÚ
is_manager)ÚAddExistingContactPersonForm)Úautocompletec           	      óF  — | j                   j                  «       }d|v r|d= |j                  «       }t        |«      rt        j
                  j                  «       }n{t        |«      rRt        j
                  j                  t        d¬«      t        |¬«      z  t        |¬«      z  «      j                  «       }nt        j
                  j                  «       S |j                  dd «      }|j                  dd «      }|j                  dd «      }	|j                  d	d «      }
|j                  d
d «      }|j                  dd «      }t        j
                  j                  d¬«      }|r1|j                  |¬«      }t        j
                  j                  «       }nZ|r|r|j                  ||¬«      }n|r|j                  |¬«      }|r|dk7  r|j                  ||¬«      }|	r|j                  |	¬«      }|
r*|
dk(  r|j                  d¬«      }n|j                  |
¬«      }|j                  t        d«      ¬«      }|rt!        ||«      }|rt#        ||«      }|j%                  d«      }t        |«      rY|j%                  t'        dt(        j
                  j                  «       j+                  d«      j%                  dd«      ¬«      «      }|S |j%                  t'        dt(        j
                  j                  |¬«      j+                  d«      j%                  dd«      ¬«      «      }|S )NÚpageÚunprocessed)Úclient_status)Úinteractions__user)Úinteractions__assigned_toÚerdpouÚcultureÚselected_culture_nameÚstatusÚlanding_area_filterÚtotal_landing_area_filterT©Úactive)r4   )Úregion__nameÚdistrict__name)r<   Úall)Ú,catalog_landing_fields__cultureable_name__inÚ:catalog_landing_fields__cultureable_name__cultureable_name)Ú#cultureable_names__cultureable_nameÚ$catalog_landing_fields__culture_area)Útotal_landing_areaÚcultureable_namesÚinteractionsÚdateÚculturesÚuser)Úqueryset©Úassigned_to)ÚGETÚcopyÚ	urlencoder*   r   Úobjectsr>   r+   Úfilterr   ÚdistinctÚnoneÚgetr!   Úannotater   Úapply_landing_area_filterÚapply_total_landing_area_filterÚprefetch_relatedr   r"   Úorder_by)ÚrequestrH   ÚregionÚdistrictÚquery_paramsÚquery_stringÚfarmersr4   Úselected_culturer6   Úselected_statusÚfilter_landing_areaÚfilter_total_landing_areaÚactive_culturess                 ú//var/www/tradingcms/tradingcms/dataapp/views.pyÚget_filtered_farmersre      så  € Ø—;‘;×#Ñ#Ó%€LØ�ÑØ˜Ð Ø×)Ñ)Ó+€Lä�TÔÜ—.‘.×$Ñ$Ó&‰Ü	�DÔ	Ü—.‘.×'Ñ'Ü˜MÔ*Ü Ô&ñ'ä¨Ô-ñ.ó
÷ ‰(‹*ñ	 	ô �~‰~×"Ñ"Ó$Ð$à×Ñ˜h¨Ó-€FØ#×'Ñ'¨	°4Ó8ÐØ(×,Ñ,Ð-DÀdÓKÐØ"×&Ñ& x°Ó6€OØ&×*Ñ*Ð+@À$ÓGÐØ ,× 0Ñ 0Ð1LÈdÓ SÐÜ%×-Ñ-×4Ñ4¸DÐ4ÓA€OáØ—.‘.¨�.Ó/ˆÜ)×1Ñ1×6Ñ6Ó8‰á‘hØ—n‘n°&È�nÓR‰GÙØ—n‘n°&�nÓ9ˆGÙÐ 0°EÒ 9Ø—n‘nØ=LØK[ð %ó ˆGñ !Ø—n‘nÐI^�nÓ_ˆGáØ˜mÒ+Ø—n‘n°=�nÓA‰Gà—n‘n°?�nÓCˆGà×Ñ´#Ð6\Ó2]ÐÓ^€GáÜ+¨GÐ5HÓIˆá Ü1°'Ð;TÓUˆà×&Ñ&Ð':Ó;€Gä�TÔØ×*Ñ*ÜØÜ$×,Ñ,×0Ñ0Ó2×;Ñ;¸FÓC×TÑTÐU_ÐagÓhôó
ˆð €Nð ×*Ñ*ÜØÜ$×,Ñ,×3Ñ3ÀÐ3ÓE×NÑNÈvÓV×gÑgÐhrØhnópôó
ˆð €Nó    zaccounts/login/)Ú	login_urlc                 ór  ‡‡ — | j                   }t        | |||«      }t        j                  j	                  «       j                  d«      }| j                  j                  «       }d|v r|d= |j                  «       }|j                  dd «      }|j                  dd «      Š |j                  dd «      }	|j                  dd «      }
|j                  dd «      }|j                  dd «      }t        j                  j                  d	¬
«      Š G ˆˆ fd„dt        j                  «      } |«       }t        j                  j                  d	¬
«      }‰j                  dd	¬«      }|j                  dd «      }|r|j                  dd«      nd}|r)|dk(  rd|z   }|j                  |«      j!                  «       }t#        |d«      }| j                  j                  d«      }|j%                  |«      }|D �]ì  }t'        |j(                  j	                  «       «      }t+        t-        |«      «      D �]®  }||   }|t-        |«      dz
  k  rñ||dz      }|j.                  rÔ|j0                  rÈt3        |j0                  t4        j4                  «      r|j0                  j1                  «       }n|j0                  }t3        |j.                  t4        j4                  «      r|j.                  j1                  «       }n|j.                  }||z
  j6                  }|dk(  rd|_        Œì|dkD  rd|_        Œùd|_        �Œd|_        �Œ|j.                  r‘t3        |j.                  t4        j4                  «      r|j.                  j1                  «       }n|j.                  }t;        j<                  «       j1                  «       |z
  j6                  }|dkD  r	d|_        �ŒŸd|_        �Œ¨d|_        �Œ± �Œï i d|“d|“d|“d |“d!|“d"‰ “d#|“d|	“d$|“d%|“d&|“d|“d'|
“d(|“d)|“d*t;        j<                  «       j1                  «       “}t?        | d+|«      S ),NÚdistrict_setr/   r4   r5   r6   r7   r8   r9   Tr:   c                   ó<   •— e Zd Z ej                  W ° dW °¬«      Zy)úhome.<locals>.CultureFilterFormN)rI   Úempty_labelÚinitial)Ú__name__Ú
__module__Ú__qualname__r   ÚModelChoiceFieldr5   )rc   r_   s   €€rd   r&   rk   w   s   ø„ Ø(�%×(Ñ(±/ÈtÑ]mÔn‰rf   r&   Úcultureable_name)ÚflatÚsortÚ	directionÚascÚdescÚ-é   r%   r   Úon_timeÚlateÚearlyÚno_next_interaction_dateÚoverdueÚpendingÚpage_objÚregionsÚselected_regionÚselected_districtÚall_culturesr_   Úall_culture_namesÚsort_directionÚculture_filter_formr]   r`   ra   rb   Útodayz	home.html) rH   re   r   rO   r>   rW   rL   rM   rN   rS   r!   rP   r   ÚFormÚvalues_listrX   rQ   r   Úget_pageÚlistrE   ÚrangeÚlenÚnext_interaction_daterF   Ú
isinstanceÚdatetimeÚdaysÚinteraction_statusr   Únowr   )!rY   rZ   r[   rH   r^   r�   r\   r]   r4   r6   r`   ra   rb   r&   r‡   r…   r„   rt   ru   Ú	paginatorÚpage_numberr€   ÚfarmerrE   ÚiÚcurrent_interactionÚnext_interactionÚnext_interaction_date_valueÚ#current_next_interaction_date_valueÚdeltaÚcontextrc   r_   s!                                  @@rd   ÚhomerŸ   d   sh  ù€ à�<‰<€DÜ" 7¨D°&¸(ÓC€GÜ�n‰n× Ñ Ó"×3Ñ3°NÓC€Gà—;‘;×#Ñ#Ó%€LØ�ÑØ˜Ð Ø×)Ñ)Ó+€Là×Ñ˜h¨Ó-€FØ#×'Ñ'¨	°4Ó8ÐØ(×,Ñ,Ð-DÀdÓKÐØ"×&Ñ& x°Ó6€OØ&×*Ñ*Ð+@À$ÓGÐØ ,× 0Ñ 0Ð1LÈdÓ SÐÜ%×-Ñ-×4Ñ4¸DÐ4ÓA€O÷oœEŸJ™Jô oñ ,Ó-Ðä'×/Ñ/×6Ñ6¸dÐ6ÓCÐà"×.Ñ.Ð/AÈÐ.ÓM€Là×Ñ˜F DÓ)€DÙ8<�× Ñ  ¨eÔ4À%€IÙØ˜ÒØ˜‘:ˆDØ×"Ñ" 4Ó(×1Ñ1Ó3ˆä˜' 2Ó&€IØ—+‘+—/‘/ &Ó)€KØ×!Ñ! +Ó.€Hàó 'XˆÜ˜F×/Ñ/×3Ñ3Ó5Ó6ˆÜ”s˜<Ó(Ó)ó %	XˆAØ".¨q¡/ÐØ”3�|Ó$ qÑ(Ò(Ø#/°°A±Ñ#6Ð Ø&×<Ò<ÐAQ×AVÒAVÜ!Ð"2×"7Ñ"7¼×9JÑ9JÔKØ6F×6KÑ6K×6PÑ6PÓ6RÑ3à6F×6KÑ6KÐ3ä!Ð"5×"KÑ"KÌX×M^ÑM^Ô_Ø>Q×>gÑ>g×>lÑ>lÓ>nÑ;à>Q×>gÑ>gÐ;à8Ð;^Ñ^×dÑd�EØ ’zØAJÐ+Õ>Ø šØAGÐ+Õ>àAHÐ+Ö>à=WÐ'Ö:à&×<Ò<Ü!Ð"5×"KÑ"KÌX×M^ÑM^Ô_Ø>Q×>gÑ>g×>lÑ>lÓ>nÑ;à>Q×>gÑ>gÐ;ä%Ÿ\™\›^×0Ñ0Ó2Ð5XÑX×^Ñ^�EØ˜q’yØAJÐ+Ö>àAJÐ+Ö>à=WÐ'Ö:òK%	Xð'XðRØ�Hðà�7ðð 	˜6ðð 	˜Xð	ð
 	˜ðð 	Ð,ðð 	Ð.ðð 	 Ð!6ðð 	˜)ðð 	Ð2ðð 	˜ðð 	�&ðð 	˜?ðð 	Ð2ðð 	$Ð%>ðð  	”—‘“×$Ñ$Ó&ð!€Gô& �'˜;¨Ó0Ð0rf   c                 óT  — |dk(  r| j                  dd¬«      S |dk(  r| j                  dd¬«      S |dk(  r| j                  dd¬«      S |d	k(  r| j                  dd
¬«      S |dk(  r| j                  d
d¬«      S |dk(  r| j                  dd¬«      S |dk(  r| j                  d¬«      S | S )Nú0-100r   éd   )Úlanding_area__gteÚlanding_area__ltú100-300é,  ú300-500éô  ú500-1000éè  ú	1000-3000é¸  ú	3000-5000éˆ  ú5000+)r£   ©rP   ©r^   Úfilter_values     rd   rU   rU   Ê   sÂ   € Ø�wÒØ�~‰~°ÀCˆ~ÓHÐHØ	˜Ò	"Ø�~‰~°Àcˆ~ÓJÐJØ	˜Ò	"Ø�~‰~°Àcˆ~ÓJÐJØ	˜Ò	#Ø�~‰~°Àdˆ~ÓKÐKØ	˜Ò	$Ø�~‰~°Àtˆ~ÓLÐLØ	˜Ò	$Ø�~‰~°Àtˆ~ÓLÐLØ	˜Ò	 Ø�~‰~°ˆ~Ó5Ð5àˆrf   c                 óT  — |dk(  r| j                  dd¬«      S |dk(  r| j                  dd¬«      S |dk(  r| j                  dd¬«      S |d	k(  r| j                  dd
¬«      S |dk(  r| j                  d
d¬«      S |dk(  r| j                  dd¬«      S |dk(  r| j                  d¬«      S | S )Nr¡   r   r¢   )Útotal_landing_area__gteÚtotal_landing_area__ltr¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   )r´   r°   r±   s     rd   rV   rV   Ý   sÈ   € Ø�wÒØ�~‰~°aÐPSˆ~ÓTÐTØ	˜Ò	"Ø�~‰~°cÐRUˆ~ÓVÐVØ	˜Ò	"Ø�~‰~°cÐRUˆ~ÓVÐVØ	˜Ò	#Ø�~‰~°cÐRVˆ~ÓWÐWØ	˜Ò	$Ø�~‰~°dÐSWˆ~ÓXÐXØ	˜Ò	$Ø�~‰~°dÐSWˆ~ÓXÐXØ	˜Ò	 Ø�~‰~°dˆ~Ó;Ð;àˆrf   c                 óþ  — | j                   }t        | |||«      }t        j                  «       }|j                  }d|_        g d¢}|j                  |«       |d   D ]  }t        d¬«      |_        Œ |D �]‰  }	dj                  t        d |	j                  |	j                  |	j                  |	j                  |	j                  |	j                   |	j"                  |	j$                  |	j&                  |	j(                  |	j*                  |	j,                  g«      «      }
dj                  |	j.                  j1                  «       D �cg c]  }|j2                  ‘Œ c}«      }|	j4                  j1                  «       r| j                   j7                  «       nd}|	j8                  }|r|j;                  d«      }nd	}|	j<                  |	j>                  |	j@                  |	jB                  |
|	jD                  |||g	}|j                  |«       �ŒŒ |jF                  D ]A  }tI        d
„ |D «       «      }|dz   |jJ                  tM        |d   jN                  «         _(        ŒC tS        d¬«      }d}d|› �|d<   |jU                  |«       |S c c}w )NÚFarmers)	u   ÐŸÐ¾Ð²Ð½Ð° Ð½Ð°Ð·Ð²Ð°u   ÐšÐ¾Ð´ Ð„Ð”Ð ÐŸÐžÐ£u   ÐŸÐ¾ÑˆÑ‚Ð¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð°u   ÐŸÐ†Ð‘u   Ð¢ÐµÐ»ÐµÑ„Ð¾Ð½Ð¸u
   ÐŸÐ»Ð¾Ñ‰Ð°u   ÐšÑƒÐ»ÑŒÑ‚ÑƒÑ€Ð¸u   ÐœÐµÐ½ÐµÐ´Ð¶ÐµÑ€u4   Ð”Ð°Ñ‚Ð° Ð¾Ñ�Ñ‚Ð°Ð½Ð½ÑŒÐ¾Ð³Ð¾ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ�r%   T)Úboldz, u   Ð�ÐµÐ¼Ð°Ñ” Ð²Ð·Ð°Ñ”Ð¼Ð¾Ð´Ñ–Ð¹z%Y-%m-%d %H:%M:%SÚ c              3   ó`   K  — | ]&  }t        t        |j                  «      xs d «      –— Œ( y­w)r¹   N)rŽ   ÚstrÚvalue)Ú.0Úcells     rd   ú	<genexpr>z&export_farmers_xlsx.<locals>.<genexpr>.  s"   è ø€ ÒI°D”Sœ˜TŸZ™Z›Ò.¨B×/ÑIùs   ‚,.é   r   zAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet)Úcontent_typezfarmers.xlsxzattachment; filename=zContent-Disposition)+rH   re   ÚopenpyxlÚWorkbookr;   ÚtitleÚappendr   ÚfontÚjoinrP   Úphone_1Úphone_2Úphone_3Úphone_4Úphone_5Úphone_6Úphone_7Úphone_mobile_1Úphone_mobile_2Úphone_mobile_3Úphone_mobile_4Úphone_mobile_5rD   r>   rr   rE   Úget_full_nameÚlast_updatedÚstrftimeÚnamer4   ÚaddressÚdirectorÚlanding_areaÚcolumnsÚmaxÚcolumn_dimensionsr   ÚcolumnÚwidthr   Úsave)rY   rZ   r[   rH   r^   ÚwbÚwsÚheadersr¾   r—   Úphonesr5   rG   ÚmanagerrÕ   Úlast_updated_strÚdataÚcolumn_cellsÚlengthÚresponseÚfilenames                        rd   Úexport_farmers_xlsxrì   ð   sG  € à�<‰<€DÜ" 7¨D°&¸(ÓC€Gä	×	Ñ	Ó	€BØ	�‰€BØ€B„Hò
€Gð ‡I�IˆgÔà�1‘ò $ˆÜ˜d”Oˆ�	ð$ð ó "ˆØ—‘œ6 $Ø�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ×!Ñ!Ø×!Ñ!Ø×!Ñ!Ø×!Ñ!Ø×!Ñ!ð)
ó ó ˆð —9‘9Àf×F^ÑF^×FbÑFbÓFdÖe¸7˜g×6Ó6ÒeÓfˆØ28×2EÑ2E×2IÑ2IÔ2K�'—,‘,×,Ñ,Ô.ÐQpˆØ×*Ñ*ˆÙØ+×4Ñ4Ð5HÓIÑà!Ðð �K‰KØ�M‰MØ�N‰NØ�O‰OØØ×ÑØØØð

ˆð 	�	‰	�$ŽðE"ðH Ÿ
™
ò [ˆÜÑI¸LÔIÓIˆØPVÐYZÑPZˆ×ÑÔ.¨|¸A©×/EÑ/EÓFÑGÕMð[ô Ð)lÔm€HØ€HØ(=¸h¸ZÐ&H€HÐ"Ñ#Ø‡G�GˆHÔà€Oùò= fs   Ä>I:
c                 óè  — t        t        |¬«      }| j                  }t        |«      rnqt	        |«      r[|j
                  dk(  s@|j                  j                  t        |¬«      t        |¬«      z  «      j                  «       rnt        d«      S t        d«      S |j                  j                  «       }|j                  «       }|j                  j                  d«      }||||dœ}t!        | d|«      S )	N©Úidr0   ©rH   rJ   õC   Ð’Ð¸ Ð½Ðµ Ð¼Ð°Ñ”Ñ‚Ðµ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ñƒ Ð´Ð¾ Ñ†ÑŒÐ¾Ð³Ð¾ Ñ„ÐµÑ€Ð¼ÐµÑ€Ð°.Úcontact_details)r—   Úcatalog_landing_fieldsÚlanding_fields_countÚcontact_personszfarmer_detail.html)r   r   rH   r*   r+   r1   rE   rP   r   Úexistsr   ró   r>   Úcountrõ   rW   r   )rY   Ú	farmer_idr—   rH   ró   rô   rõ   rž   s           rd   Úfarmer_detailrù   9  så   € äœv¨)Ô4€FØ�<‰<€Dä�TÔØÜ	�DÔ	Ø×Ñ =Ò0°F×4GÑ4G×4NÑ4NÜ�t”œq¨TÔ2Ñ2ó54ß4:±F³Hð5=àä(Ð)nÓoÐoä$Ð%jÓkÐkà#×:Ñ:×>Ñ>Ó@ÐØ1×7Ñ7Ó9ÐØ×,Ñ,×=Ñ=Ð>OÓP€Oð Ø"8Ø 4Ø*ñ	€Gô �'Ð/°Ó9Ð9rf   c                 ó�  — t        t        |¬«      }| j                  }t        |«      rnqt	        |«      r[|j
                  dk(  s@|j                  j                  t        |¬«      t        |¬«      z  «      j                  «       rnt        d«      S t        d«      S |j                  j                  d«      }||dœ}t        | d|«      S )	Nrî   r0   rð   rJ   rñ   rò   )r—   rõ   zfarmer_general_info.html)r   r   rH   r*   r+   r1   rE   rP   r   rö   r   rõ   rW   r   )rY   rø   r—   rH   rõ   rž   s         rd   Úfarmer_general_inforû   V  s½   € äœv¨)Ô4€FØ�<‰<€Dô �TÔØÜ	�DÔ	Ø×Ñ =Ò0°F×4GÑ4G×4NÑ4NÜ�t”œq¨TÔ2Ñ2ó54ß4:±F³Hð5=àä(Ð)nÓoÐoä$Ð%jÓkÐkà×,Ñ,×=Ñ=Ð>OÓP€Oð Ø*ñ€Gô �'Ð5°wÓ?Ð?rf   c                 ó°  — t        t        |¬«      }| j                  }t        |«      rnqt	        |«      r[|j
                  dk(  s@|j                  j                  t        |¬«      t        |¬«      z  «      j                  «       rnt        d«      S t        d«      S |j                  j                  «       }|j                  «       }|||dœ}t        | d|«      S )Nrî   r0   rð   rJ   rñ   )r—   ró   rô   zfarmer_land_bank.html)r   r   rH   r*   r+   r1   rE   rP   r   rö   r   ró   r>   r÷   r   )rY   rø   r—   rH   ró   rô   rž   s          rd   Úfarmer_land_bankrý   p  sÍ   € äœv¨)Ô4€FØ�<‰<€Dô �TÔØÜ	�DÔ	Ø×Ñ =Ò0°F×4GÑ4G×4NÑ4NÜ�t”œq¨TÔ2Ñ2ó54ß4:±F³Hð5=àä(Ð)nÓoÐoä$Ð%jÓkÐkà#×:Ñ:×>Ñ>Ó@ÐØ1×7Ñ7Ó9Ðð Ø"8Ø 4ñ€Gô
 �'Ð2°GÓ<Ð<rf   c                 ó.  — t        t        |¬«      }| j                  dk(  rÛ| j                  j	                  d«      dk(  ry| j
                  j	                  d«      }| j
                  j	                  d«      }|r6t        ||«      r*t        |||«       |j                  «        t        ddi«      S t        d	«      S t        | j
                  |¬
«      }|j                  «       r)|j                  «        t        d|¬«      S t        |¬
«      }t        | dd|i«      S )Nrî   ÚPOSTzx-requested-withÚXMLHttpRequestÚ
field_nameÚfield_valueÚsuccessTzInvalid field name©Úinstancerù   ©rø   zedit_farmer.htmlÚform)r   r   Úmethodrã   rS   rÿ   ÚhasattrÚsetattrrà   r   r   r'   Úis_validr   r   )rY   rø   r—   r  r  r  s         rd   Úedit_farmerr  Œ  så   € äœv¨)Ô4€Fà‡~�~˜ÒØ�?‰?×ÑÐ1Ó2Ð6FÒFØ Ÿ™×)Ñ)¨,Ó7ˆJØ!Ÿ,™,×*Ñ*¨=Ó9ˆKÙœg f¨jÔ9Ü˜ 
¨KÔ8Ø—‘”Ü# Y°Ð$5Ó6Ð6ä-Ð.BÓCÐCä˜'Ÿ,™,°Ô8ˆØ�=‰=Œ?Ø�I‰IŒKÜ˜O°yÔAÐAä 6Ô*ˆÜ�'Ð-°¸¨~Ó>Ð>rf   c                 óH  — t         j                  j                  |¬«      }| j                  dk(  r[t	        | j
                  «      }|j                  «       r@|j                  d¬«      }||_        |j                  «        t        d|¬«      S t	        «       }t        | dd|i«      S )	Nrî   rÿ   F©Úcommitrù   r  zadd_landing_field.htmlr  )r   rO   rS   r  r(   rÿ   r  rà   r—   r   r   )rY   rø   r—   r  Úlanding_fields        rd   Úadd_landing_fieldr  ¤  s‰   € ä�^‰^×Ñ 9ÐÓ-€FØ‡~�~˜ÒÜ §¡Ó-ˆØ�=‰=Œ?Ø ŸI™I¨U˜IÓ3ˆMØ#)ˆMÔ Ø×ÑÔ Ü˜O°yÔAÐAäÓ!ˆÜ�'Ð3°f¸d°^ÓDÐDrf   c                 óê   — | j                   dk(  rLt        | j                  «      }|j                  «       r1|j	                  «       }t        d|j                  ¬«      S t        «       }t        | dd|i«      S )Nrÿ   Úfarmer_successr  zadd_farmer.htmlr  )r  r'   rÿ   r  rà   r   rï   r   )rY   r  r—   s      rd   Ú
add_farmerr  ³  s]   € à‡~�~˜ÒÜ˜'Ÿ,™,Ó'ˆØ�=‰=Œ?Ø—Y‘Y“[ˆFÜÐ,¸¿	¹	ÔBÐBä‹|ˆÜ�'Ð,¨v°t¨nÓ=Ð=rf   c                 ó    — t        | dd|i«      S )Nzfarmer_success.htmlrø   )r   )rY   rø   s     rd   r  r  ¿  s   € ä�'Ð0°;À	Ð2JÓKÐKrf   c                 ó¤  — t        t        |¬«      }| j                  dk(  rŠt        | j                  «      }|j                  «       rG|j                  d¬«      }||_        |j                  «        t        dd|i| ¬«      }t        d|d	œ«      S t        d
d|i| ¬«      }t        d|d	œ«      S t        «       }t        d
d|i| ¬«      }t        d|i«      S )Nrî   rÿ   Fr  ú!contacts/contact_detail_item.htmlÚdetail©rY   T©r  Úhtmlú!contacts/contact_detail_form.htmlr  r  )
r   r#   r  r)   rÿ   r  rà   Úcontact_personr   r   )rY   Ú	person_idr  r  Úcontact_detailr  s         rd   Úadd_contact_detailr   Ä  sË   € ä&¤}¸ÔC€NØ‡~�~˜ÒÜ  §¡Ó.ˆØ�=‰=Œ?Ø!ŸY™Y¨e˜YÓ4ˆNØ,:ˆNÔ)Ø×ÑÔ!Ü#Ð$GÈ(ÐTbÐIcÐmtÔuˆDÜ¨D¸$Ñ ?Ó@Ð@ä#Ð$GÈ&ÐRVÈÐahÔiˆDÜ¨E¸4Ñ @ÓAÐAä Ó"ˆÜÐ CÀfÈdÀ^Ð]dÔeˆÜ˜V T˜NÓ+Ð+rf   c                 óz  — t        t        |¬«      }| j                  dk(  rst        | j                  |¬«      }|j                  «       r.|j                  «        t        dd|i| ¬«      }t        d|dœ«      S t        d	d
|i| ¬«      }t        d|dœ«      S t        |¬«      }t        d	d
|i| ¬«      }t        d|i«      S )Nrî   rÿ   r  r  r  r  Tr  r  r  Fr  )	r   r$   r  r)   rÿ   r  rà   r   r   )rY   Ú	detail_idr  r  r  s        rd   Úedit_contact_detailr#  Ø  s´   € ä&¤}¸ÔC€NØ‡~�~˜ÒÜ  §¡¸ÔGˆØ�=‰=Œ?Ø�I‰IŒKÜ#Ð$GÈ(ÐTbÐIcÐmtÔuˆDÜ¨D¸$Ñ ?Ó@Ð@ä#Ð$GÈ&ÐRVÈÐahÔiˆDÜ¨E¸4Ñ @ÓAÐAä ¨.Ô9ˆÜÐ CÀfÈdÀ^Ð]dÔeˆÜ˜V T˜NÓ+Ð+rf   c                 ó–   — t        t        |¬«      }| j                  dk(  r|j                  «        t	        ddi«      S t	        ddi«      S )Nrî   rÿ   r  TF)r   r$   r  Údeleter   )rY   r"  r  s      rd   Údelete_contact_detailr&  ê  sF   € ä&¤}¸ÔC€NØ‡~�~˜ÒØ×ÑÔÜ˜Y¨Ð-Ó.Ð.ä˜Y¨Ð.Ó/Ð/rf   c                 ó¦  — t        t        |¬«      }| j                  dk(  r‹t        | j                  «      }|j                  «       rH|j                  d   }|j                  j                  |«       t        dd|i| ¬«      }t        d|dœ«      S t        dd	|i| ¬«      }t        d
|dœ«      S t        «       }t        dd	|i| ¬«      }t        d|i«      S )Nrî   rÿ   r  z!contacts/contact_person_item.htmlr  Tr  z.contacts/add_existing_contact_person_form.htmlr  Fr  )r   r   r  r,   rÿ   r  Úcleaned_datarõ   Úaddr   r   )rY   rø   r—   r  r  r  s         rd   Úadd_existing_contact_personr*  ô  sÒ   € äœv¨)Ô4€FØ‡~�~˜ÒÜ+¨G¯L©LÓ9ˆØ�=‰=Œ?Ø!×.Ñ.Ð/?Ñ@ˆNØ×"Ñ"×&Ñ& ~Ô6Ü#Ð$GÐJZÐ\jÐIkÐu|Ô}ˆDÜ¨D¸$Ñ ?Ó@Ð@ä#Ð$TÐW]Ð_cÐVdÐnuÔvˆDÜ¨E¸4Ñ @ÓAÐAä+Ó-ˆÜÐ PÐSYÐ[_ÐR`ÐjqÔrˆÜ˜V T˜NÓ+Ð+rf   c                   ó   — e Zd Zd„ Zy)ÚFarmerAutocompletec                 ó’   — t         j                  j                  «       }| j                  r|j	                  | j                  ¬«      }|S )N)Úname__icontains)r   rO   r>   ÚqrP   )ÚselfÚqss     rd   Úget_querysetzFarmerAutocomplete.get_queryset  s4   € Ü�^‰^×ÑÓ!ˆà�6Š6Ø—‘¨4¯6©6�Ó2ˆBàˆ	rf   N)rn   ro   rp   r2  © rf   rd   r,  r,    s   „ órf   r,  )NN)N)QÚdjango.shortcutsr   r   r   Údjango.contrib.auth.decoratorsr   Úallauth.account.formsr   Údjango.core.paginatorr   Údjango.urlsr	   Údjango.db.modelsr
   r   r   r   r   r   r   r   Údjango.db.models.functionsr   Údjango.utilsr   Údjango.httpr   r   r   r   r   Údjango.template.loaderr   Údjangor   r‘   rÂ   Úopenpyxl.utilsr   Úopenpyxl.stylesr   Úfarmerapp.modelsr   r   r   r    r!   Ú
crm.modelsr"   Úcontacts.modelsr#   r$   r&   r'   r(   r)   Úcommon.utilsr*   r+   Úcontacts.formsr,   Údalr-   re   rŸ   rU   rV   rì   rù   rû   rý   r  r  r  r  r   r#  r&  r*  ÚSelect2QuerySetViewr,  r3  rf   rd   ú<module>rH     sÂ  ðß @Ñ @Ý 9Ý +Ý +Ý ß S× SÓ SÝ ,Ý !ß lÕ lÝ 3Ý Û Û Ý ,Ý  ß [Õ [Ý "ß 8ß UÓ Uß 2Ý 7Ý óHñV Ð+Ô,òb1ó -ðb1òJò&ñ& Ð+Ô,òEó -ðEñP Ð+Ô,ò:ó -ð:ñ8 Ð+Ô,ñ@ó -ð@ñ2 Ð+Ô,ñ=ó -ð=ñ6 Ð+Ô,ñ?ó -ð?ñ. Ð+Ô,ñEó -ðEñ Ð+Ô,ñ>ó -ð>ñ Ð+Ô,ñLó -ðLð ñ,ó ð,ð& ñ,ó ð,ð" ñ0ó ð0ð ñ,ó ð,ô$˜×9Ñ9õ rf   