§
    [´j°  ã                   ób   — d Z ddlZddlmZ ddlmZmZmZmZ d	d„Z	e
dk    r e	¦   «          dS dS )
zZ
Generate test data for CART admin.

Creates locations, products, tags, and associations.
é    N)Úget_user_model)ÚProductÚTagÚLocationÚLocationTypeé2   éÈ   c           
      óÎ  — t           j                             dddi¬¦  «        d         t           j                             dddi¬¦  «        d         t           j                             ddd	i¬¦  «        d         t           j                             d
ddi¬¦  «        d         t           j                             dddi¬¦  «        d         t           j                             dddi¬¦  «        d         dœ}g }t          d¦  «        D ]T}t          j                             d|dz   d›�d|dz   › �|d         dœ¬¦  «        d         }|                     |¦  «         ŒUg }|D ]n}t          d¦  «        D ]\}t          j                             |j        › d|dz   d›�d|dz   › �||d         dœ¬¦  «        d         }|                     |¦  «         Œ]Œog }|D ]n}t          d¦  «        D ]\}t          j                             |j        › d|dz   d›�d|dz   › �||d         dœ¬¦  «        d         }	|                     |	¦  «         Œ]Œog }
|D ]n}	t          d¦  «        D ]\}t          j                             |	j        › d|dz   d›�d|dz   › �|	|d
         dœ¬¦  «        d         }|
                     |¦  «         Œ]Œog }|
D ]n}t          d¦  «        D ]\}t          j                             |j        › d |dz   d›�d!|dz   › �||d         dœ¬¦  «        d         }|                     |¦  «         Œ]Œog }|d"t          |¦  «        d#z  …         D ]n}t          d¦  «        D ]\}t          j                             |j        › d$|dz   d›�d%|dz   › �||d         dœ¬¦  «        d         }|                     |¦  «         Œ]Œo|
|z   |z   }g d&¢}t          d't          |¦  «        › d(�¦  «         t          d't          |¦  «        › d)�¦  «         t          d't          |¦  «        › d*�¦  «         t          d't          |
¦  «        › d+�¦  «         t          d't          |¦  «        › d,�¦  «         t          d't          |¦  «        › d-�¦  «         g }t          | ¦  «        D ]²}t          j
        |¦  «        \  }}}}|› d.|dz   d/›�}|› d0|dz   d/›�}t          j                             ||||d1œ¬¦  «        \  }}t          j	        ¦   «         d2k     r-t          j
        |¦  «        |_        |                     ¦   «          |                     |¦  «         Œ³t          d't          |¦  «        › d3�¦  «         g }t          |¦  «        D ]}d4t          j        d5d6¦  «        d›t          j        d7d8¦  «        d/›t          j        dd9¦  «        d:›�}t          j                             |¬;¦  «        \  }}|                     |¦  «         Œ€t          d't          |¦  «        › d<�¦  «         |D ]a}t          j        dd¦  «        }t          j        |t#          |t          |¦  «        ¦  «        ¦  «        }|j                             |¦  «         Œbt          d=¦  «         t          |¦  «        t          |¦  «        z   t          |¦  «        z   t          |
¦  «        z   t          |¦  «        z   t          |¦  «        z   } t          d>¦  «         t          d?| › �¦  «         t          d@t          j                             ¦   «         › �¦  «         t          dAt          j                             ¦   «         › �¦  «         t          dBt          j                             dC¬D¦  «                             ¦   «         › �¦  «         t          dEt          j                             dC¬D¦  «                             ¦   «         › �¦  «         d"S )Fz'Generate test data for the CART system.ÚbuildingÚdescriptionzBuilding/structure)ÚnameÚdefaultsr   Ú	warehousezWarehouse areaÚzonezWarehouse zoneÚrackzStorage rackÚshelfzIndividual shelfÚbinzStorage bin)r   r   r   r   r   r   é   zBLD-é   Ú02dz	Building )r   Útype)Úcoder   z-WHz
Warehouse )r   Úparentr   z-ZzZone é   z-RzRack z-SHzShelf Né   z-BXzBin )
)zWidget AzWGT-001r   zStandard widget type A)zWidget BzWGT-002é
   zStandard widget type B)zGadget XzGDG-001r   zElectronics - type X)zGadget YzGDG-002é   zElectronics - type Y)zConnector ProzCNC-001é   zIndustrial connectors)zScrew Pack M6zSCR-M6éd   zM6 screws, 50pcs)zScrew Pack M8zSCR-M8r   zM8 screws, 50pcs)z
