
    wg                        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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  G d	 d
e          Z G d dej                  Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z! G d dej                  Z" G d de          Z# G d de          Z$ej%        &                    e           ej%        &                    e           ej%        &                    ee           ej%        &                    ee            ej%        &                    ee$           ej%        &                    ee"           dS )    )settings)admin)Max)	mark_safe)get_admin_settings)
PenaltyLogSessionActionSessionFiltersSessionFiltersHeaderSessionModelTryLoginToAdminPanelTryLoginToFakeAdminPanel
UserActionUserActivityWebSearcherWebSearcherAction)redirect_to_change_page_tag)
BaseInlinec                   h    e Zd ZeZdgZeZ ej        d          d             Z	de
fdZde
fdZdS )	UserActionInlineaction descriptionc                 ^    |j                             d           dd |j         d|j         S )N%d.%m %H:%M:%S:z     z - )timestrftimeadresstextselfobjs     ./var/www/html/cms/web/site_statistics/admin.pyr   zUserActionInline.action   s:    H%%&677__(_CJ__SVS[___    returnc                     dS NF r#   argskwargss      r%   has_delete_permissionz&UserActionInline.has_delete_permission!       ur&   c                     dS r)   r*   r+   s      r%   has_add_permissionz#UserActionInline.has_add_permission$   r/   r&   N)__name__
__module____qualname__r   modelfieldsreadonly_fieldsr   displayr   boolr.   r1   r*   r&   r%   r   r      s        EZFOU]r"""` ` #"`    T      r&   r   c                   ^    e Zd Z e            j        Z ej        dd          d             Z ej        d          d             Z ej        d          d	             Z	 ej        d
          d             Z
 ej        dd          d             Z fdZ G d d          Z xZS )BaseSessionAdminu   Датаz-start_time)r   orderingc                 6    |j                             d          S Nr   )
start_timer   r"   s     r%   start_time_tagzBaseSessionAdmin.start_time_tag+   s    ~&&'7888r&   u
   Времяr   c                     |j                                         }|r|j        }n|j        }t	          ||j        z
                                d          d         S )N.r   )actionsfirstr   r?   strsplit)r#   r$   last_actionend_times       r%   time_tagzBaseSessionAdmin.time_tag/   sV    k'')) 	&"'HH~H8cn,--33C88;;r&   r   c                 \    t           j         d|j        sdnd }t          d| d          S Nzsite_statistics/images/zicoadm_desktop.pngzicoadm_smart.pngz<img height="15" src=z />)r   
STATIC_URLdevicer   r#   r$   srcs      r%   
device_tagzBaseSessionAdmin.device_tag9   sN    &  B  B[^[e?}?S?Sk}  B  B=3===>>>r&   ipc                 ,    t          ||j                  S N)r   rQ   r"   s     r%   ip_tagzBaseSessionAdmin.ip_tag?   s    *3777r&   u#   Последнее действиеrG   c                 p    |j                                         }|r|j                            d          S d S r>   )rC   rD   r   r   )r#   r$   rG   s      r%   last_action_tagz BaseSessionAdmin.last_action_tagC   s?    k'')) 	?#,,-=>>>	? 	?r&   c                     t                                          |          }|                    t          d                                        d          S )Nactions__time)rG   z-last_action)superget_querysetannotater   order_by)r#   requestqs	__class__s      r%   rZ   zBaseSessionAdmin.get_querysetI   sD    WW!!'**{{s?';';{<<EEnUUUr&   c                       e Zd ZddiZdS )BaseSessionAdmin.Mediaall)z)site_statistics/css/user_action_admin.cssNr2   r3   r4   cssr*   r&   r%   Mediara   M   s        DEr&   re   )r2   r3   r4   r   	admin_urlr   r8   r@   rI   rP   rT   rV   rZ   re   __classcell__r_   s   @r%   r;   r;   (   s^       ""$$.IU]zMBBB9 9 CB9 U]|,,,< < -,< U]r"""? ? #"?
 U]t$$$8 8 %$8 U]D}]]]? ? ^]?
V V V V VF F F F F F F F F F F Fr&   r;   c                       e Zd ZegZg dZd Zd Zd Z e	j
        d          d             Z e	j
        d          d	             Z e	j
        d
          d             ZeZeZdS )UserActivityAdmin)rP   site_tagrT   user_tagr@   rI   pages_countbanks_countprofile_actions_countrV   session_tagc                 6    t          ||j        j                  S rS   )r   sessionrQ   r"   s     r%   rT   zUserActivityAdmin.ip_tagb   s    *3???r&   c                 f    t           j         d|j        j        sdnd }t	          d| d          S rK   )r   rL   rr   rM   r   rN   s      r%   rP   zUserActivityAdmin.device_tage   sY    &  J  J[^[f[m  @F?S?S  tF  J  J=3===>>>r&   c                     |j         j        S rS   )rr   siter"   s     r%   rk   zUserActivityAdmin.site_tagj   s    {r&   u   сессияr   c                 R    |j         rt          |j         |j         j                  S dS )N-)rr   r   ban_rater"   s     r%   rp   zUserActivityAdmin.session_tagm   s)    ; 	R.s{CK<PQQQsr&   u   Пользовательc                     |j         sdS |j         j        }|j        dk    r|dt          j         dz  }|j        dk    r|dt          j         dz  }t          |          S )Nrw   loginz
