U
    }Ha                     @   s  d dl mZ d dlmZ d dlmZ G dd dejZG dd de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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G d 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)models)
FormHelperc                       s   e Zd Zejdde dZejddde ddZ	ejd	dde
 d
Zejddde
 d
Zejddde d
Zejddde d
Zejde dZ fddZ  ZS )
SampleFormcompanyFlabelrequiredwidgetemail   TzInsert your email)r   
max_lengthr	   r
   	help_textpasswordr   r   r	   r
   re-enter passwordz
first name   z	last namez	date time)r   r
   c                    sF   t    | jdd }| jdd }|s.|r6||kr@td| jS )N	password1	password2zPasswords dont match)supercleanZcleaned_datagetr   ZValidationError)selfr   r   	__class__ </tmp/pip-unpacked-wheel-rp2i33ek/crispy_forms/tests/forms.pyr      s    

zSampleForm.clean)__name__
__module____qualname__r   	CharFieldCheckboxInput
is_companyZ
EmailFieldZ	TextInputr   PasswordInputr   r   Z
first_name	last_nameSplitDateTimeFieldZSplitDateTimeWidgetZdatetime_fieldr   __classcell__r   r   r   r   r      s       r   c                       s   e Zd Z fddZ  ZS )SampleForm2c                    s   t  j|| t| | _d S Nr   __init__r   helperr   argskwargsr   r   r   r*      s    zSampleForm2.__init__)r   r   r   r*   r&   r   r   r   r   r'      s   r'   c                   @   sT   e Zd ZejddejdZejddejdZejddejdZej	dej
dd	Zd
S )CheckboxesSampleForm)   
Option one)   
Option two)   Option threer1   choicesinitialr
   )Z
option_oner2   
option_twor4   )option_threer6   )r=   r>   )r1   r3   r;   r<   r=   r9   r
   r:   N)r   r   r   r   MultipleChoiceFieldCheckboxSelectMultiple
checkboxesZalphacheckboxesZnumeric_multiple_checkboxesChoiceFieldRadioSelectinline_radiosr   r   r   r   r/   "   s(   r/   c                   @   s   e Zd ZejddejdZdS )SelectSampleFormr0   r7   r8   N)r   r   r   r   rD   ZSelectselectr   r   r   r   rG   ?   s
     rG   c                   @   s$   e Zd ZejddZejddZdS )CrispyTestModel   )r   N)r   r   r   r   r    r   r   r   r   r   r   rI   E   s   rI   c                       s*   e Zd ZG dd dZ fddZ  ZS )SampleForm3c                   @   s   e Zd ZeZddgZdgZdS )zSampleForm3.Metar   r   N)r   r   r   rI   modelfieldsexcluder   r   r   r   MetaK   s   rO   c                    s   t  j|| t| | _d S r(   r)   r,   r   r   r   r*   P   s    zSampleForm3.__init__)r   r   r   rO   r*   r&   r   r   r   r   rK   J   s   rK   c                   @   s   e Zd ZG dd dZdS )SampleForm4c                   @   s   e Zd ZdZeZdZdS )zSampleForm4.Metaa  
        before Django1.6, one cannot use __all__ shortcut for fields
        without getting the following error:
        django.core.exceptions.FieldError: Unknown field(s) (a, l, _) specified for CrispyTestModel
        because obviously it casts the string to a set
        __all__N)r   r   r   __doc__rI   rL   rM   r   r   r   r   rO   V   s   rO   Nr   r   r   rO   r   r   r   r   rP   U   s   rP   c                   @   s>   e Zd ZdddgZejejedZejej	edZ
