
    wg0                     <   d dl 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mZ d d	lmZmZmZmZmZmZmZ d d
lmZ d dlmZ d dlm Z   G d dee           Z! G d deej"                  Z# G d de          Z$ G d de$          Z% G d dej"                  Z& G d dej"                  Z' G d de           Z( G d dej"                  Z) G d dej"                  Z* G d d ej"                  Z+d! Z,d" Z-d# Z. G d$ d%e           Z/ G d& d'ej"                  Z0 G d( d)ej"                  Z1ej2        3                    ee0           ej2        3                    ee&           ej2        3                    ee)           ej2        3                    ee1           ej2        3                    ee+           ej2        3                    ee'           ej2        3                    ee#           ej2        3                    ee*           dS )*    N)SortableAdminBaseSortableStackedInline)admin)AdminFileWidget)models)format_html	mark_safe)BlockCatalogPageTemplate)ProductCategoryProductType)ExclusiveCardLinkOfferOfferTypeRelationOrganizationOrganizationTypeProduct)redirect_to_change_page_tag)OfferAdminForm)
BaseInlinec                       e Zd ZeZdS )BlockInlineN)__name__
__module____qualname__r
   model     &/var/www/html/cms/web/catalog/admin.pyr   r      s        EEEr   r   c                       e Zd ZegZdS )CatalogPageTemplateAdminN)r   r   r   r   inlinesr   r   r    r"   r"       s        mGGGr   r"   c                   $     e Zd ZdZd fd	Z xZS )CustomAdminFileWidgetd   Nc                    g }	 t          |d          rq| j        r2|                    d|j         d|j         d| d| j         d	           n8| j        r1|                    d|j         d|j         d| d| j         d	           n# t
          $ r Y nw xY w|                    t                                          ||||                     t          d	                    |                    S )	Nurlz	<a href="zY" target="_blank">
                            <img
                                src="z" alt="z*"
                                height="z"
                                style="object-fit: cover; margin-right: 30px;"
                            />
                            </a>z)"
                                width=" )
hasattrheightappendr(   width
ValueErrorsuperrenderr   join)selfnamevalueattrsrendererresult	__class__s         r    r0   zCustomAdminFileWidget.render'   sU   	ue$$ ; MM$ei $ $&+i$ $8=$ $ *.$ $ $    Z 	MM$ei $ $&+i$ $8=$ $ )-
$ $ $    	 	 	D	 	eggnnT5%BBCCC2776??+++s   BB 
BB)NN)r   r   r   r+   r0   __classcell__r8   s   @r    r%   r%   $   sB        F, , , , , , , , , ,r   r%   c                       e Zd ZdZdZdS )CustomOrganizationLogoNi,  )r   r   r   r+   r-   r   r   r    r<   r<   F   s        FEEEr   r<   c                       e Zd Zg dZd Zde_        d Zde_        de_        ej	        de
iiZdgZd	 Zd
 Zd Zde_        de_        de_        de_        de_        de_         G d d          Zd ZdS )ProductAdmin)	image_tagname_tag
status_tagcategoryorganizationcreated_at_tagoffersc                 4    |j                                         S N)rE   countr2   objs     r    rE   zProductAdmin.offersN   s    z!!!r   u   Офферыc                 :    |j         dk    rdS |j         dk    rdS d S Nu   ОпубликованоTu
   АрхивFstatusrI   s     r    rA   zProductAdmin.status_tagS   ,    :3334:%%5tr   Tr)   widgetrC   c                 ,    t          ||j                  S rG   r   r3   rI   s     r    r@   zProductAdmin.name_tagb       *3999r   c                 :    t          d|j        j        z            S Nz<img src="%s" height="35" />r	   coverr(   rI   s     r    r?   zProductAdmin.image_tage       739=IJJJr   c                 6    |j                             d          S Nz%Y-%m-%d
created_atstrftimerI   s     r    rD   zProductAdmin.created_at_tagh       ~&&z222r      дата создания   имяc                       e Zd ZddiZdS )ProductAdmin.Mediaallzcatalog/css/product_admin.cssNr   r   r   cssr   r   r    Mediarb   t           89r   rg   c                     d ddiff}|S )Nfields)	rN   rC   rW   r3   rB   partner_annotationpartner_bonuspartner_descriptionprivater   r2   requestrJ   	fieldsetss       r    get_fieldsetszProductAdmin.get_fieldsetsw   s(      

	$ r   N)r   r   r   list_displayrE   short_descriptionrA   booleanr   
