Ë
    Pß*h’  ã                   óÐ  — 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
 d dlmZ d dl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  ej2                  e«       G d„ dej4                  «      «       Z ej2                  e«       G d„ dej4                  «      «       Z ej2                  e«       G d„ dej4                  «      «       Z G d„ dej<                  «      Z G d„ dej4                  «      Z  ej2                  e«       G d„ de«      «       Z! ej2                  e
«       G d„ dej4                  «      «       Z  ej2                  e	«       G d„ dej4                  «      «       Z"y)é    )Úadmin)ÚRadioSelecté   )ÚFeedbackÚQRcodeGenerateÚFaceProfileÚPredefinedQAÚChatLogÚChatCategory)Úformat_htmlN)Úreverse)Úrender_to_string)Úpath)ÚHttpResponse)Ú	resources)ÚImportExportModelAdminc                   ó   — e Zd Zg d¢ZddgZy)ÚFeedbackAdmin)ÚratingÚcommentÚcontactÚsubmitted_atÚreferrerr   r   N©Ú__name__Ú
__module__Ú__qualname__Úlist_displayÚsearch_fields© ó    ú*/var/www/skyplay_api_hub/feedback/admin.pyr   r      s   „ âO€LØ 	Ð*�Mr!   r   c                   óT   ‡ — e Zd ZdZdZdddifdddiffZdˆ fd„	Z G d	„ d
«      Zˆ xZS )ÚQRcodeGenerateAdmin)ÚnameÚurlÚqr_codeÚmodule_drawerÚ
eye_drawer)r'   NÚfields)r%   r&   zQR Code Customization)Úqr_sizeÚqr_colorÚqr_backgroundr(   r)   c                 óÚ   •— t        ‰| �  ||fi |¤Ž}t        t        j                  ¬«      |j
                  d   _        t        t        j                  ¬«      |j
                  d   _        |S )N)Úchoicesr(   r)   )ÚsuperÚget_formr   r   ÚMODULE_DRAWER_CHOICESÚbase_fieldsÚwidgetÚEYE_DRAWER_CHOICES)ÚselfÚrequestÚobjÚkwargsÚformÚ	__class__s        €r"   r1   zQRcodeGenerateAdmin.get_form$   sZ   ø€ Ü‰wÑ ¨Ñ7°Ñ7ˆÜ3>Ä~×GkÑGkÔ3lˆ×Ñ˜Ñ)Ô0Ü0;ÄN×DeÑDeÔ0fˆ×Ñ˜Ñ&Ô-Øˆr!   c                   ó   — e Zd ZdZddiZy)úQRcodeGenerateAdmin.Mediar    Úallau  
                data:text/css,
                fieldset .radio {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 10px;
                }
                fieldset .radio label {
                    border: 1px solid #ccc;
                    padding: 8px 12px;
                    cursor: pointer;
                    border-radius: 6px;
                    text-align: center;
                    width: auto;
                    font-weight: 500;
                }
                fieldset .radio input {
                    margin-right: 6px;
                }
                N)r   r   r   ÚjsÚcssr    r!   r"   ÚMediar=   ,   s   „ Øˆàðð
