
    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 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 d dlmZ  G d dej                  Z G d dej                  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j                  Z$ G d dej                  Z%ej&        '                    ee           ej&        '                    ee%           ej&        '                    e           ej&        '                    ee$           ej&        '                    ee"           dS )    )forms)settings)admin)	mark_safe)UserRepositoryInterface)Idea
IdeaScreen)UserProduct)RolesSuperUserRole)Site)User)get_user_repository)redirect_to_change_page_tag)
BaseInlinec                   R    e Zd Zg dZg dZ ej        d          d             ZdS )	UserAdmin)usernamephoneemailregister_onemail_is_confirmed)passwordstaffis_superuseru#   зарегистрирован наdescriptionc                     |j         S N)r   )selfobjs     #/var/www/html/cms/web/user/admin.pyr   zUserAdmin.register_on   s
        N)__name__
__module____qualname__list_displayexcluder   displayr    r#   r"   r   r      sU        VVVL333GU]DEEE  FE  r#   r   c                   R    e Zd Z ej        dd          Z G d d          Zd ZdS )UserRoleInlineFormu
   ПочтаF)labelrequiredc                       e Zd ZeZdgZdS )UserRoleInlineForm.Metar   N)r$   r%   r&   r   modelfieldsr*   r#   r"   Metar0      s        r#   r3   c                 F    | j         }d|vr|d         j        j        |d<   |S )Nr   id)cleaned_datauserr   )r    r6   s     r"   cleanzUserRoleInlineForm.clean!   s0    (,&&$0$6$;$AL!r#   N)r$   r%   r&   r   	CharFieldr   r3   r8   r*   r#   r"   r,   r,      sa        EO,???E           r#   r,   c                   :    e Zd ZeZeZg dZeZd Z	d Z
d Zd ZdS )SuperUserRoleInline)r7   r   r   c                     |j         j        S r   )r7   r   r    	user_roles     r"   r   zSuperUserRoleInline.email0       ~##r#   c                     |j         j        S r   )r7   r   r=   s     r"   r   zSuperUserRoleInline.phone3   r?   r#   c                     dS NFr*   r    requestargskwargss       r"   has_add_permissionz&SuperUserRoleInline.has_add_permission6       ur#   c                     dS )NTr*   rC   s       r"   has_delete_permissionz)SuperUserRoleInline.has_delete_permission9   s    tr#   N)r$   r%   r&   r   r1   r,   formr2   readonly_fieldsr   r   rG   rJ   r*   r#   r"   r;   r;   )   sj        ED'''FO$ $ $$ $ $      r#   r;   c                   &    e Zd ZeZeZddZddZdS )AddSuperUserRoleInlineNc                     dS rB   r*   r    rD   r!   s      r"   has_change_permissionz,AddSuperUserRoleInline.has_change_permissionA   rH   r#   c                     dS rB   r*   rP   s      r"   has_view_permissionz*AddSuperUserRoleInline.has_view_permissionD   rH   r#   r   )	r$   r%   r&   r   r1   r,   rK   rQ   rS   r*   r#   r"   rN   rN   =   sF        ED        r#   rN   c                   F     e Zd ZU eegZ e            Zee	d<    fdZ
 xZS )
RolesAdmin
repositoryc                    	 |D ]}t          |                    d                    D ]r\  }}|j        d                             d          }| j                            |          }	|	r|	|_        |                                 ^|                                 sn&# t          $ r}
t          |
           Y d }
~
nd }
~
ww xY wt                      
                    ||||           d S )NF)commitr   r   )r   )	enumeratesaver6   getrV   r7   delete	Exceptionprintsupersave_related)r    rD   rK   formsetschangeformsetobj_indr!   r   r7   e	__class__s              r"   r`   zRolesAdmin.save_relatedM   s   	# 	% 	%$-gll%l.H.H$I$I % %LGS#0377@@E?..U.;;D %#'





