
    5g&                     0    d dl  d dlmZ  G d de      Zy)    )*)CmfAssetSchemec                   N     e Zd Zd Z fdZ fdZ fdZ fdZd Zd Z	 xZ
S )r   c                    t         j                  j                  | d      s(t         j                  | | ddd      j                         }t         j                  j                  | d      s(t         j                  | | ddd      j                         }t         j                  j                  | d      s)t         j                  | | dd	d      j                         }y y )
Nu   Активы)parentnameassetsT)tree_parentr   r   sys_typesystemu   Типы активовasset_typesu   Локации	locations)models	CmfFoldergetsave)selfassets_folderasset_types_folderlocations_folders       *./modules/asset/models/cmf_asset_scheme.py_scaffold_assetszCmfAssetScheme._scaffold_assets   s    ##4n#E",,dQ_jr{,  A  F  F  HM##46O#P"("2"2tDWp  |I  RV"2  #W  #\  #\  #^##46F#G%//DTdoz  DH/   I   N   N   P H    c                     | j                          | j                  }t        |   |i | |r| j	                          y y N)_calc_asset_code_prefixis_newsuperr   r   )r   argskwargsr   	__class__s       r   r   zCmfAssetScheme.save   s=    $$&d%f%!!# r   c                 D    | j                          t        |   |i | y r   )r   r   _save_importr   r   r    r!   s      r   r#   zCmfAssetScheme._save_import   s!    $$&d-f-r   c                 (    t         |          dgz   S )Nr   )r   save_preload_fields)r   r!   s    r   r&   z"CmfAssetScheme.save_preload_fields   s     w*,0
 
 	
r   c                     | j                   j                          | j                   rt        dd       t        |   |i | y )Nu?   Запрещено удалять системную схемуTabort)r   load	cmf_alertr   deleter$   s      r   r,   zCmfAssetScheme.delete   s7    ;;W_cd''r   c                    | j                   j                  sy | j                   j                  j                         | _         | j	                  | j                          | j	                  | j                   dz          t
        j                  j                  | d      D ]$  }|j                  d       |j                          & t
        j                  j                  | d      D ]$  }|j                  d       |j                          & y )NTT)r   include_deleted)from_recalculate)asset_code_prefix
is_changedvalueupper_check_code_prefix_uniqr   CmfAssetlist
_calc_coder   CmfAssetType)r   asset
asset_types      r   r   z&CmfAssetScheme._calc_asset_code_prefix$   s     ""--!%!7!7!=!=!C!C!E$$T%;%;<$$T%;%;c%AB __))t)L 	Ed3JJL	 !--22$PT2U 	J!!4!8OO	r   c                 b   |dk(  s|dk(  s|dk(  s|| j                   k(  rt        d| d       t        j                  j	                  dd| j
                  gd	d
|ggdgd      }|rt        d| d|j                   dd       t        j                  j	                  dd| j
                  gdd
|ggdgd      }|rt        d| d|j                   dd       t        j                  j	                  dd| dgdd| ggdgd      }|r't        d| d|j                  j                   d       y y )NTSKA	NOPROJECTuH   Нельзя использовать системный префикс Tr(   idz!=r1   =r   )filterfieldsr/   u   Код u.    уже используется схемой u   . Выберите другойtask_code_prefixu2    уже используется проектом codeLIKEz-%projectzproject.nameu8    ранее использовался проектом u   . Это может привести к пропускам в нумерации кодов. Если это нежелательно - укажите другой префикс)
code_prefixr+   r   r   r   r@   r   
CmfProjectCmfTaskCodeHistoryrG   )r   rH   scheme_with_prefixproject_with_prefix	code_useds        r   r5   z&CmfAssetScheme._check_code_prefix_uniq<   s    %#%+-$"2"22`al`mnvz{#22664),?k+RS8  7 

 },Z[m[r[rZs t7 8 " %//334),>[+QR8  4 

 },^_r_w_w^x y7 8 "
 --11V}B%789dD:QR"#  2 
	
  },deneveve{e{d| }o p q r   )__name__
__module____qualname__r   r   r#   r&   r,   r   r5   __classcell__)r!   s   @r   r   r      s(    P$.

(0+qr   r   N)cmf.include%modules.asset.fields.cmf_asset_schemer    r   r   <module>rU      s     @bq^ bqr   