B
    Z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 }xH|D ]@}t||r:t|| d	rjt|| j||< q:t|| ||< q:W 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)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   