ImageFieldr%   formfield_overridesorderingr@   r?   rD   
allow_tagsrg   rr   r   r   r    r>   r>   K   s       rrrL" " "  .F   J#%J !,x9N.OPH: : :K K K3 3 3 #%II'BN$ $N!)HH: : : : : : : :    r   r>   c                       e Zd ZdgZdS )OrganizationTypeAdminr3   Nr   r   r   rx   r   r   r    r{   r{              xHHHr   r{   c                       e Zd ZeZdZeZdgZd Zd Z	d Z
de	_        de	_        de
_        de
_        d	e_        de_        d
 ZdS )ProductInline)r?   r@   rB   rC   rD   r3   c                 ,    t          ||j                  S rG   rR   rI   s     r    r@   zProductInline.name_tag   rS   r   c                 :    t          d|j        j        z            S rU   rV   rI   s     r    r?   zProductInline.image_tag   rX   r   c                 6    |j                             d          S rZ   r[   rI   s     r    rD   zProductInline.created_at_tag   r^   r      картинкаTr_   r`   c                     dS )NFr   )r2   argskwargss      r    has_add_permissionz ProductInline.has_add_permission   s    ur   N)r   r   r   r   r   rj   readonly_fieldsrx   r@   r?   rD   rt   ry   r   r   r   r    r   r      s        EF OxH: : :K K K3 3 3 #5II'BN$ $N!)HH    r   r   c                       e Zd Zg dZegZej        deiiZ	d Z
de
_         ej        d          Zd Zde_        dgZd	 Zd
e_        d Z G d d          ZdS )OrganizationAdmin)r?   r@   typesiteproductsrP   c                 4    |j                                         S rG   )r   rH   rI   s     r    r   zOrganizationAdmin.products   s    |!!###r   u   Продукты	ADMIN_URLc                 ,    t          ||j                  S rG   rR   rI   s     r    r@   zOrganizationAdmin.name_tag   rS   r   u   Названиеr3   c                 :    t          d|j        j        z            S )Nz<img src="%s" width="75" />)r	   logor(   rI   s     r    r?   zOrganizationAdmin.image_tag   s    6#(,GHHHr   r)   c                 (    d d|r|j         nd dff}|S )N)r3   r   r   r   
admin_hintpartner_programrj   description)r   ro   s       r    rr   zOrganizationAdmin.get_fieldsets   s6     _58#B3>>d 
	 r   c                       e Zd ZddiZdS )OrganizationAdmin.Mediarc   )z"catalog/css/organization_admin.cssNre   r   r   r    rg   r      s        =>r   rg   N)r   r   r   rs   r   r#   r   rv   r<   rw   r   rt   osgetenvadmin_site_urlr@   rx   r?   rr   rg   r   r   r    r   r      s        HHHLoG!,x9O.PQ$ $ $ "4HRY{++N: : : "4HxHI I I #%I
 
 
? ? ? ? ? ? ? ? ? ?r   r   c                       e Zd ZdS )ExclusiveCardAdminN)r   r   r   r   r   r    r   r      s        Dr   r   c                   F    e Zd Zg dZddiZdgZd Zde_        de_        dS )	ProductTypeAdmin)r3   rA   slugr   )r3   r3   c                 :    |j         dk    rdS |j         dk    rdS d S rL   rM   rI   s     r    rA   zProductTypeAdmin.status_tag   rO   r   Tr)   N)	r   r   r   rs   prepopulated_fieldsrx   rA   ru   rt   r   r   r    r   r      sN        111L!9-xH   J#%J   r   r   c                  l    dgt           j                                                            dd          S )N)r)   z	---------idr3   )r   objectsrc   values_listr   r   r    get_product_typesr      s/    T 3 7 7 9 9 E EdF S STTr   c                     t          t          j                            d                              |                               dd                    }	 ||         S # t          $ r Y dS w xY w)Nr   offer_idtype_idTflatr   )listr   r   select_relatedfilterr   
IndexError
product_idindexproduct_typess      r    get_initial_product_typer      s}    !0088???TT``ajqu`vv MU##   qqs   A 
A-,A-c                     t          t          j                            |                               dd                    }	 ||         S # t
          $ r Y dS w xY w)Nr   profitTr   r   )r   r   r   r   r   r   r   s      r    get_initial_product_type_profitr     sk    *299:9NNZZ[cjnZooppMU##   qqs   A 
AAc                       e Zd ZeZdZdS )
LinkInlinezcatalog/link_inline.htmlN)r   r   r   r   r   templater   r   r    r   r     s        E)HHHr   r   c                   ~    e Zd ZeZg dZegZej	        de
iiZd Zde_        d Zde_        de_        d Zd	 Zd
e_        de_        de_        d Zde_        d Zde_        de_        d Zd Zd Zde_        de_        de_        de_        de_        de_         G d d          ZdZd fd	Zd Z fdZ xZS )
OfferAdmin)	r?   r@   rA   rC   rD   end_promotion_taglinks
is_promotefor_partnersrP   c                     |j         j        S rG   )productrC   rI   s     r    rC   zOfferAdmin.organization"  s    {''r   u   Организацияc                 D    t          d|j        j        j        z            S rU   )r	   r   rW   r(   rI   s     r    r?   zOfferAdmin.image_tag'  s    73;;L;PQRRRr   r   Tc                     |j         rdS dS )NTF)promoterI   s     r    r   zOfferAdmin.is_promote-  s    ; 	4ur   c                     |j         S rG   )r   rI   s     r    r   zOfferAdmin.for_partners3  s    ""r   u   Партнерамu
   Промоc                 4    |j                                         S rG   )r   rH   rI   s     r    r   zOfferAdmin.links;  s    y   r   u   Ссылкиc                 :    |j         dk    rdS |j         dk    rdS d S rL   rM   rI   s     r    rA   zOfferAdmin.status_tag@  rO   r   r)   c                 ,    t          ||j                  S rG   rR   rI   s     r    r@   zOfferAdmin.name_tagL  rS   r   c                 6    |j                             d          S rZ   r[   rI   s     r    rD   zOfferAdmin.created_at_tagO  r^   r   c                     |j         r=|j                            d          }|j        }|                    d          }| d| S dS )Nz%d.%m.%Y-u   Бессрочная акция)	promotionstart_promotionr]   get_end_promotion)r2   r   r   end_promotions       r    r   zOfferAdmin.end_promotion_tagR  sX     	8%5>>zJJO#5M)22:>>M%7777700r   r_   u
   Акцияr`   c                       e Zd ZddiZdS )OfferAdmin.Mediarc   rd   Nre   r   r   r    rg   r   e  rh   r   rg      Nc                     t                      j        ||fi |}d|j        d         j        j        d<   t          | j                  D ]r}t                      |j        d|dz             _        t          ||          |j        d|dz             _
        t          ||          |j        d|dz             _
        s|S )Nzwidth: 45em;
annotationstyler      r   )r/   get_formbase_fieldsrP   r5   rangeTYPES_COUNTr   choicesr   initialr   )r2   rp   rJ   r   formir8   s         r    r   zOfferAdmin.get_formj  s    uww7777?M&-3G<t'(( 	a 	aA7H7J7JD^AE^^,47OPSUV7W7WD^AE^^,49XY\^_9`9`D-a!e--.66r   c                 (    d d|r|j         nd dff}|S )N)rN   r3   r   )type1profit1)type2profit2)type3profit3)type4profit4r   r   terms_of_the_promotion)r   verification_of_registration)r   r   r   bannerr   r   rM   ro   s       r    rr   zOfferAdmin.get_fieldsetsv  s:       25#>3::$# 
	0 r   c                     t                                          ||||           t          j                            |                                           t          | j                  D ]m}|j        d|dz             }|j        d|dz             }|rCt          j        	                    |t          j                            |          |          \  }}	nt                                          ||||           d S )N)offerr   r   r   )r   )r   r   r   )r/   
save_modelr   r   r   deleter   r   cleaned_dataupdate_or_creater   get)r2   rp   rJ   r   changer   r   r   
offer_type_r8   s             r    r   zOfferAdmin.save_model  s    7Cv666!((s(33::<<<t'(( 	 	A$^AE^^4D&'7A'7'78F  1 9 J JK$7$;$;t$;$D$DV !K ! !
A 	7Cv66666r   rG   )r   r   r   r   r   rs   r   r#   r   rv   r%   rw   rC   rt   r?   ry   r   r   ru   r   rA   r@   rD   r   rg   r   r   rr   r   r9   r:   s   @r    r   r     s       D
 
 
L lG!,x9N.OP( ( ( &>L"S S S #5II  # # # &:L"J#/J ! ! ! -E   J#%J : : :3 3 31 1 1 (CN$ $N*6'#' !)HH: : : : : : : : K
 
 
 
 
 
  67 7 7 7 7 7 7 7 7r   r   c                       e Zd ZdgZdS )ProductCategoryAdminr3   Nr|   r   r   r    r   r     r}   r   r   )4r   adminsortable2.adminr   r   django.contribr   django.contrib.admin.widgetsr   	django.dbr   django.utils.htmlr   r	   0infrastructure.persistence.models.catalog.blocksr
   r   6infrastructure.persistence.models.catalog.product_typer   r   2infrastructure.persistence.models.catalog.productsr   r   r   r   r   r   r   web.admin.adminr   web.catalog.formsr   web.common.adminr   r   
ModelAdminr"   r%   r<   r>   r{   r   r   r   r   r   r   r   r   r   r   r   registerr   r   r    <module>r     s   				 I I I I I I I I             8 8 8 8 8 8       4 4 4 4 4 4 4 4 W W W W W W W W                         8 7 7 7 7 7 , , , , , , ' ' ' ' ' '    '       0%2B   , , , , ,O , , ,D    2   
? ? ? ? ?5# ? ? ?D    E,   " " " " "J " " "J%? %? %? %? %?( %? %? %?P	 	 	 	 	) 	 	 	& & & & &u' & & &$U U U    * * * * * * * *
M7 M7 M7 M7 M7! M7 M7 M7`    5+    
  E: & & & 
  G\ * * * 
  L"3 4 4 4 
  O%9 : : : 
  K!1 2 2 2 
  $&; < < < 
  ')A B B B 
  M#5 6 6 6 6 6r   