U
    ܌f~                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_answer_templatec                
       sp   e Zd Ze Zejjddg Z fddZ	e
dd Ze
dd Ze
d	d
 Zddddddddddg
Z  ZS )CmfAnswerTemplatetemplate_renderget_template_fieldsc                    s   | j stddd | jr2| jjd| jdds2d| _| jdkrhd	d
| jgdd
| j gdd| jgdd
dgg}n4d	d
| jgdd
| j gdd| jgdd
dgdd
tj	gg}t
jj|drtddd | jr| jstj	| _t j||S )Nue   Внимание! Шаблонный ответ должен быть создан в проекте.T)abortzPPP-PR-ADMINF)objZraise_errorZprivatecommonnamez==parentidz!=answer_typeperson)filteruR   В этом проекте уже есть шаблон с таким именем)r   Z	cmf_alertZis_newZprojectZcheck_project_role_accessr   r
   r   gcurrent_userZmodelsr   getr   supersave)selfargskwargsr   	__class__ 3./modules/servicedesk/models/cmf_answer_template.pyr      s    
, 
zCmfAnswerTemplate.savec                 C   s   | j S )uh   Возвращает на фронт список возможных переменных шаблона)_template_fields)clsr   r   r   r   "   s    z%CmfAnswerTemplate.get_template_fieldsc           	      K   s   dd }| j dddg }tj||d}tdd}i }|D ]@}t||r8t|| d	rht|| j||< q8t|| ||< q8ttjj|d
< t|d j|d< | |j	 |d< ||||d< t|j
j|d< |S )z	
        c                 S   s>   | j jdr*| d| j j d| j j S | | j j S d S )Nzproject.servicedeskzservicedesk//)r   Zlogic_prefix
startswithZui_namecodehref)r   urlr   r   r   
portal_url+   s    z:CmfAnswerTemplate.prepare_template_ctx.<locals>.portal_urlZ	cmf_ownerr   zparent.logic_prefix)fieldsT)Zfull_urlr
   r   reportertask_urlr#   client_status)r   ZcmfutilZget_obj_by_idZapp_base_hrefhasattrstrr
   r   r   r!   status)	r   obj_idr   r#   r$   r   r"   ZctxZfieldr   r   r   prepare_template_ctx'   s     

z&CmfAnswerTemplate.prepare_template_ctxc                 K   s&   | j |}| j|f|}|jf |S )N)
_jinja_envZfrom_stringr,   Zrender)r   r+   textr   templateZtemplate_ctxr   r   r   r   F   s    z!CmfAnswerTemplate.template_renderr   Zresponsibler.   r    r%   r'   r
   r#   r*   r&   )__name__
__module____qualname__Zjinja2ZEnvironmentr-   r   r   Zapi_methodsr   classmethodr   r,   r   r   __classcell__r   r   r   r   r      s   


r   N)Zcmf.includeZmodules.servicedesk.fieldsr   r   r   r   r   r   <module>   s   