B
    b              	   @   s   d dl mZ d dl mZ d dlmZ d dlmZmZ 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 G d
d dejejejejejeZG dd dejejeZdS )    )mixins)permissions)gettext_lazy)UtilGenericViewSetSimpleViewSet)PositionListFilter)Position)serializers)get_api_company_id)Responsec               @   sh   e Zd ZdZeZej Ze	Z
ejfZdZejejejejejejejdZdd Zdd Zdd	 Zd
S )PositionViewSetz8
    PositionList pagination, search, filter, order
    )position_codeposition_name)listZretrievecreateupdateZpartial_updateactionZexportc             C   s   | j | jtjS )N)serializer_dictgetr   r	   ZNoneSerializer)self r   AG:\easytimepro\master/mysite/personnel\api\views\view_position.pyget_serializer_class(   s    z$PositionViewSet.get_serializer_classc             C   s&   t | jj}| jj|d}|ddS )N)
company_idZparent_positionZcompany)r
   requestuserquerysetfilterZselect_related)r   r   Zqsr   r   r   get_queryset,   s    zPositionViewSet.get_querysetc             O   sL   y"|   }| | ddi}t|S  tk
rF   td}td|iS X d S )NmessageZdeletedZ&position_default_id_can_not_be_deletedZdetail)Z
get_objectZperform_destroyr   	Exception_)r   r   argskwargsinstanceZresponser   r   r   r   destroy@   s    
zPositionViewSet.destroyN)__name__
__module____qualname____doc__r   modelobjectsallr   r   Zfilter_classr   ZIsAuthenticatedZpermission_classessearch_fieldsr	   ZPositionSerializerZPositionCreateSerializerZPositionEditSerializerZPositionActionSerializerZPositionExportSerializerr   r   r   r%   r   r   r   r   r      s    

r   c               @   s&   e Zd ZeZej ZdZdd Z	dS )SimplePositionViewSet)r   r   c             C   s   t jS )N)r	   ZSimplePositionSerializer)r   r   r   r   r   R   s    z*SimplePositionViewSet.get_serializer_classN)
r&   r'   r(   r   r*   r+   r,   r   r-   r   r   r   r   r   r.   K   s   
r.   N)Zrest_frameworkr   r   Zdjango.utils.translationr   r!   Z mysite.personnel.api.utils_classr   r   Zmysite.personnel.api.filtersr   Z&mysite.personnel.models.model_positionr   Zmysite.personnel.apir	   Zmysite.api.utilsr
   Zrest_framework.responser   ZListModelMixinZCreateModelMixinZRetrieveModelMixinZUpdateModelMixinZDestroyModelMixinr   r.   r   r   r   r   <module>   s"   7