Ë
    ´ejû  ã                   óR   — d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	  G d„ de«      Z
y)é    )ÚBaseCommandÚCommandError)Útransaction)ÚUser)ÚDEFAULT_CATEGORY_SLUGÚTAXONOMY_MODELSc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚCommandzrAssign legacy records and taxonomy values with no owner to one user. Runs as a dry-run unless --apply is provided.c                 óR   — |j                  dd¬«       |j                  ddd¬«       y )Nz
--usernameT)Úrequiredz--applyÚ
store_truez@Apply the ownership updates. Without this flag, no data changes.)ÚactionÚhelp)Úadd_argument)ÚselfÚparsers     ú[/home/cnicou/Desktop/Git Repositories/office/core/management/commands/assign_legacy_data.pyÚadd_argumentszCommand.add_arguments   s1   € Ø×Ñ˜L°4ÐÔ8Ø×ÑØØØSð 	õ 	
ó    c           	      óì
  — 	 t         j                  j                  |d   ¬«      }t        j                  «       D ��ci c]   }|D ]  }|j                  j                  |“Œ Œ" }}}|j                  «       D ��ci c]0  \  }}||j                  j                  d¬«      j                  «       “Œ2 }	}}t        j                  «       D �
�ch c]	  \  }
}}
}
|’Œ }}
}g }g }|j                  «       D ]¬  \  }}|j                  j                  d¬«      j                  d¬«      j                  dd¬	«      }|j                  j                  ||¬
«      j                  dd¬	«      }|D ]7  }||v r|t        k(  r|j                  |«       Œ"|j                  |› d|› �«       Œ9 Œ® t        j                  «       D ]ÿ  \  }}}}
|j                  j                  dt        ¬«      }|j!                  «       sŒ:|j                  j                  |¬«      j                  d¬«      j!                  «       r(|j                  |j                  j                  › d�«       |j                  j                  |¬«      j                  d¬«      j!                  «       sŒ×|j                  |j                  j                  › d�«       �Œ t#        |	j                  «       «      }| j$                  j'                  d|› d|j(                  › �«       |	j                  «       D ])  \  }}|sŒ	| j$                  j'                  d|› d|› �«       Œ+ |r@| j$                  j'                  d«       |D ]   }| j$                  j'                  d|› �«       Œ" |rdj+                  |«      }t	        d|› �«      ‚|d   s5| j$                  j'                  | j,                  j/                  d«      «       y t1        j2                  «       5  t        j                  «       D ]¨  \  }}}
}
|j                  j                  dt        ¬«      }|j                  j                  |t        ¬«      j5                  «       }|�|j!                  «       sŒk|j                  j                  d|¬«      j7                  |d ¬«       |j9                  «        Œª |j                  «       D ].  }|j                  j                  d¬«      j7                  |¬«       Œ0 	 d d d «       | j$                  j'                  | j,                  j;                  d|› d|j(                  › d�«      «       y # t         j                  $ r}t	        d«      |‚d }~ww xY wc c}}w c c}}w c c}}
w # 1 sw Y   ŒˆxY w)NÚusername)r   z"The requested user does not exist.T)Úuser__isnullÚ )Úslugr   )Úflat)ÚuserÚslug__inz: )r   r   )Úcategory__inz,: owned records reference the legacy defaultz2: owned subcategories reference the legacy defaultzLegacy unowned rows found: z for assignment to z  z0Legacy Uncategorized categories to merge safely:z
  z>No changes were made because owned rows use the same slugs:
  Úapplyz>Dry run only. Re-run with --apply after checking these counts.)r   r   )r   r   )ÚcategoryÚsubcategory)r   z