%	%  	 	 	!HHHHHHHH	 	WdHf=====s   BB 
C)B==C)r$   r%   r&   r;   rN   inlinesr   rV   r   __annotations__r`   __classcell__)rf   s   @r"   rU   rU   H   s_         "$:;G*=*=*?*?J'???> > > > > > > > >r#   rU   c                   ^    e Zd ZeZ ej        d          d             Zde_        dgZ	e	Z
dS )IdeaScreenInlineu
   Скринr   c                 V    t          d|j        j        d|j        j        d          S )Nz1<a href="#" class="open-image-popup" data-image="z"><img src="z" width="100" /></a>)r   screenurl)r    rm   s     r"   	image_tagzIdeaScreenInline.image_tagb   s6    y}   &-"3"3"35
 
 	
r#   Tro   N)r$   r%   r&   r	   r1   r   r)   ro   
allow_tagsr2   rL   r*   r#   r"   rk   rk   _   sR        EU]|,,,
 
 -,
  I]FOOOr#   rk   c                   2   e Zd Zg dZ ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d	          d
             Z	g dZ
dZ ej        d          d             ZegZd ZdS )	IdeaAdmin)
status_imgcreated_at_tag	title_tagr7   statusfinishe_date_tagratingu   Темаr   c                 ,    t          ||j                  S r   )r   titler    ideas     r"   ru   zIdeaAdmin.title_tagr   s    *4<<<r#   u   Срокc                 H    |j         r|j                             d          S dS )N%d.%m.%Yz---)finishe_datestrftimer{   s     r"   rw   zIdeaAdmin.finishe_date_tagv   s)     	:$--j999ur#   u   Датаc                 6    |j                             d          S )Nr~   )
created_atr   r{   s     r"   rt   zIdeaAdmin.created_at_tag}   s    ''
333r#    c                     |j         dk    rt          j         d}nP|j         dk    rt          j         d}n5|j         dk    rt          j         d}n|j         dk    rt          j         d}t          d	| d
          S )Nerrorsz$account/images/bugs/icobug_error.png
correctionz"account/images/bugs/icobug_fix.pngmodernizationz$account/images/bugs/icobug_addon.pngnew_featurez#account/images/bugs/icobug_idea.pngz<img width="15" src="z" />)categoryr   
STATIC_URLr   )r    r|   srcs      r"   rs   zIdeaAdmin.status_img   s    =H$$(NNNCC]l**(LLLCC]o--(NNNCC]m++(MMMC::::;;;r#   )rz   r   rx   zcommon/screen_inline.htmlu   Рейтингc                 4    |j                                         S r   )likescountr{   s     r"   rx   zIdeaAdmin.rating   s    z!!!r#   c                     d ddiff}|S )Nr2   )r7   rz   r   rx   rv   r   r   admin_answerr*   )r    rD   r!   	fieldsetss       r"   get_fieldsetszIdeaAdmin.get_fieldsets   s(      	
	" r#   N)r$   r%   r&   r'   r   r)   ru   rw   rt   rs   rL   change_form_templaterx   rk   rg   r   r*   r#   r"   rr   rr   o   s       pppLU]z***= = +*= U]z***  +* U]z***4 4 +*4 U]r"""
< 
< #"
< 988O6U]/000" " 10"   G    r#   rr   c                       e Zd ZdgZdS )	SiteAdminonline_fromN)r$   r%   r&   r(   r*   r#   r"   r   r      s        oGGGr#   r   N)(djangor   django.confr   django.contribr   django.utils.htmlr   domain.user.repositoryr   +infrastructure.persistence.models.user.idear   r	   .infrastructure.persistence.models.user.productr
   ,infrastructure.persistence.models.user.rolesr   r   +infrastructure.persistence.models.user.siter   +infrastructure.persistence.models.user.userr   7infrastructure.persistence.repositories.user_repositoryr   web.admin.adminr   web.common.adminr   
ModelAdminr   	ModelFormr,   r;   rN   rU   rk   rr   r   siteregisterr*   r#   r"   <module>r      s                                 ' ' ' ' ' ' : : : : : : H H H H H H H H F F F F F F M M M M M M M M < < < < < < < < < < < < W W W W W W 7 7 7 7 7 7 ' ' ' ' ' '                   *   (    Z   > > > > >! > > >.    z    ; ; ; ; ;  ; ; ;|         
  D) $ $ $ 
  D) $ $ $ 
  K       
  D) $ $ $ 
  E: & & & & &r#   