U
    ]e                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_answer_templatec                
       s`   e Zd Ze 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 )CmfAnswerTemplatec                    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   get_template_fields   s    z%CmfAnswerTemplate.get_template_fieldsc           	      K   s   dd }| j dddg }tj||d}dtj }i }|D ]@}t||r:t|| drjt|| j||< q:t|| ||< q:t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)fieldszhttps://r   r   reportertask_urlr"   client_status)r   ZcmfutilZget_obj_by_idZconfigZAPP_FQDN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   template_renderB   s    z!CmfAnswerTemplate.template_renderr   Zresponsibler-   r   r$   r&   r   r"   r)   r%   )__name__
__module____qualname__Zjinja2ZEnvironmentr,   r   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   