Ë
    ¼°gîK  ã                   ó:  — 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 d dlmZmZmZ d d	lmZ d d
l mZmZmZ d dlmZ ddl
mZmZ ddlmZ d dlm	Z	 d dlmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ d dlm Z m!Z! d dlm"Z" d dl#m$Z$ d„ Z% ed¬«      d„ «       Z&ed„ «       Z' ed¬«      d„ «       Z( ed¬«      d„ «       Z) ed¬«      d„ «       Z* ed¬«      d„ «       Z+ ed¬«      d„ «       Z, ed¬«      d„ «       Z- G d„ d ej\                  «      Z/y!)"é    )ÚrenderÚredirectÚget_object_or_404)Úlogin_required)ÚJsonResponse)Útimezoneé   )ÚInteraction)ÚInteractionForm)ÚFarmerÚRegionÚDistrict)ÚPrefetch)r   r   r   )r   r
   )Ú	timedelta)Úis_supervisorÚ
is_manager)ÚUserÚGroup)Úautocomplete)ÚContactPerson)ÚCountÚQ)ÚHttpResponseForbidden)ÚLowerc                 óÔ   — t        | «      ryt        | «      rQ|j                  dk(  xs@ |j                  j	                  t        | ¬«      t        | ¬«      z  «      j                  «       S y)NTÚunprocessed©Úuser)Úassigned_toF)r   r   Úclient_statusÚinteractionsÚfilterr   Úexists©r   Úfarmers     ú+/var/www/tradingcms/tradingcms/crm/views.pyÚhas_access_to_farmerr'      s[   € Ü�TÔØÜ	�DÔ	Ø×#Ñ# }Ñ4Ò¸×8KÑ8K×8RÑ8RÔSTÐZ^ÔS_ÔbcÐptÔbuÑSuÓ8v×8}Ñ8}Ó8Ðàó    zaccounts/login/)Ú	login_urlc                 ó˜  — t        t        |¬«      }| j                  }t        ||«      st	        d«      S | j
                  dk(  �rt        | j                  ||¬«      }|j                  «       rò|j                  d¬«      }||_        ||_
        |j                  «        |j                  «        |j                  |_        |j                  «        |j                  }|r_|j                  j                  |j                   ¬«      j#                  «       s+|j                  j%                  |«       |j                  «        t'        d|j                   ¬«      S t        ||¬«      }|j(                  j+                  «       j-                  d	«      j/                  d
d«      }|||t1        j2                  «       j5                  «       dœ}t7        | d|«      S )N©ÚiduC   Ð’Ð¸ Ð½Ðµ Ð¼Ð°Ñ”Ñ‚Ðµ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ñƒ Ð´Ð¾ Ñ†ÑŒÐ¾Ð³Ð¾ Ñ„ÐµÑ€Ð¼ÐµÑ€Ð°.ÚPOSTr$   F)ÚcommitÚfarmer_detail)Ú	farmer_idú-dateÚculturesr   )Úformr%   r!   Útodayzcrm/create_interaction.html)r   r   r   r'   r   Úmethodr   r-   Úis_validÚsaver%   Úsave_m2mr    Úcontact_personÚfarmersr"   r,   r#   Úaddr   r!   ÚallÚorder_byÚprefetch_relatedr   ÚnowÚdater   )	Úrequestr0   r%   r   r3   Úinteractionr9   r!   Úcontexts	            r&   Úcreate_interactionrD   $   sv  € äœv¨)Ô4€FØ�<‰<€Dä  fÔ-Ü$Ð%jÓkÐkà‡~�~˜ÓÜ˜wŸ|™|°$¸vÔFˆØ�=‰=Œ?ØŸ)™)¨5˜)Ó1ˆKØ#ˆKÔØ!'ˆKÔØ×ÑÔØ�M‰MŒOð $/×#<Ñ#<ˆFÔ Ø�K‰KŒMð )×7Ñ7ˆNÙ n×&<Ñ&<×&CÑ&CÀvÇyÁyÐ&CÓ&Q×&XÑ&XÔ&ZØ×&Ñ&×*Ñ*¨6Ô2Ø×#Ñ#Ô%ä˜O°v·y±yÔAÐAä D°Ô8ˆà×&Ñ&×*Ñ*Ó,×5Ñ5°gÓ>×OÑOÐPZÐ\bÓc€Lð ØØ$Ü—‘“×$Ñ$Ó&ñ	€Gô �'Ð8¸'ÓBÐBr(   c           
      ó  — | j                   j                  «       }|j                  dd«      }g d¢}||vrd}t        j                  j                  | j                  ¬«      }|j                  dd«      }|r|j                  |¬«      }|j                  dd«      }|r|j                  |¬	«      }|j                  d