‰r!   rA   )N)	r   r   r   r   Úreadonly_fieldsÚ	fieldsetsr1   rA   Ú__classcell__©r;   s   @r"   r$   r$      sL   ø„ àL€LØ"€Oð 
Ø�oð
ð 	ð 
!ØÐ]ð#
ð 	ð	€Iõ÷
õ 
r!   r$   c                   ó   — e Zd ZdZdZy)ÚFaceProfileAdmin)r%   Úphone_numberÚ
created_at)r%   rH   Nr   r    r!   r"   rG   rG   I   s   „ à9€LØ,�Mr!   rG   c                   ó    — e Zd Z G d„ d«      Zy)ÚPredefinedQAResourcec                   ó    — e Zd ZeZdZdZdZdZy)úPredefinedQAResource.Meta)Úid)rN   ÚquestionÚanswerÚcategoryTN)	r   r   r   r	   ÚmodelÚimport_id_fieldsr*   Úskip_unchangedÚreport_skippedr    r!   r"   ÚMetarM   Q   s   „ ØˆØ"ÐØ9ˆØˆØ‰r!   rV   N)r   r   r   rV   r    r!   r"   rK   rK   P   s   „ ÷ò r!   rK   c                   ó   — e Zd ZdZdZy)ÚChatCategoryAdmin©r%   ÚdescriptionNr   r    r!   r"   rX   rX   X   s   „ Ø*€LØ+�Mr!   rX   c                   óD   — e Zd ZeZdZdZdZd„ Zde_	        d„ Z
de
_	        y)	ÚPredefinedQAAdmin)rO   Úshort_answerÚ	edit_linkrQ   )rO   rP   Úcategory__name)rQ   c                 ó’   — t        |j                  «      dkD  rt        |j                  d d dz   «      S t        |j                  «      S )Né2   z...)ÚlenrP   r   ©r6   r8   s     r"   r]   zPredefinedQAAdmin.short_answere   s=   € Ü7:¸3¿:¹:³ÈÒ7KŒ{˜3Ÿ:™: c r˜?¨UÑ2Ó3ÐhÔQ\Ð]`×]gÑ]gÓQhÐhr!   zAnswer Previewc                 ó4   — t        d|j                  › d�«      S )Nz&<a href="/admin/feedback/predefinedqa/z/change/">Edit</a>)r   rN   rc   s     r"   r^   zPredefinedQAAdmin.edit_linki   s   € ÜÐCÀCÇFÁFÀ8ÐK]Ð^Ó_Ð_r!   ÚEditN)r   r   r   rK   Úresource_classr   r   Úlist_filterr]   Úshort_descriptionr^   r    r!   r"   r\   r\   ^   s2   „ à)€NØH€LØ<€MØ€Kòià%5€LÔ"ò`à"(€IÕr!   r\   c                   óD   ‡ — e Zd ZdZdZˆ fd„Zd„ Zde_        d„ ZdZ	ˆ xZ
S )rX   ©r%   rZ   Úparent_nameÚ	is_activerY   c                 óˆ   •— t         ‰| �  |«      }|j                  j                  dd «      dk(  r|j	                  d¬«      }|S )NÚparent__isnullÚTrueT)rn   )r0   Úget_querysetÚGETÚgetÚfilter)r6   r7   Úquerysetr;   s      €r"   rp   zChatCategoryAdmin.get_querysett   sA   ø€ Ü‘7Ñ'¨Ó0ˆð �;‰;�?‰?Ð+¨TÓ2°fÒ<Ø—‘°d�Ó;ˆHØˆr!   c                 óJ   — |j                   r|j                   j                  S dS )Nu   â€”)Úparentr%   rc   s     r"   rk   zChatCategoryAdmin.parent_name|   s   € Ø"%§*¢*ˆs�z‰z�‰Ð7°%Ð7r!   zParent Categoryc                 óD   — |j                   j                  dd «      dk(  ryy)Nrn   ro   )r%   rZ   rl   rj   )rq   rr   )r6   r7   s     r"   Úget_list_displayz"ChatCategoryAdmin.get_list_display�   s    € Ø�;‰;�?‰?Ð+¨TÓ2°fÒ<Ø7ØBr!   )rl   )r   r   r   r   r   rp   rk   rh   rx   rg   rD   rE   s   @r"   rX   rX   n   s,   ø„ àF€LØ+€Môò8à$5€KÔ!òCð !„Kr!   c                   óP   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zde_         G d„ d«      Zˆ xZ	S )ÚChatLogAdmin)Ú	user_nameÚ
user_emailÚ
user_phoneÚ	timestampÚview_conversation_linkc                 óŽ   •— t         ‰| �  «       }t        d| j                  j	                  | j
                  «      d¬«      g}||z   S )Nzconversation/<int:pk>/Úchatlog_popup)r%   )r0   Úget_urlsr   Ú
admin_siteÚ
admin_viewÚview_conversation_popup)r6   ÚurlsÚcustom_urlsr;   s      €r"   r‚   zChatLogAdmin.get_urls�   sJ   ø€ Ü‰wÑÓ!ˆäØ(Ø—‘×*Ñ*¨4×+GÑ+GÓHØ$ôð
ˆð ˜TÑ!Ð!r!   c                 óJ   — t        d|j                  g¬«      }t        d|«      S )Nzadmin:chatlog_popup)Úargsui   <a href="{}" onclick="return showChatPopup(this.href);"><span style="font-size: 18px;">ðŸ‘�ï¸�</span></a>)r   Úpkr   )r6   r8   r&   s      r"   r   z#ChatLogAdmin.view_conversation_linkš   s+   € ÜÐ+°3·6±6°(Ô;ˆÜð@àó
ð 	
r!   c                 ó¼   — | j                  ||«      }	 t        j                  |j                  «      }t        d||dœ«      }t        |«      S # t        $ r g }Y Œ'w xY w)Nz!feedback/admin/chatlog_popup.html)ÚconversationÚuser)Ú
get_objectÚjsonÚloadsrŒ   Ú	Exceptionr   r   )r6   r7   rŠ   r8   ÚconvÚhtmls         r"   r…   z$ChatLogAdmin.view_conversation_popup¢   sb   € Ø�o‰o˜g rÓ*ˆð	Ü—:‘:˜c×.Ñ.Ó/ˆDô  Ð CÐVZÐdgÑEhÓiˆÜ˜DÓ!Ð!øô	 ò 	ØŠDð	ús   ”A ÁAÁAÚConversationc                   ó   — e Zd ZdZy)úChatLogAdmin.Media)zjs/show_chat_popup.jsN)r   r   r   r?   r    r!   r"   rA   r–   ®   s   „ Ø'‰r!   rA   )
r   r   r   r   r‚   r   r…   rh   rA   rD   rE   s   @r"   rz   rz   ‹   s,   ø„ àc€Lô	"ò
ò"ð 0>ÐÔ,÷(õ (r!   rz   )#Údjango.contribr   Údjango.formsr   Úmodelsr   r   r   r	   r
   r   Údjango.utils.htmlr   r�   Údjango.urlsr   Údjango.template.loaderr   r   Údjango.httpr   Úimport_exportr   Úimport_export.adminr   ÚregisterÚ
ModelAdminr   r$   rG   ÚModelResourcerK   rX   r\   rz   r    r!   r"   ú<module>r£      sO  ðÝ  Ý $ß ]× ]Ý )Û Ý Ý 3Ý Ý $Ý #Ý 6à€‡��Óô+�E×$Ñ$ó +ó ð+ð €‡��Óô/
˜%×*Ñ*ó /
ó  ð/
ðf €‡��Óô-�u×'Ñ'ó -ó ð-ô˜9×2Ñ2ô ô,˜×(Ñ(ô ,ð €‡��Óô)Ð.ó )ó ð)ð €‡��Óô!˜×(Ñ(ó !ó ð!ð8 €‡��Óô#(�5×#Ñ#ó #(ó ñ#(r!   