
    9i                     &    d dl Z ddZd Zd Zd Zy)    Nc                 H    |  dt        j                         j                   S )N-)uuiduuid4hex)prefixs    /backend/checkin/utils.pygenerate_random_slugr
      s     XQtzz|''())    c                    g }| D ]  }|d   }|j                  dg       D ]  }||d}d|v rg }|d   D ]u  }t        |t              r$|j                  d      }	|j                  d|	      }
n+|}	t        |      j	                  dd      j                         }
|j                  |
|	d	       w ||d
<   |j                  |d   |d   |d   |j                  dd      |d         |S )zw
    Convert category-based default fields into flat fields.
    Category + section are stored in meta (DB-style).
    categoryfields)r   sectionoptionsvaluelabel_ )r   r   choicesslugtyperequiredF)r   r   r   r   meta)get
isinstancedictstrreplacetitleappend)grouped_fieldsr   flatcategory_blockr   fieldr   r   optr   r   s              r	   flatten_default_fieldsr&      s   
 D(!*-#''"5E$"D
 E! +C!#t, # 0 # 7 # #C 0 0c : @ @ BNN!&!&$  , #*YKKfwf!IIj%8 / 6 )D Kr   c                     |}d}| j                   j                  |      j                         r7|dz  }| d| }| j                   j                  |      j                         r7|S )N   )r   r   )objectsfilterexists)model	base_slugr   counters       r	   generate_unique_slugr/   1   sj    DG
--

D

)
0
0
21AgY' --

D

)
0
0
2 Kr   c                     | j                   xs i }| j                  | j                  | j                  | j                  |j                  d      d}d|v r|d   |d<   |S )Nr   )r   r   r   r   r   r   )r   r   r   
field_typeis_requiredr   )r$   r   payloads      r	   serialize_checkin_fieldr4   ;   sb    ::D 

  %%HHZ(G D!)_	Nr   )checkin)r   r
   r&   r/   r4    r   r	   <module>r7      s    *)Vr   