3

\	                 @   s   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 eddd	d
ddg\ZZZZZe
ddZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZdS )    )forms)settings)gettext_lazy)PROMOTION_CLASSES)	get_classget_classes)ExtendedURLFieldzpromotions.modelsHandPickedProductListRawHTMLSingleProductPagePromotionOrderedProductzdashboard.catalogue.widgetsProductSelectc               @   sJ   e Zd Zg Zx"eD ]Zejej ejj	f qW e
jeeeddZdS )PromotionTypeSelectFormzPromotion type)choiceslabelN)__name__
__module____qualname__r   r   klassappend	classname_metaverbose_namer   ChoiceFieldtuple_promotion_type r   r   @/var/www/html/oscar2019/oscar/apps/dashboard/promotions/forms.pyr      s
   

r   c                   s*   e Zd ZG dd dZ fddZ  ZS )RawHTMLFormc               @   s   e Zd ZeZddgZdS )zRawHTMLForm.MetanamebodyN)r   r   r   r
   modelfieldsr   r   r   r   Meta   s   r%   c                s$   t  j|| d| jd jjd< d S )Nzno-widget-initr"   class)super__init__r$   widgetattrs)selfargskwargs)	__class__r   r   r(      s    zRawHTMLForm.__init__)r   r   r   r%   r(   __classcell__r   r   )r.   r   r       s   r    c               @   s   e Zd ZG dd dZdS )SingleProductFormc               @   s"   e Zd ZeZdddgZdeiZdS )zSingleProductForm.Metar!   productdescriptionN)r   r   r   r   r#   r$   r   widgetsr   r   r   r   r%   #   s   
r%   N)r   r   r   r%   r   r   r   r   r0   "   s   r0   c               @   s   e Zd ZG dd dZdS )HandPickedProductListFormc               @   s   e Zd ZeZddddgZdS )zHandPickedProductListForm.Metar!   r2   link_url	link_textN)r   r   r   r	   r#   r$   r   r   r   r   r%   *   s   r%   N)r   r   r   r%   r   r   r   r   r4   )   s   r4   c               @   s   e Zd ZG dd dZdS )OrderedProductFormc               @   s"   e Zd ZeZdddgZdeiZdS )zOrderedProductForm.Metalistr1   display_orderN)r   r   r   r   r#   r$   r   r3   r   r   r   r   r%   0   s   
r%   N)r   r   r   r%   r   r   r   r   r7   /   s   r7   c               @   sR   e Zd ZeeddZejeje	j
dededdZG dd dZd	d
 ZdS )PagePromotionFormURL)r   )r   Positionz0Where in the page this content block will appear)r)   r   	help_textc               @   s   e Zd ZeZddgZdS )zPagePromotionForm.Metapositionpage_urlN)r   r   r   r   r#   r$   r   r   r   r   r%   ?   s   r%   c             C   sN   | j jd}|s|S |jdr,tjtd|jdrJ|jd rJ|d7 }|S )Nr?   httpz2Content blocks can only be linked to internal URLs/)cleaned_dataget
startswithr   ValidationErrorr   endswith)r+   r?   r   r   r   clean_page_urlC   s    

z PagePromotionForm.clean_page_urlN)r   r   r   r   r   r?   r   	CharFieldSelectr   OSCAR_PROMOTION_POSITIONSr>   r%   rG   r   r   r   r   r:   8   s   r:   N)djangor   django.confr   django.utils.translationr   r   oscar.apps.promotions.confr   oscar.core.loadingr   r   Zoscar.forms.fieldsr   r	   r
   r   r   r   r   Formr   	ModelFormr    r0   r4   r7   r:   r   r   r   r   <module>   s   

	