B
    DD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 d dlmZ G d	d
 d
ejejejejejeZdS )    )mixins)permissions)Terminal)UtilGenericViewSet)TerminalListFilter)serializers)get_api_company_id)Responsec               @   s   e Zd ZdZeZej dZ	e
ZejfZddddddd	d
g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d Zdd Zdd Zdd Zdd Zdd ZdS )TerminalViewSetz0
    TerminalList pagination, filter, order
    ZareaZsnZ
ip_addressaliasZterminal_tzZtransfer_timeZtransfer_intervalZis_attendanceZ	area_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   >G:\easytimepro\master/mysite/iclock\api\views\view_terminal.pyget_serializer_class)   s    z$TerminalViewSet.get_serializer_classc             C   s$   t | jj}| jj|d}|dS )N)
company_idZcompany)r   requestuserquerysetfilterselect_related)r   r   Zqsr   r   r   get_queryset-   s    zTerminalViewSet.get_querysetc          
   O   sR   y"|   }| | ddi}t|S  tk
rL } ztd|iS d }~X Y nX d S )NmessageZdeletedZdetail)Z
get_objectZperform_destroyr	   	Exception)r   r   argskwargsinstanceZresponseer   r   r   destroyA   s    
zTerminalViewSet.destroyc             C   s   ddl m} g }t| jj}x`| jjj|dD ]L}|j|kr>q.y|| W q. t	k
rx } z|
|j W d d }~X Y q.X q.W |dfS )Nr   )clearDevData)id__in )mysite.core.zkcmdprocr$   r   r   r   modelobjectsr   r   r   appendid)r   
object_idsr$   
error_listr   objr"   r   r   r   action_clear_dataJ   s    
"z!TerminalViewSet.action_clear_datac             C   s   ddl m} g }t| jj}x`| jjj|dD ]L}|j|kr>q.y|| W q. t	k
rx } z|
|j W d d }~X Y q.X q.W |dfS )Nr   )zk_delete_photo_data)r%   r&   )r'   r0   r   r   r   r(   r)   r   r   r   r*   r+   )r   r,   r0   r-   r   r.   r"   r   r   r   action_clear_captureW   s    
"z$TerminalViewSet.action_clear_capturec             C   s   ddl m} g }t| jj}x`| jjj|dD ]L}|j|kr>q.y|| W q. t	k
rx } z|
|j W d d }~X Y q.X q.W |dfS )Nr   )reloadDataCmd)r%   r&   )r'   r2   r   r   r   r(   r)   r   r   r   r*   r+   )r   r,   r2   r-   r   r.   r"   r   r   r   action_upload_user_datad   s    
"z'TerminalViewSet.action_upload_user_datac             C   s   ddl m} g }t| jj}x`| jjj|dD ]L}|j|kr>q.y|| W q. t	k
rx } z|
|j W d d }~X Y q.X q.W |dfS )Nr   )reloadLogDataCmd)r%   r&   )r'   r4   r   r   r   r(   r)   r   r   r   r*   r+   )r   r,   r4   r-   r   r.   r"   r   r   r   action_upload_transactionq   s    
"z)TerminalViewSet.action_upload_transactionc             C   s   ddl m} g }t| jj}x`| jjj|dD ]L}|j|kr>q.y|| W q. t	k
rx } z|
|j W d d }~X Y q.X q.W |dfS )Nr   )rebootDevice)r%   r&   )r'   r6   r   r   r   r(   r)   r   r   r   r*   r+   )r   r,   r6   r-   r   r.   r"   r   r   r   action_reboot   s    
"zTerminalViewSet.action_rebootc             C   s   ddl m} g }d}t| jj}xb| jjj|dD ]N}|j|krBq2y||| W q2 t	k
r~ } z|
|j W d d }~X Y q2X q2W |dfS )Nr   )appendDevCmdINFO)r%   r&   )r'   r8   r   r   r   r(   r)   r   r   r   r*   r+   )r   r,   r8   r-   cmdr   r.   r"   r   r   r   action_read_infomation   s    
"z&TerminalViewSet.action_read_infomationN) __name__
__module____qualname____doc__r   r(   r)   allr   r   r   Zfilter_classr   ZIsAuthenticatedZpermission_classesZexport_headersr   ZTerminalSerializerZTerminalCreateSerializerZTerminalEditSerializerZTerminalActionSerializerZTerminalExportSerializerr   r   r   r#   r/   r1   r3   r5   r7   r;   r   r   r   r   r
      s.   


	r
   N)Zrest_frameworkr   r   Z#mysite.iclock.models.model_terminalr   Zmysite.iclock.api.utils_classr   Zmysite.iclock.api.filtersr   Zmysite.iclock.apir   Zmysite.api.utilsr   Zrest_framework.responser	   ZListModelMixinZCreateModelMixinZRetrieveModelMixinZUpdateModelMixinZDestroyModelMixinr
   r   r   r   r   <module>   s   