e ZdS )SampleForm5)r1   r1   )r3   r3   )  rU   r
   r9   N)r   r   r   r9   r   rA   rB   checkbox_select_multiplerD   rE   Zradio_selectZIntegerFieldpkr   r   r   r   rT   b   s   rT   c                   @   s   e Zd ZG dd dZdS )SampleFormWithMediac                   @   s   e Zd ZddiZdZdS )zSampleFormWithMedia.Mediaall)ztest.css)ztest.jsN)r   r   r   cssZjsr   r   r   r   Median   s   r\   N)r   r   r   r\   r   r   r   r   rY   m   s   rY   c                   @   s   e Zd Ze ZdS )SampleFormWithMultiValueFieldN)r   r   r   r   r%   Zmultir   r   r   r   r]   s   s   r]   c                   @   s"   e Zd ZejddgddddZdS )CrispyEmptyChoiceTestModel)ZappleZApple)ZpearZPearTrJ   )r9   nullZblankr   N)r   r   r   r   r    fruitr   r   r   r   r^   w   s   r^   c                   @   s   e Zd ZG dd dZdS )SampleForm6c                   @   s&   e Zd ZdZeZdgZde iZ	dS )zSampleForm6.Metaa	  
        When allowing null=True in a model field,
        the corresponding field will have a choice
        for the empty value.

        When the form is initialized by an instance
        with initial value None, this choice should
        be selected.
        r`   N)
r   r   r   rR   r^   rL   rM   r   rE   Zwidgetsr   r   r   r   rO      s   
rO   NrS   r   r   r   r   ra      s   ra   c                   @   sD   e Zd Zejdde dZejddde dZG dd	 d	Z	d
S )SampleForm7r   Fr   r   r   Tr   c                   @   s   e Zd ZeZdZdS )zSampleForm7.Meta)r   r   r   Nr   r   r   rI   rL   rM   r   r   r   r   rO      s   rO   N
r   r   r   r   r    r!   r"   r#   r   rO   r   r   r   r   rb      s   rb   c                   @   sD   e Zd Zejdde dZejddde dZG dd	 d	Z	d
S )SampleForm8r   Fr   r   r   Tr   c                   @   s   e Zd ZeZdZdS )zSampleForm8.Meta)r   r   r   Nrc   r   r   r   r   rO      s   rO   Nrd   r   r   r   r   re      s   re   c                   @   s   e Zd ZdZdZdd ZdS )FakeFieldFilez
    Quacks like a FieldFile (has a .url and string representation), but
    doesn't require us to care about storages etc.
    Z	somethingc                 C   s   | j S r(   )url)r   r   r   r   __str__   s    zFakeFieldFile.__str__N)r   r   r   rR   rg   rh   r   r   r   r   rf      s   rf   c                   @   s.   e Zd ZejejdZejejde dZ	dS )FileFormr
   Fr
   r	   r:   N
r   r   r   r   Z	FileFieldZ	FileInputZ
file_fieldZClearableFileInputrf   Zclearable_filer   r   r   r   ri      s   ri   c                   @   sB   e Zd ZejejddiddZejejddidde dZ	dS )AdvancedFileFormclasszmy-custom-class)attrsrj   Frk   Nrl   r   r   r   r   rm      s     rm   c                   @   sF   e Zd ZdddgfdddgfdgZejejedZejejedZ	d	S )
GroupedChoiceFormZAudio)ZvinylZVinyl)ZcdZCDZVideo)ZvhszVHS Tape)ZdvdZDVD)unknownUnknownrV   N)
r   r   r   r9   r   rA   rB   rW   rE   Zradior   r   r   r   rp      s   rp   c                   @   s   e Zd ZdS )CustomRadioSelectNr   r   r   r   r   r   r   rs      s   rs   c                   @   s   e Zd ZdS )CustomCheckboxSelectMultipleNrt   r   r   r   r   ru      s   ru   c                   @   s,   e Zd ZejdeddZejddedZ	dS )SampleFormCustomWidgetsr?   r=   r@   r0   r7   r8   N)
r   r   r   r   rD   rs   rF   rA   ru   rC   r   r   r   r   rv      s   	rv   N) Zdjangor   Z	django.dbr   Zcrispy_forms.helperr   ZFormr   r'   r/   rG   ZModelrI   Z	ModelFormrK   rP   rT   rY   r]   r^   ra   rb   re   rf   ri   rm   rp   rE   rs   rB   ru   rv   r   r   r   r   <module>   s.   			