Recovered z legacy rows for ú.)r   ÚobjectsÚgetÚDoesNotExistr   r   ÚvaluesÚ_metaÚlabel_lowerÚitemsÚfilterÚcountÚexcludeÚvalues_listr   ÚappendÚexistsÚsumÚstdoutÚwriter   ÚjoinÚstyleÚWARNINGr   ÚatomicÚfirstÚupdateÚdeleteÚSUCCESS)r   ÚargsÚoptionsr   ÚerrorÚgroupÚmodelÚmodelsÚlabelÚcountsÚ_Úcategory_modelÚcategory_modelsÚ
collisionsÚdefault_mergesÚunowned_slugsÚconflicting_slugsr   Úrecord_modelÚsubcategory_modelÚlegacy_defaultsÚtotalr+   ÚdetailsÚowned_defaults                            r   ÚhandlezCommand.handle   s¤  € ð	PÜ—<‘<×#Ñ#¨W°ZÑ-@Ð#ÓAˆDô )×/Ñ/Ó1÷
àØò
ð ð �K‰K×#Ñ# UÑ*ð
Ø#ð
ˆñ 
ð !'§¡£÷
á��uð �5—=‘=×'Ñ'°TÐ'Ó:×@Ñ@ÓBÑBð
ˆñ 
ô ,;×+AÑ+AÓ+C÷
á'��> 1 aò ð
ˆñ 
ð
 ˆ
ØˆØ"ŸL™L›Nò 	:‰LˆE�5Ø!ŸM™M×0Ñ0Ø!ð 1ó ç‰g˜2ˆgÓŸ{™{¨6¸˜{Ó=ð ð !&§¡× 4Ñ 4ØØ&ð !5ó !÷ ‰k˜& tˆkÓ,ð ð *ò :�Ø˜OÑ+°Ô8MÒ0MØ"×)Ñ)¨%Õ0à×%Ñ%¨¨¨r°$°Ð&8Õ9ñ	:ð	:ô  ×#Ñ#Ó%ò	ñ 
Ø˜.Ð*;¸Qà,×4Ñ4×;Ñ;Ø!Ü*ð <ó ˆOð #×)Ñ)Ô+ØØ×#Ñ#×*Ñ*Ø,ð +ó ç‰g 4ˆgÓ(¯©«ð2ð ×!Ñ!Ø%×+Ñ+×7Ñ7Ð8ð 9Að Aôð !×(Ñ(×/Ñ/Ø,ð 0ó ç‰g 4ˆgÓ(¯©«ñ2ð ×!Ñ!Ø%×+Ñ+×7Ñ7Ð8ð 9Gð Göð'	ô0 �F—M‘M“OÓ$ˆØ�‰×ÑØ)¨%¨Ð0CÀDÇMÁMÀ?ÐSô	
ð #ŸL™L›Nò 	9‰LˆE�5ÚØ—‘×!Ñ! B u g¨R°¨wÐ"7Õ8ð	9ñ Ø�K‰K×ÑØBôð (ò 0�Ø—‘×!Ñ! B u g ,Õ/ð0ñ Ø—k‘k *Ó-ˆGÜðØ�Iðóð ð
 �wÒØ�K‰K×ÑØ—
‘
×"Ñ"ØTóôð
 ä×ÑÓ!ñ 	Jô !×'Ñ'Ó)ò)ñ Ø˜n¨a°à"0×"8Ñ"8×"?Ñ"?Ø!%Ü.ð #@ó #�ð !/× 6Ñ 6× =Ñ =ØÜ.ð !>ó !÷ ‘%“'ð ð !Ð(°×0FÑ0FÔ0HØà×$Ñ$×+Ñ+Ø!%Ø!0ð ,ó ÷ ‘&Ø*Ø $ð ô ð  ×&Ñ&Õ(ð+)ð.  Ÿ™›ò J�Ø—‘×$Ñ$°$Ð$Ó7×>Ñ>ÀDÐ>ÕIñJ÷1	Jð6 	�‰×ÑØ�J‰J×ÑØ˜U˜GÐ#4°T·]±]°OÀ1ÐEóõ	
øôc × Ñ ò 	PÜÐCÓDÈ%ÐOûð	Püó
ùó

ùó
÷T	Jð 	Jús5   ‚#T1 ¼%UÁ75UÃU$Ï!DU*Ô1UÕUÕUÕ*U3N)Ú__name__Ú
__module__Ú__qualname__r   r   rP   © r   r   r
   r
      s   „ ð	8ð 	ò

óx
r   r
   N)Údjango.core.management.baser   r   Ú	django.dbr   Úcore.modelsr   Úcore.taxonomyr   r   r
   rT   r   r   ú<module>rY      s   ðß AÝ !å ß @ôF
ˆkõ F
r   