<img src="zPsite_statistics/images/icoadm_login.png" height=15 style="margin-left: 10px;" />registerzQsite_statistics/images/icoadm_signup.png" height=15 style="margin-left: 10px;" />)useremailauthr   rL   r   )r#   r$   tags      r%   rl   zUserActivityAdmin.user_tagt   s    x 	3hn8w  J("5  J  J  J  JC8z!!  K("5  K  K  K  KC~~r&      Стр.c                 \    |j                             d                                          S NT)is_pagerC   filtercountr#   rr   s     r%   rm   zUserActivityAdmin.pages_count   '    %%d%3399;;;r&   N)r2   r3   r4   r   inlinesr6   rT   rP   rk   r   r8   rp   rl   rm   r7   list_displayr*   r&   r%   rj   rj   Q   s         G  F@ @ @? ? ?
      U]~...  /. U]9:::  ;: U]y)))< < *)< OLLLr&   rj   c                        e Zd ZeZdgZeZ ej        d          d             Z	de
fdZde
fdZdgZd fd
	Z xZS )SessionActionInliner   r   r   c                 J    |j                             d           d|j         S )Nr   r   )r   r   r    r"   s     r%   r   zSessionActionInline.action   s)    H%%&677HH#*HHHr&   r'   c                     dS r)   r*   r+   s      r%   r.   z)SessionActionInline.has_delete_permission   r/   r&   c                     dS r)   r*   r+   s      r%   r1   z&SessionActionInline.has_add_permission   r/   r&   rr   Nc                 :     t                      j        ||fi |S rS   )rY   get_formset)r#   r]   r$   r-   r_   s       r%   r   zSessionActionInline.get_formset   s$    "uww"7C::6:::r&   rS   )r2   r3   r4   r	   r5   r6   r7   r   r8   r   r9   r.   r1   raw_id_fieldsr   rg   rh   s   @r%   r   r      s        EZFOU]r"""I I #"I    T     KM; ; ; ; ; ; ; ; ; ;r&   r   c                       e Zd ZeZdgZeZdS )PenaltylogAdminr!   N)r2   r3   r4   r   r5   r6   r7   r*   r&   r%   r   r      s        EXFOOOr&   r   c                        e Zd ZeegZg dZ ej        d          d             Z	 ej        d          d             Z
eZd eD             Z fdZd	gZ xZS )
SessionModelAdmin)rP   ru   rT   r@   rI   rm   source_counthackingheadersrx   rV   r   r   c                 \    |j                             d                                          S r   r   r   s     r%   rm   zSessionModelAdmin.pages_count   r   r&   u   Ресурсыc                 \    |j                             d                                          S )NT)	is_sourcer   r   s     r%   r   zSessionModelAdmin.source_count   s'    %%%55;;===r&   c                     g | ]
}|d k    |S r   r*   .0fields     r%   
<listcomp>zSessionModelAdmin.<listcomp>   "    DDDe)1C1CE1C1C1Cr&   c                 l    t                                          |                              d          S NrC   rY   rZ   prefetch_relatedr#   r]   r_   s     r%   rZ   zSessionModelAdmin.get_queryset   )    ww##G,,==iHHHr&   rC   )r2   r3   r4   r   r   r   r6   r   r8   rm   r   r7   r   rZ   list_prefetch_relatedrg   rh   s   @r%   r   r      s         34G  F U]y)))< < *)< U]/000> > 10> ODDvDDDLI I I I I 	r&   r   c                       e Zd ZeZdS )SessionHeaderInlineN)r2   r3   r4   r   r5   r*   r&   r%   r   r      s         EEEr&   r   c                   .    e Zd ZegZ G d d          ZdS )SessionFiltersAdminc                       e Zd ZddiZdS )SessionFiltersAdmin.Mediarb   )z'site_statistics/css/session_filters.cssNrc   r*   r&   r%   re   r      s        BCr&   re   N)r2   r3   r4   r   r   re   r*   r&   r%   r   r      sN        "#GD D D D D D D D D Dr&   r   c                       e Zd ZeZdS )WebSearcherActionInlineN)r2   r3   r4   r   r5   r*   r&   r%   r   r      s        EEEr&   r   c                   N     e Zd ZegZg dZeZd eD             Z fdZdgZ	 xZ
S )WebSearcherAdmin)ru   rT   r@   rI   r   rV   c                     g | ]
}|d k    |S r   r*   r   s     r%   r   zWebSearcherAdmin.<listcomp>   r   r&   c                 l    t                                          |                              d          S r   r   r   s     r%   rZ   zWebSearcherAdmin.get_queryset   r   r&   rC   )r2   r3   r4   r   r   r6   r7   r   rZ   r   rg   rh   s   @r%   r   r      su        &'G  F ODDvDDDLI I I I I 	r&   r   N)'django.confr   django.contribr   django.db.modelsr   django.utils.htmlr   #infrastructure.admin.admin_settingsr   1infrastructure.persistence.models.site_statisticsr   r	   r
   r   r   r   r   r   r   r   r   web.admin.adminr   web.common.adminr   r   
ModelAdminr;   rj   r   r   r   r   r   r   r   ru   r{   r*   r&   r%   <module>r      sa                                       ' ' ' ' ' ' B B B B B B                          8 7 7 7 7 7 ' ' ' ' ' '    z    &F &F &F &F &Fu' &F &F &FR7 7 7 7 7( 7 7 7t; ; ; ; ;* ; ; ;*    j   " " " " "( " " "J! ! ! ! !* ! ! !D D D D D%* D D D    j       '   0 
  ( ) ) ) 
  , - - - 
  L"3 4 4 4 
  L"3 4 4 4 
  K!1 2 2 2 
  N$7 8 8 8 8 8r&   