B
    b                 @   sx   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ G dd	 d	eZd
S )    )models)timezone)gettext_lazy)ALL_AUDIT_STATUS)AUDIT_SUCCESSREFUSEAPPLICATIONCANCEL_AUDIT_SUCCESSWITHDRAW_AUDIT_SUCCESS)AbstractCloud)db_constc               @   s   e Zd ZejedeeddZej	ede
jdddZdd Zd	d
 Zdd Zdd Zedd Zedd Zedd Zdd Zdd Zdd ZG dd dZdS )AbstractExceptionZapproval_field_approvalStatusF)defaultchoicesZeditableZworkflow_field_revokeRemarkT)Z
max_lengthZnullZblankc             C   s   t | _|   d S )N)r   audit_statussave)self r   ?G:\easytimepro\master/mysite/workflow\models\exception_model.pyapprove   s    zAbstractException.approvec             C   s   t | _|   d S )N)r   r   r   )r   r   r   r   reject   s    zAbstractException.rejectc             C   s   t | _|| _|   d S )N)r	   r   revoke_reasonr   )r   remarkr   r   r   revoke   s    zAbstractException.revokec             C   s   t | _|| _|   d S )N)r
   r   r   r   )r   r   r   r   r   withdraw#   s    zAbstractException.withdrawc             C   s$   y
| j  S  tk
r   d S X d S )N)workflowinstanceZget_last_approver	Exception)r   r   r   r   last_approver(   s    
zAbstractException.last_approverc             C   s$   y
| j  S  tk
r   dS X d S )NF)r   Zis_auditingr   )r   r   r   r   node_auditing/   s    
zAbstractException.node_auditingc             C   s   |   d | j  S )Nz  )Zget_audit_status_displayr   Zget_last_operation_timestamp)r   r   r   r   workflow_current_state_name6   s    
z-AbstractException.workflow_current_state_namec             C   s
   | j tkS )N)r   r   )r   r   r   r   
is_pending<   s    zAbstractException.is_pendingc             C   s
   | j tkS )N)r   r   )r   r   r   r   is_approved?   s    zAbstractException.is_approvedc             C   s
   | j tkS )N)r   r   )r   r   r   r   is_rejectedB   s    zAbstractException.is_rejectedc               @   s   e Zd ZdZdS )zAbstractException.metaTN)__name__
__module____qualname__Zabstractr   r   r   r   metaE   s   r&   N)r#   r$   r%   r   ZSmallIntegerField_r   r   r   Z	TextFieldr   ZMAX_AUDIT_REASONr   r   r   r   r   propertyr   r   r   r    r!   r"   r&   r   r   r   r   r      s"   r   N)Z	django.dbr   Zdjango.utilsr   Zdjango.utils.translationr   r'   Zmysite.att.models_choicesr   r   r   r   r	   r
   Z!mysite.admin.abstract_cloud_modelr   Z
mysite.attr   r   r   r   r   r   <module>   s   