
    vg
                     .    d Z ddlmZ ddlmZ d ZddZy)z)
horilla_automation/methods/serialize.py
    )forms)modelsc                 @   g }|  G fddt         j                        } |       }|j                  j                         D ]  \  }}||j                  j
                  j                  |j                  |j                  d}|j                  |       t        |d      r4|j                  D cg c]  }|j                  t        |      d c}|d<   t        |d      s|j                  s|j                  D cg c]  }|d   |d	   d c}|d<    |S c c}w c c}w )
Nc                   &    e Zd Z G  fdd      Zy)3get_related_model_fields.<locals>._InstantModelFormc                       e Zd ZW  ZdZy)8get_related_model_fields.<locals>._InstantModelForm.Meta__all__N)__name__
__module____qualname__modelfieldsMODELs   9/var/www/horilla/horilla_automations/methods/serialize.pyMetar	      s    EF    r   N)r   r   r   r   r   s   r   _InstantModelFormr      s    	 	r   r   nametypelabelrequiredquerysetvaluer   optionschoicesr      )r   	ModelFormr   itemswidget	__class__r   r   r   appendhasattrr   pkstrr   )	r   r   r   instant_form
field_namefield
field_infochoicer   s	           @r   get_related_model_fieldsr.   	   s   FEEOO 
 %&L)00668 
ELL**33[[	

 	j!5*%IN%?E&))c&k:%Jy! UI&5==GL}}%=C&)fQi8%Jy!" M%%s   ,D:Dc           	      `   | j                   }g }|j                         D ]  \  }}||z   |j                  j                  j                  |j
                  |j                  d}t        |t        j                        r|j                  |d<   t        |j                  t        j                        r7|j                  D cg c]  \  }}t        |      t        |      d c}}|d<   |j                  |       t        |t        j                        s|j                   j"                  }	t%        |	      }
g }|
D ]f  }||z   dz   |d   z   |d   |d   j'                         d	z   |j
                  z   |d
   d}|j)                  d      r|d   |d<   |j                  |       h ||d<    |S c c}}w )z
    serialize_form
    r   
max_lengthr   r   __r   r   r   z | r   related_fields)r   r"   r#   r$   r   r   r   
isinstancer   	CharFieldr0   Selectr   r(   r%   ModelChoiceFieldr   r   r.   
capitalizeget)formprefixform_fieldsform_structurer*   r+   field_structurekeyr   related_modelr2   related_field_structuresrelated_fieldrelated_field_structures                 r   serialize_formrC   '   s    ++KN(..0 !I
EZ'LL**33[[	
 eU__-,1,<,<OL) ellELL1KP==*=GS%#c(SZ8*OI& 	o.eU334!NN00M5mDN')$!/ 	?"Z/$6v9NN)&1*73>>@5H5;;V -j 9	+' !$$Y/9Fy9Q+I6%%&=>	? 1IO,-C!IF +*s   >!F*N) )__doc__djangor   	django.dbr   r.   rC    r   r   <module>rI      s     <*r   