
    I$h                           G d  d          Z dS )c                   >    e Zd ZddZd Zd ZddZddZd	 Zd
 Z	dS )ProductactiveNc                     || _         || _        || _        || _        || _        || _        g | _        g | _        g | _        d S )N)	title	body_htmlvendorskuproduct_typestatusoptionsvariants
metafields)selfr   descriptionr   r
   r   r	   s          //var/www/sites/EMDE/general/products/product.py__init__zProduct.__init__   sF    
$(    c                 l    |                      |          s| j                            d|i           d S d S )Nname)option_existsr   appendr   option_names     r   
add_optionzProduct.add_option   sC    !!+.. 	7L 566666	7 	7r   c                    t          |t                    r|                    dg            |                    d          }|                    d          }| j        D ]7}|                    d          |k    r|                    d          |k    r d S 8| j                            |           d S t          d          )Nr   option1option2u&   La variante doit être un dictionnaire)
isinstancedict
setdefaultgetr   r   
ValueError)r   variantr   r   existing_variants        r   add_variantzProduct.add_variant   s    gt$$ 		G|R000kk),,Gkk),,G$(M   #''	22g==BRBVBVW`BaBaelBlBlFFM  )))))EFFFr   stringc                     t          fd| j        D             d           }|r||d<   ||d<   d S | j                            ||d           d S )Nc              3   L   K   | ]}|d          k    |d         k    |V  dS )	namespacekeyN ).0mfr*   r)   s     r   	<genexpr>z(Product.add_metafield.<locals>.<genexpr>   sD      "u"u"2k?V_C_C_dfgldmqtdtdt2dtdtdtdt"u"ur   valuetyper)   r*   r/   r0   )nextr   r   )r   r)   r*   r/   r0   existing_metafields    ``   r   add_metafieldzProduct.add_metafield   s    !"u"u"u"u"u"u"u"uw{|| 		*/w')-v&&&O""&	$ $     r   c                     d|cxk    rt          | j                  k     r;n n8| j        |         }d|vrg |d<   |d                             ||||d           d S t          d          )N    r   r1   z,L'indice de la variante est hors des limites)lenr   r   
IndexError)r   variant_indexr)   r*   r/   r0   r#   s          r   add_variant_metafieldzProduct.add_variant_metafield+   s    2222DM 2 222222mM2G7**(*%L!((&	* *      KLLLr   c           
      l    d| j         | j        | j        | j        | j        | j        | j        | j        diS )Nproductr   r   r   r   r   r   r
   r   r=   )r   s    r   to_data_array_without_imagesz$Product.to_data_array_without_images;   sB    !^++< M $ 1"o	 	
 	
r   c                 D    t          fd| j        D                       S )Nc              3   0   K   | ]}|d          k    V  dS )r   Nr+   )r,   optionr   s     r   r.   z(Product.option_exists.<locals>.<genexpr>J   s,      LLV6&>[0LLLLLLr   )anyr   r   s    `r   r   zProduct.option_existsI   s(    LLLLt|LLLLLLr   )r   N)r&   )
__name__
__module____qualname__r   r   r%   r4   r:   r>   r   r+   r   r   r   r      s        	 	 	 	7 7 7
G 
G 
G   M M M M 
 
 
M M M M Mr   r   N)r   r+   r   r   <module>rF      sK   IM IM IM IM IM IM IM IM IM IMr   