
    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    OL	*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>~GkGk3l)00;NDeDe0f&-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    LL"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    9L,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 )N2   z...)lenrP   r   r6   r8   s     r"   r]   zPredefinedQAAdmin.short_answere   s=    7:3::7K{3::cr?U23hQ\]`]g]gQh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    CCFF8K]^__r!   EditN)r   r   r   rK   resource_classr   r   list_filterr]   short_descriptionr^   r    r!   r"   r\   r\   ^   s2    )NHL<MKi%5L"`"(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2f<d;Hr!   c                 J    |j                   r|j                   j                  S dS )Nu   —)parentr%   rc   s     r"   rk   zChatCategoryAdmin.parent_name|   s    "%**szz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2f<7Br!   )rl   )r   r   r   r   r   rp   rk   rh   rx   rg   rD   rE   s   @r"   rX   rX   n   s,    FL+M8$5K!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+    +366(;@
 	
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    oogr*	::c../D   CVZdgEh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,    cL	"
" 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!   