d«      }|r|j                  |¬«      }|j                  |«      }t        j                  j                  | j                  ¬«      j                  «       }t        j                  }	||j                  d«      |j                  d«      rdnd||rt        |«      nd|||	|j                  «       dœ	}
t        | d|
«      S )NÚsortr1   )r@   r1   Únext_interaction_datez-next_interaction_dater   r    Ú ©r    r%   )Ú
farmer__idÚinteraction_type)rK   ©Úinteractions__userÚ-ÚdescÚasc)	r!   Úcurrent_sortÚcurrent_sort_directionr    r0   rK   r:   Úinteraction_typesÚquery_paramszcrm/interaction_list.html)ÚGETÚcopyÚgetr
   Úobjectsr"   r   r=   r   ÚdistinctÚINTERACTION_TYPESÚlstripÚ
startswithÚintÚ	urlencoder   )rA   rT   rF   Úallowed_sort_fieldsr!   r    r0   rK   r:   rS   rC   s              r&   Úinteraction_listr`   N   s†  € ð —;‘;×#Ñ#Ó%€Lð ×Ñ˜F GÓ,€Dò _Ðð Ð&Ñ&Øˆô ×&Ñ&×-Ñ-°7·<±<Ð-Ó@€Lð !×$Ñ$ _°bÓ9€MÙØ#×*Ñ*¸Ð*ÓGˆð × Ñ  ¨2Ó.€IÙØ#×*Ñ*°iÐ*Ó@ˆð $×'Ñ'Ð(:¸BÓ?ÐÙØ#×*Ñ*Ð<LÐ*ÓMˆð  ×(Ñ(¨Ó.€Lô �n‰n×#Ñ#°w·|±|Ð#ÓD×MÑMÓO€Gô $×5Ñ5Ðð %ØŸ™ CÓ(Ø,0¯O©O¸CÔ,@¡&ÀeØ&Ù'0”S˜”^°bØ,ØØ.Ø$×.Ñ.Ó0ñ
€Gô �'Ð6¸Ó@Ð@r(   c                 ó¸   — t         j                  j                  | j                  t	        j
                  «       ¬«      j                  d«      }t        | dd|i«      S )N)r   Únext_interaction_date__gterG   zcrm/reminders.htmlÚupcoming_interactions)r
   rX   r"   r   r   r?   r=   r   )rA   rc   s     r&   Ú	remindersrd   ‡   sV   € ä'×/Ñ/×6Ñ6¸G¿L¹LÔem×eqÑeqÓesÐ6Ót×}Ñ}ð  Vó  WÐÜ�'Ð/Ð2IÐK`Ð1aÓbÐbr(   c                 óš  — t        j                  «       }t        j                  j	                  | j
                  |d¬«      j                  d«      }|D �cg c]`  }|j                  j                  |j                  «       |j                  |j                  |j                  |j                  |j                  dœ‘Œb }}t        |d¬«      S c c}w )NF)r   Únext_interaction_date__lteÚnext_interaction_date__isnullrG   )r%   rK   ÚcultureÚpriceÚbasisÚcommentrG   )Úsafe)r   r?   r
   rX   r"   r   r=   r%   ÚnameÚget_interaction_type_displayrh   ri   rj   rk   rG   r   )rA   Úcurrent_timerd   ÚreminderÚreminders_lists        r&   Úget_remindersrr   �   sÉ   € ä—<‘<“>€LÜ×#Ñ#×*Ñ*°·±ÐYeð  FKÐ*ó  L÷  Uñ  Uð  Vmó  n€Ið  ö!ð ð —/‘/×&Ñ&Ø$×AÑAÓCØ×#Ñ#Ø—‘Ø—‘Ø×#Ñ#Ø!)×!?Ñ!?óð !€Nð !ô ˜¨UÔ3Ð3ùò!s   ÁA%Cc                 ó¬  — | j                   }t        |«      rut        j                  «       }|t	        d¬«      z
  }t
        j                  j                  |||f¬«      j                  d«      j                  d«      }d|i}t        | d|«      S t        |«      �r£| j                  j                  dd	«      }| j                  j                  d
d«      }t        j                  «       }d }|dk(  r|t	        d¬«      z
  }n[|dk(  r|t	        d¬«      z
  }nF|dk(  r|t	        d¬«      z
  }n1|dk(  r|t	        d¬«      z
  }n|dk(  r|t	        d¬«      z
  }n|d	k(  rd }t        j                  j                  d¬«      }t        j                  j                  d¬«      }	t        j                  j                  t!        |¬«      t!        |	¬«      z  «      j#                  «       }
t
        j                  j                  |
¬«      j                  dd«      j                  d«      }|r|j                  ||f¬«      }g }t
        j$                  D �cg c]  }|d   ‘Œ	 }}t
        j$                  D �ci c]  }|d   |d   “Œ }}|
D ]‰  }|j                  |¬«      }|j'                  «       }|j)                  d «      j+                  t-        d «      ¬!«      }|D �ci c]  }|d“Œ }}|D ]  }|d    }|d"   }|||<   Œ |j/                  |||d#œ«       Œ‹ |dk(  rd$nd%}t1        |d&„ |¬'«      }d(d)d*d+d,d-d.œ}|||||||d/œ}t        | d0|«      S t3        d1«      S c c}w c c}w c c}w )2Né   ©Údays)r   Údate__ranger%   r2   r!   zcrm/manager_dashboard.htmlÚperiodr<   Ú
sort_orderrO   Úweekr	   ©ÚweeksÚmonthé   Ú3monthséZ   Ú6monthsé´   Úyearém  ÚManagers©rm   ÚSupervisors)Úgroups)Úuser__inr   ©rw   r   r   r    )Úcountr‹   )ÚmanagerÚtotal_interactionsÚstatus_countsTFc                 ó   — | d   S )Nr�   © )Úxs    r&   ú<lambda>z user_dashboard.<locals>.<lambda>ï   s   € ¨AÐ.BÑ,C€ r(   )ÚkeyÚreverseõ   Ð—Ð° Ð²ÐµÑ�ÑŒ Ð¿ÐµÑ€Ñ–Ð¾Ð´õ   Ð—Ð° Ñ‚Ð¸Ð¶Ð´ÐµÐ½ÑŒõ   Ð—Ð° Ð¼Ñ–Ñ�Ñ�Ñ†ÑŒõ   Ð—Ð° 3 Ð¼Ñ–Ñ�Ñ�Ñ†Ñ–õ   Ð—Ð° Ð¿Ñ–Ð²-Ñ€Ð¾ÐºÑƒõ   Ð—Ð° Ñ€Ñ–Ðº©r<   rz   r}   r   r�   rƒ   )r!   Ústatsrx   ry   Úpossible_statusesÚstatus_display_namesÚPERIOD_CHOICESzcrm/supervisor_dashboard.htmlõC   Ð’Ð¸ Ð½Ðµ Ð¼Ð°Ñ”Ñ‚Ðµ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ñƒ Ð´Ð¾ Ñ†Ñ–Ñ”Ñ— Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸.)r   r   r   r?   r   r
   rX   r"   Úselect_relatedr>   r   r   rU   rW   r   r   r   rY   ÚCLIENT_STATUS_CHOICESr‹   ÚvaluesÚannotater   ÚappendÚsortedr   )rA   r   Úend_dateÚ
start_dater!   rC   rx   ry   Úmanager_groupÚsupervisor_groupÚmanagersrœ   Úchoicer�   rž   rŒ   Úmanager_interactionsr�   rŽ   ÚstatusÚstatus_counts_dictÚitemr‹   r”   rŸ   s                            r&   Úuser_dashboardr±   �   s”  € à�<‰<€Dä�$Ôä—<‘<“>ˆØ¤	¨qÔ 1Ñ1ˆ
ä"×*Ñ*×1Ñ1ØØ# XÐ.ð 2ó 
÷ ‰.˜Ó
"×#3Ñ#3°JÓ#?ð 	ð ˜Lð
ˆô �gÐ;¸WÓEÐEä	�tÕ	à—‘—‘ ¨5Ó1ˆØ—[‘[—_‘_ \°6Ó:ˆ
ô —<‘<“>ˆØˆ
à�VÒØ!¤I°AÔ$6Ñ6‰JØ�wÒØ!¤I°2Ô$6Ñ6‰JØ�yÒ Ø!¤I°2Ô$6Ñ6‰JØ�yÒ Ø!¤I°3Ô$7Ñ7‰JØ�vÒØ!¤I°3Ô$7Ñ7‰JØ�uŠ_ØˆJô Ÿ™×)Ñ)¨zÐ)Ó:ˆÜ Ÿ=™=×,Ñ,°-Ð,Ó@Ðô —<‘<×&Ñ&¤q°Ô'>ÄÐJZÔA[Ñ'[Ó\×eÑeÓgˆô #×*Ñ*×1Ñ1Øð 2ó 
ç
‰.˜ 6Ó
*×+;Ñ+;¸JÓ+Gð 	ñ
 Ø'×.Ñ.¸JÈÐ;QÐ.ÓRˆLð ˆÜ5@×5VÑ5VÖW¨6˜V A›YÐWÐÐWÜCN×CdÑCdÖe¸  q¡	¨6°!©9Ñ 4ÐeÐÐeàò 	ˆGØ#/×#6Ñ#6¸GÐ#6Ó#DÐ Ø!5×!;Ñ!;Ó!=ÐØ0×7Ñ7¸ÓH×QÑQÔX]Ð^mÓXnÐQÓoˆMð ;LÖ!L° &¨!¡)Ð!LÐÐ!LØ%ò 3�Ø˜oÑ.�Ø˜W™�Ø-2Ð" 6Ò*ð3ð
 �L‰LØ"Ø&8Ø!3ñõ ð	ð& %¨Ò.‘$°EˆÜ�uÑ"CÈWÔUˆð 0Ø)Ø(Ø,Ø-Ø!ñ
ˆð )ØØØ$Ø!2Ø$8Ø,ñ
ˆô �gÐ>ÀÓHÐHô %Ð%jÓkÐkùò_ XùÚeùò "Ms   ÉMÉ$MË
Mc                 óÎ  — | j                   }t        |«      st        d«      S t        t        |¬«      }t
        j                  j                  d¬«      }t
        j                  j                  d¬«      }|j                  j                  t        |j                  ¬«      t        |j                  ¬«      z  «      j                  «       st        d«      S | j                  j                  dd«      }t        j                  «       }d }|d	k(  r|t!        d
¬«      z
  }n[|dk(  r|t!        d¬«      z
  }nF|dk(  r|t!        d¬«      z
  }n1|dk(  r|t!        d¬«      z
  }n|dk(  r|t!        d¬«      z
  }n|dk(  rd }t"        j                  j                  |¬«      j%                  dd«      j'                  d«      }	|r|	j                  ||f¬«      }	ddddddd œ}
|	|||
d!œ}t)        | d"|«      S )#Nr    r+   r…   r†   r‡   uc   Ð’Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð¿ÐµÑ€ÐµÐ³Ð»Ñ�Ð´Ð°Ñ‚Ð¸ Ð²Ð·Ð°Ñ”Ð¼Ð¾Ð´Ñ–Ñ— Ñ†ÑŒÐ¾Ð³Ð¾ ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚ÑƒÐ²Ð°Ñ‡Ð°.rx   r<   rz   r	   r{   r}   r~   ru   r   r€   r�   r‚   rƒ   r„   r   r%   r   r2   rŠ   r•   r–   r—   r˜   r™   rš   r›   )r!   Útarget_userrx   rŸ   zcrm/user_interactions.html)r   r   r   r   r   r   rX   rW   rˆ   r"   r   r,   r#   rU   r   r?   r   r
   r¡   r>   r   )rA   Úuser_idr   r³   r©   rª   rx   r§   r¨   r!   rŸ   rC   s               r&   Úuser_interactionsrµ   
  sì  € à�<‰<€Dä˜ÔÜ$Ð%jÓkÐkô $¤D¨WÔ5€Kô —M‘M×%Ñ%¨:Ð%Ó6€MÜ—}‘}×(Ñ(¨mÐ(Ó<ÐØ×Ñ×$Ñ$¤Q¨-×*:Ñ*:Ô%;¼aÐCS×CVÑCVÔ>WÑ%WÓX×_Ñ_ÔaÜ$ð  &Kó  Lð  	Lð �[‰[�_‰_˜X uÓ-€Fô �|‰|‹~€HØ€Jà�ÒØ¤	°Ô 2Ñ2‰
Ø	�7Ò	Ø¤	¨rÔ 2Ñ2‰
Ø	�9Ò	Ø¤	¨rÔ 2Ñ2‰
Ø	�9Ò	Ø¤	¨sÔ 3Ñ3‰
Ø	�6Ò	Ø¤	¨sÔ 3Ñ3‰
Ø	�5ŠØˆ
ô ×&Ñ&×-Ñ-Øð .ó ç�n�X˜vÓ&×'7Ñ'7¸
Ó'Cð ñ
 Ø#×*Ñ*¸
ÀHÐ7MÐ*ÓNˆð ,Ø%Ø$Ø(Ø)Øñ€Nð %Ø"ØØ(ñ	€Gô �'Ð7¸ÓAÐAr(   c                 ój  — | j                   }t        |«      rt        j                  j	                  «       }n[t        |«      rEt        j                  j                  t        d¬«      t        |¬«      z  «      j                  «       }nt        d«      S t        j                  }|D �cg c]  }|d   ‘Œ	 }}|D �ci c]  }|d   |d   “Œ }} |j                  dd«      j                  dt        d	«      t        d
d¬«      dœ|D �ci c]  }d|› �t        d	t        |¬«      ¬«      “Œ c}¤Žj                  d«      }d}	d}
|D �ci c]  }|d“Œ }}|D ]9  }|	|d   z  }	|
|d   z  }
|D ]"  }||xx   |j                  d|› �d«      z  cc<   Œ$ Œ; ||||	|
|dœ}t!        | d|«      S c c}w c c}w c c}w c c}w )Nr   rI   rL   r    r   r	   Ú
region__idÚregion__namer,   r!   T©rY   ©Ú	num_farmsÚnum_interactionsÚnum_©r"   r»   r¼   )Úregionsr�   rž   Útotal_num_farmsÚtotal_num_interactionsÚtotal_num_statuseszcrm/region_statistics.htmlr�   )r   r   r   rX   r<   r   r"   r   rY   r   r¢   r£   r¤   r   r=   rW   r   )rA   r   r:   r¢   r¬   r�   rž   r®   r¿   rÀ   rÁ   rÂ   ÚregionrC   s                 r&   Úregion_statisticsrÄ   K  sü  € à�<‰<€Dô �TÔÜ—.‘.×$Ñ$Ó&‰Ü	�DÔ	Ü—.‘.×'Ñ'Ü˜MÔ*Ü Ô&ñ'ó
÷ ‰(‹*ñ 	ô
 %Ð%jÓkÐkô #×8Ñ8ÐØ1FÖG v˜ ›ÐGÐÐGØ?TÖU°V˜F 1™I v¨a¡yÑ0ÐUÐÐUð Dˆg�n‰n˜\¨>Ó:×CÑCð Ü˜“+Ü˜~¸Ô=ñð
 ,ö
àð �6�(ˆOœU 4´ÀÔ0GÔHÑHò
ñ÷ �hˆ~Óð ð €OØÐØ2CÖD¨˜& !™)ÐDÐÐDàò IˆØ˜6 +Ñ.Ñ.ˆØ &Ð);Ñ"<Ñ<ÐØ'ò 	IˆFØ˜vÓ&¨&¯*©*°t¸F¸8°_ÀaÓ*HÑHÔ&ñ	IðIð Ø.Ø 4Ø*Ø"8Ø0ñ€Gô �'Ð7¸ÓAÐAùòC HùÚUùò
ùò Es   Â&F!Â8F&Ä"F+Å
F0c                 ó–  — | j                   }t        t        |¬«      }t        |«      r!t        j
                  j                  |¬«      }n]t        |«      rGt        j
                  j                  t        d¬«      t        |¬«      z  |¬«      j                  «       }nt        d«      S t        j                  }|D �cg c]  }|d   ‘Œ	 }}|D �ci c]  }|d   |d   “Œ }} |j                  d	d
«      j                  dt        d«      t        dd¬«      dœ|D �	ci c]  }	d|	› �t        dt        |	¬«      ¬«      “Œ c}	¤Žj                  d
«      }
d}d}|D �	ci c]  }	|	d“Œ }}	|
D ]9  }||d   z  }||d   z  }|D ]"  }	||	xx   |j!                  d|	› �d«      z  cc<   Œ$ Œ; ||
|||||dœ}t#        | d|«      S c c}w c c}w c c}	w c c}	w )Nr+   )rÃ   r   rI   rL   r    r   r	   Údistrict__idÚdistrict__namer,   r!   Tr¹   rº   r½   r¾   r»   r¼   )rÃ   Ú	districtsr�   rž   rÀ   rÁ   rÂ   zcrm/district_statistics.htmlr�   )r   r   r   r   r   rX   r"   r   r   rY   r   r¢   r£   r¤   r   r=   rW   r   )rA   Ú	region_idr   rÃ   r:   r¢   r¬   r�   rž   r®   rÈ   rÀ   rÁ   rÂ   ÚdistrictrC   s                   r&   Údistrict_statisticsrË   €  s  € à�<‰<€Dô œv¨)Ô4€Fô �TÔÜ—.‘.×'Ñ'¨vÐ'Ó6‰Ü	�DÔ	Ü—.‘.×'Ñ'Ü˜MÔ*Ü Ô&ñ'àð (ó 
÷ ‰(‹*ñ	 	ô %Ð%jÓkÐkô #×8Ñ8ÐØ1FÖG v˜ ›ÐGÐÐGØ?TÖU°V˜F 1™I v¨a¡yÑ0ÐUÐÐUð J�—‘˜~Ð/?Ó@×IÑIð Ü˜“+Ü˜~¸Ô=ñð
 ,ö
àð �6�(ˆOœU 4´ÀÔ0GÔHÑHò
ñ÷ �hÐÓ ð ð €OØÐØ2CÖD¨˜& !™)ÐDÐÐDàò KˆØ˜8 KÑ0Ñ0ˆØ (Ð+=Ñ">Ñ>ÐØ'ò 	KˆFØ˜vÓ&¨(¯,©,¸¸f¸X°ÈÓ*JÑJÔ&ñ	KðKð ØØ.Ø 4Ø*Ø"8Ø0ñ€Gô �'Ð9¸7ÓCÐCùòE HùÚUùò
ùò Es   Â;F7ÃF<Ä"GÅ
Gc                   ó   — e Zd Zd„ Zd„ Zy)ÚContactPersonAutocompletec                 ó   — | j                   j                  j                  st        j                  j                  «       S t        j                  j                  «       }| j                  j                  dd «      }|r6|j                  t        |¬«      t        d¬«      z  «      j                  «       }| j                  rA| j                  }|j                  t        |¬«      t        |¬«      z  t        |¬«      z  «      }|S )Nr%   )Úfarmers__idT)Úfarmers__isnull)Úname__icontains)Úsurname__icontains)Úfather_name__icontains)rA   r   Úis_authenticatedr   rX   Únoner<   Ú	forwardedrW   r"   r   rY   Úq)ÚselfÚqsr0   Úsearch_terms       r&   Úget_querysetz&ContactPersonAutocomplete.get_queryset»  sÊ   € Ø�|‰|× Ñ ×1Ò1Ü ×(Ñ(×-Ñ-Ó/Ð/ä×"Ñ"×&Ñ&Ó(ˆà—N‘N×&Ñ& x°Ó6ˆ	ÙØ—‘Ü˜iÔ(¬1¸TÔ+BÑBóç‰h‹jð ð �6Š6ØŸ&™&ˆKØ—‘Ü +Ô.Ü [Ô1ñ2ä¨Ô5ñ6óˆBð ˆ	r(   c                 óR   — |j                   › d|j                  › d|j                  › �S )NÚ )Úsurnamerm   Úfather_name)rØ   r°   s     r&   Úget_result_labelz*ContactPersonAutocomplete.get_result_labelÑ  s(   € Ø—,‘,�˜q §¡ ¨1¨T×-=Ñ-=Ð,>Ð?Ð?r(   N)Ú__name__Ú
__module__Ú__qualname__rÛ   rà   r�   r(   r&   rÍ   rÍ   º  s   „ òó,@r(   rÍ   N)0Údjango.shortcutsr   r   r   Údjango.contrib.auth.decoratorsr   Údjango.httpr   Údjango.utilsr   Úmodelsr
   Úformsr   Úfarmerapp.modelsr   r   r   Údjango.db.modelsr   Údatetimer   Úcommon.utilsr   r   Údjango.contrib.auth.modelsr   r   Údalr   Úcontacts.modelsr   r   r   r   Údjango.db.models.functionsr   r'   rD   r`   rd   rr   r±   rµ   rÄ   rË   ÚSelect2QuerySetViewrÍ   r�   r(   r&   ú<module>ró      sI  ð÷ AÑ @Ý 9Ý $Ý !Ý Ý "ß 5Ñ 5Ý %ç @Ñ @Ý 9ß 'Ý "Ý !Ý ß 2ß 2Ý Ý )ß %Ý -Ý ,òñ Ð+Ô,ñ'Có -ð'CðR ñ5Aó ð5Añp Ð+Ô,ñcó -ðcñ
 Ð+Ô,ñ4ó -ð4ñ Ð+Ô,ñiló -ðilñX Ð+Ô,ñ=Bó -ð=Bñ@ Ð+Ô,ñ1Bó -ð1Bñh Ð+Ô,ñ6Dó -ð6Dôr@ × @Ñ @õ @r(   