B
    b                 @   sj   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 G dd dejZG dd	 d	eje	Zd
S )    )gettext_lazy)mixinsserializers)NoneSerializer)UtilGenericViewSet)Terminalc               @   s\   e Zd ZejdddZejeddZejedddZejedddZ	G d	d
 d
Z
dS )DashboardOnlineSerializerzarea.area_nameT)source
allow_nullZterminal_field_sn)labelZterminal_field_alias)r   r
   Zterminal_field_ipAddressc               @   s   e Zd ZeZdZdS )zDashboardOnlineSerializer.Meta)snaliasdevice_area
ip_addressN)__name__
__module____qualname__r   modelZfields r   r   GG:\easytimepro\master/mysite/base\api\viewsets\dashboard_online_list.pyMeta   s   r   N)r   r   r   r   Z	CharFieldr   _r   r   r   r   r   r   r   r   r      s
   r   c                   s:   e Zd ZeZej ZdeiZ	dd Z
 fddZ  ZS )DashboardOnlineViewSetlistc             C   s   | j | jtS )N)serializer_dictgetactionr   )selfr   r   r   get_serializer_class!   s    z+DashboardOnlineViewSet.get_serializer_classc                s   g }t t|  }| jjj}|j|d}| jj}|jsV|j	 rV|j|j
 d }x&|D ]}| }|dkr\|| q\W |S )N)
company_id)Zarea__in)         )superr   get_querysetZrequestuserZcurrent_companyfilterZis_superuserZget_auth_areaexistsallZdistinctZgetDynStateappend)r   Z	device_lsquerysetr   Zdevice_queryr%   ZdeviceZdevice_state)	__class__r   r   r$   %   s    


z#DashboardOnlineViewSet.get_queryset)r   r   r   r   r   ZobjectsZselect_relatedr*   r   r   r   r$   __classcell__r   r   )r+   r   r      s
   
r   N)Zdjango.utils.translationr   r   Zrest_frameworkr   r   Zmysite.att.api.serializersr   Zmysite.att.api.utils_classr   Zmysite.iclock.modelsr   ZModelSerializerr   ZListModelMixinr   r   r   r   r   <module>   s   