
    ^"i                     T   d dl  d dl d dlmZ ddddiddiddiddigid	d
ddddiddiddiddiddiddiddiddigidddddiddiddiddiddiddiddigidddddiddiddiddiddiddiddiddigidddddiddiddiddiddiddiddiddiddig	idgZ G d de      Zy)    )*)CmfRoadmapView   Стандартныйfieldsnamecustom_column_indicatorscodestatusT)r   config
is_defaultu)   Релизное планированиеresponsibledeadlinefix_versionszop_gantt_task.sched_workzop_gantt_task.actual_work)r   r   u   Планированиеzop_gantt_task.sched_start_datezop_gantt_task.sched_finish_dateu   Отслеживаниеu   Приоритизация
logic_typepriority
componentsaffected_versionstagsc                   l     e Zd Z fdZed fd	       Z fdZ fdZ fdZ fdZ	ed        Z
 xZS )	r   c                 *    t         |          g dz   S )N)
view_scoper   r   )supersave_preload_fields)self	__class__s    *./modules/gantt/models/cmf_roadmap_view.pyr   z"CmfRoadmapView.save_preload_fieldsJ   s    w*,/UUU    c                     	 |dk(  r@|dk(  r;t         j                  |dg      }|j                  }|sy|j                  d|       yt
        |   ||||      S # t        $ r Y yw xY w)	Nupdater   project)r   FPPP-OBJ-EDITobjT)cmfutilget_obj_by_idr    check_project_role_accessCmfPermissionErrorr   ux_check_perm)clsr#   
field_namepermparentviewr    r   s          r   r(   zCmfRoadmapView.ux_check_permM   s    		xJ,$>,,S),E,, 11.d1K w$S*dFCC " 		s   0A A 	A&%A&c                    | j                  g d       | j                  j                  r| j                  j                  n| j                  j                  }|dk(  rH| j
                  t        j                  j                  k7  r t        j                  j                  d       y | j                  r3t        j                  | j                        }|j                  d|        y t         | E          y )Nr   	cmf_owner
project_idprivateuV   Нет прав на редактирование чужого личного видаmessager!   r"   )load_fieldsr   
is_changedoldvaluecmf_owner_idgcurrent_personidmodelsCmfAccessListcheck_admin_moder1   APPget_cache_projectr&   r   check_edit_perm)r   scoper    r   s      r   rB   zCmfRoadmapView.check_edit_perm[   s    BC OO.. $$oo++ 	 I  A$4$4$7$77$$55  ?W5  X ??++DOO<G--n$-GG#%r   c                    | j                  g d       | j                  dk(  rt        dd       y | j                  dk(  rH| j                  t        j
                  j                  k7  r t        j                  j                  d       y | j                  r3t        j                  | j                        }|j                  d	| 
       y t        | =          y )Nr/   embeddedu?   Системный вид не может быть удалёнTabortr2   uJ   Нет прав на удаление чужого личного видаr3   zPPP-OBJ-DELETEr"   )r5   r   	cmf_alertr9   r:   r;   r<   r=   r>   r?   r1   r@   rA   r&   r   check_delete_perm)r   r    r   s     r   rI   z CmfRoadmapView.check_delete_permn   s    BC??j(W_cd??i'  A$4$4$7$77$$55  ?K5  L ??++DOO<G--.>D-IG%'r   c                 Z   | j                   s{| j                  j                  r| j                  j                  n| j                  j                  }|dk(  r4| j                  d      D cg c]
  }|dk7  s	| }}|rt        dd       | j                  j                  rO| j                   sC| j                  j                  }| j                  j                  }|dk(  r|dk(  rt        d	d       | j                  r| j                  dk(  rt        d
d       | j                  rv| j                  j                  r`dd| j                  gg dg}| j                   s|j                  dd| j                  g       t        j                  j                  |ddi       t        	| <  |i | y c c}w )NrE   T)r6   r   uA   Системный вид нельзя редактироватьrF   r    r2   uP   Нельзя перевести общий вид обратно в личныйuO   Личный вид не может быть видом по умолчаниюr,   ==)r   rK   Tr<   z!=F)filtervalues)is_newr   r6   r7   r8   keysrH   r   r,   appendr<   r=   r   bulk_updater   save)
r   argskwargsrC   fchanged_fields	old_scope	new_scope_filterr   s
            r   rR   zCmfRoadmapView.save   sa    {{+/??+E+EDOO''4??K`K`E
"-1YY$Y-G!]1P\K\!!]!]!aimn ??%%dkk++I--II%)y*@ltxy ??t);gost ??t994-*G ;;dDGG45!!--WlTYEZ-[d%f%3 "^s   )
F(4F(c                    t        |   |i |}|j                  dd      }| j                  rQ|sOdd| j                  gg dg dg}t
        j                  j                  |      }|rd|_        |j                          |S )	Nskip_owner_checkFr,   rK   )r   rK   rE   )r   rK   r   )rL   T)r   deletegetr   r,   r=   r   rR   )r   rS   rT   resskip_reassignrY   standard_viewr   s          r   r\   zCmfRoadmapView.delete   s    gnd-f- 

#5u=??=4-08G
 #1155W5EM+/(""$
r   c                     t         D ]_  }t        j                         }|d   |_        ||_        |d   |_        d|_        |j                  dd      |_        |j                          a y)ub   
        Создает стандартные системные виды для roadmap
        r   r   rE   r   FN)
PRESET_VIEWSr=   r   r   r,   r   r   r]   r   rR   )r)   roadmappresetr-   s       r   scaffold_defaultsz CmfRoadmapView.scaffold_defaults   sa    
 # 	F((*DvDI!DK *DK(DO$jju=DOIIK	r   )NNr   N)__name__
__module____qualname__r   classmethodr(   rB   rI   rR   r\   re   __classcell__)r   s   @r   r   r   H   sH    V D D&&(&&B$  r   r   N)
cmf.fieldscmf.include%modules.gantt.fields.cmf_roadmap_viewr   rb    r   r   <module>ro      s     @
 )/0VVX	
  	 </0V]#VZ ^$/001	
 	 +/0VV5667/001
  +/0VVXZ ]#/001	
 	 -/0VV\"Z ]#\"()V

 
c?Dx^ xr   