Washer SetzWSH-001r   zAssorted washers)zBolt KitzBLT-KITé   zBolt assortment kit)z
Cable TieszCBL-TIEiô  zCable ties packzCreated z
 buildingsz warehousesz zonesz racksz shelvesz binsz - Ú03dú-)Úpart_numberr   Úmin_stock_levelgš™™™™™é?z products (80% with locations)ÚE200r   éc   r   iç  l   ÿÿ Ú08X)Útag_idz tagszAssociated tags with productsz
=== Summary ===zTotal locations: z
Products: zTags: zProducts with location: T)Úlocation__isnullzProducts without location: )r   ÚobjectsÚget_or_createÚranger   Úappendr   ÚlenÚprintÚrandomÚchoicer   ÚlocationÚsaveÚrandintr   ÚsampleÚminÚtagsÚsetÚcountÚexcludeÚfilter)!Úcount_productsÚ
count_tagsÚlocation_typesÚ	buildingsÚir   Ú
warehousesr   Úzonesr   Úracksr   Úshelvesr   ÚbinsÚbin_locÚall_locationsÚproduct_typesÚproductsr   r#   Ú	min_stockr   Úunique_nameÚunique_partÚproductÚ_r7   r(   ÚtagÚnum_tagsÚassigned_tagsÚtotal_locationss!                                    ú-/opt/cart-admin/scripts/generate_test_data.pyÚgenerate_test_datarT      sb	  € õ
 !Ô(×6Ò6Ø }Ð6JÐ&Kð 7ñ 
