B
    b              	   @   s   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 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)status)Response)action)permissions)gettext_lazy)UtilGenericViewSetSimpleViewSet)AreaListFilter)Area)serializers)get_api_company_id)get_tree_nodesc               @   sh   e Zd ZdZeZej Ze	Z
dZejf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 )AreaViewSetz4
    AreaList pagination, search, filter, order
    )	area_code	area_name)listZretrievecreateupdateZpartial_updater   Zexportc             C   s   | j | jtjS )N)serializer_dictgetr   r   ZNoneSerializer)self r   =G:\easytimepro\master/mysite/personnel\api\views\view_area.pyget_serializer_class+   s    z AreaViewSet.get_serializer_classc             C   s&   t | jj}| jj|d}|ddS )N)
company_idZparent_areaZcompany)r   requestuserquerysetfilterZselect_related)r   r   Zqsr   r   r   get_queryset/   s    zAreaViewSet.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"area_default_id_can_not_be_deleteddetail)Z
get_objectZperform_destroyr   	Exception_)r   r   argskwargsinstanceZresponser!   r   r   r   destroy@   s    
zAreaViewSet.destroyN)__name__
__module____qualname____doc__r   modelobjectsallr   r
   Zfilter_classsearch_fieldsr   ZIsAuthenticatedZpermission_classesr   ZAreaSerializerZAreaCreateSerializerZAreaEditSerializerZAreaActionSerializerZAreaExportSerializerr   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	e
ddgddd Zd	S )
SimpleAreaViewSet)r   r   r   c             C   s   t jS )N)r   ZSimpleAreaSerializer)r   r   r   r   r   R   s    z&SimpleAreaViewSet.get_serializer_classFr   )r"   methodsc             C   s   t |j}t|S )N)r   r   r   )r   r   Z
tree_nodesr   r   r   treeU   s    
zSimpleAreaViewSet.treeN)r)   r*   r+   r   r-   r.   r/   r   r0   r   r   r3   r   r   r   r   r1   K   s
   
r1   N)Zrest_frameworkr   r   Zrest_framework.responser   Zrest_framework.decoratorsr   r   Zdjango.utils.translationr   r$   Z mysite.personnel.api.utils_classr   r	   Zmysite.personnel.api.filtersr
   Z"mysite.personnel.models.model_arear   Zmysite.personnel.apir   Zmysite.api.utilsr   r   ZListModelMixinZCreateModelMixinZRetrieveModelMixinZUpdateModelMixinZDestroyModelMixinr   r1   r   r   r   r   <module>   s(   4