ô 
à
ôõ "Ô)×7Ò7Ø¨Ð7GÐ'Hð 8ñ 
ô 
à
ôõ Ô$×2Ò2Ø =Ð2BÐ"Cð 3ñ 
ô 
à
ôõ Ô$×2Ò2Ø =°.Ð"Að 3ñ 
ô 
à
ôõ Ô%×3Ò3Ø MÐ3EÐ#Fð 4ñ 
ô 
à
ôõ Ô#×1Ò1Ø -°Ð!?ð 2ñ 
ô 
à
ôð!ð €Nð, €IÝ�1‰XŒXð #ð #ˆÝÔ#×1Ò1Ø!˜˜!™Ð!Ð!Ð!à) A a¡CÐ)Ð)Ø& zÔ2ðð ð 2ñ 
ô 
ð ôˆð 	×Ò˜Ñ"Ô"Ð"Ð"ð €JØð 
)ð 
)ˆÝ�q‘”ð 		)ð 		)ˆAÝ Ô(×6Ò6Ø œÐ3Ð3¨!¨A©#Ð3Ð3Ð3à.¨¨1©Ð.Ð.Ø&Ø*¨;Ô7ðð ð 7ñ ô ð ôˆIð ×Ò˜iÑ(Ô(Ð(Ð(ð		)ð €EØð 
ð 
ˆ	Ý�q‘”ð 		ð 		ˆAÝÔ#×1Ò1Ø!œÐ3Ð3¨!¨A©#Ð3Ð3Ð3à) A a¡C˜M˜MØ'Ø*¨6Ô2ðð ð 2ñ ô ð ôˆDð �LŠL˜ÑÔÐÐð		ð €EØð 
ð 
ˆÝ�q‘”ð 		ð 		ˆAÝÔ#×1Ò1Øœ	Ð.Ð. Q q¡SÐ.Ð.Ð.à) A a¡C˜M˜MØ"Ø*¨6Ô2ðð ð 2ñ ô ð ôˆDð �LŠL˜ÑÔÐÐð		ð €GØð 
"ð 
"ˆÝ�q‘”ð 		"ð 		"ˆAÝÔ$×2Ò2Øœ	Ð/Ð/ a¨¡cÐ/Ð/Ð/à* Q q¡S˜N˜NØ"Ø*¨7Ô3ðð ð 3ñ ô ð ôˆEð �NŠN˜5Ñ!Ô!Ð!Ð!ð		"ð €DØÐ,�3˜w™<œ<¨1Ñ,Ð,Ô-ð 
!ð 
!ˆÝ�q‘”ð 		!ð 		!ˆAÝÔ&×4Ò4Øœ
Ð0Ð0 q¨¡sÐ0Ð0Ð0à( 1 Q¡3˜L˜LØ#Ø*¨5Ô1ðð ð 5ñ ô ð ôˆGð �KŠK˜Ñ Ô Ð Ð ð		!ð ˜G‘O dÑ*€Mðð ð €Mõ 
Ð
/•S˜‘^”^Ð
/Ð
/Ð
/Ñ0Ô0Ð0Ý	Ð
1•S˜‘_”_Ð
1Ð
1Ð
1Ñ2Ô2Ð2Ý	Ð
'•S˜‘Z”ZÐ
'Ð
'Ð
'Ñ(Ô(Ð(Ý	Ð
'•S˜‘Z”ZÐ
'Ð
'Ð
'Ñ(Ô(Ð(Ý	Ð
+•S˜‘\”\Ð
+Ð
+Ð
+Ñ,Ô,Ð,Ý	Ð
%•S˜‘Y”YÐ
%Ð
%Ð
%Ñ&Ô&Ð&ð €HÝ�>Ñ"Ô"ð !ð !ˆÝ4:´MÀ-Ñ4PÔ4PÑ1ˆˆk˜9 kàÐ+Ð+ ! A¡#Ð+Ð+Ð+ˆØ$Ð0Ð0 q¨¡sÐ0Ð0Ð0ˆå”_×2Ò2Øà*Ø*Ø#,ðð ð 3ñ 
ô 
‰
ˆ�õ Œ=‰?Œ?˜SÒ Ð Ý%œ}¨]Ñ;Ô;ˆGÔØ�LŠL‰NŒNˆNà�Š˜Ñ Ô Ð Ð å	Ð
B•S˜‘]”]Ð
BÐ
BÐ
BÑCÔCÐCð €DÝ�:ÑÔð ð ˆàu�œ r¨2Ñ.Ô.ÐuÐuµF´NÀ3ÈÑ4LÔ4LÐuÐuÕRXÔR`ÐabÐdnÑRoÔRoÐuÐuÐuˆÝ”×*Ò*°&Ð*Ñ9Ô9‰ˆˆQØ�Š�CÑÔÐÐå	Ð
%•S˜‘Y”YÐ
%Ð
%Ð
%Ñ&Ô&Ð&ð ð (ð (ˆÝ”> ! QÑ'Ô'ˆÝœ d­C°½#¸d¹)¼)Ñ,DÔ,DÑEÔEˆØŒ×Ò˜Ñ'Ô'Ð'Ð'å	Ð
*Ñ+Ô+Ð+õ ˜)‘n”n¥s¨:¡¤Ñ6½¸U¹¼ÑCÅcÈ%ÁjÄjÑPÕSVÐW^ÑS_ÔS_Ñ_ÕbeÐfjÑbkÔbkÑk€OÝ	Ð
ÑÔÐÝ	Ð
/˜oÐ
/Ð
/Ñ0Ô0Ð0Ý	Ð
0•w”×,Ò,Ñ.Ô.Ð
0Ð
0Ñ1Ô1Ð1Ý	Ð
(•3”;×$Ò$Ñ&Ô&Ð
(Ð
(Ñ)Ô)Ð)Ý	Ð
]¥W¤_×%<Ò%<ÈdÐ%<Ñ%SÔ%S×%YÒ%YÑ%[Ô%[Ð
]Ð
]Ñ^Ô^Ð^Ý	Ð
_­¬×(>Ò(>ÐPTÐ(>Ñ(UÔ(U×([Ò([Ñ(]Ô(]Ð
_Ð
_Ñ`Ô`Ð`Ð`Ð`ó    Ú__main__)r   r	   )Ú__doc__r0   Údjango.contrib.authr   Úproducts.modelsr   r   r   r   rT   Ú__name__© rU   rS   ú<module>r\      s—   ððð ð
 €€€Ø .Ð .Ð .Ð .Ð .Ð .Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðuað uað uað uaðp ˆzÒÐØÐÑÔÐÐÐð ÐrU   