B
    ADb`                 @   s   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 d dlmZ G d	d
 d
ejZG dd dejeZdS )    )OrderedDict)mixinsserializers)Response)action)status)NoneSerializer)ReportUtilGenericViewSet)
Unregisterc               @   s   e Zd ZG dd dZdS )$BaseUnregisteredUserReportSerializerc               @   s   e Zd ZeZdZdS )z)BaseUnregisteredUserReportSerializer.Meta)idZ
punch_timeZtemperature	mask_flagN)__name__
__module____qualname__r
   modelZfields r   r   OG:\easytimepro\master/mysite/att\api\views\view_report_base_unregistereduser.pyMeta   s   r   N)r   r   r   r   r   r   r   r   r      s   r   c                   sp   e Zd ZeZej dZe	e	dZ
ddgZ fddZdd Zd	d
 Zedgdddd Zdd Z  ZS )!BaseUnregisteredUserReportViewSetz-punch_time)listexportr   Zunregistereduser_photoc                s   t t|  }| jjjs|j| jjjd}| jjjst| jjj	}|
 rfdd | D }|j|d}q|jdd}n|j| jjjd}|S )N)Z
company_idc             S   s   g | ]}t |qS r   )str).0xr   r   r   
<listcomp>*   s    zBBaseUnregisteredUserReportViewSet.get_queryset.<locals>.<listcomp>)Zarea_alias__inT)Zarea_alias__isnull)superr   get_querysetrequestuserZis_employeefilterZcurrent_companyZis_superuserZget_auth_areaexistsall)selfquerysetZ	auth_areaZ	area_name)	__class__r   r   r   #   s    


z.BaseUnregisteredUserReportViewSet.get_querysetc             O   sV   |  |  }| |}|d k	r>| j|dd}|j}| |S | j|dd}t|jS )NT)many)Zfilter_querysetr   paginate_querysetget_serializerdataZget_paginated_responser   )r#   r   argskwargsr$   page
serializerr)   r   r   r   r   2   s    

z&BaseUnregisteredUserReportViewSet.listc             C   s\   xV|D ]N}|d d k	rL|d }|dkr0d|d< qT|dkrBd|d< qTd|d< qd|d< qW |S )Nr      ZYesr   ZNo r   )r#   Z	base_datar)   r   r   r   r   update_td_md_data>   s    



z3BaseUnregisteredUserReportViewSet.update_td_md_datagetF)methodsZdetailc             C   s  |j dd }|j ddd| _|j dd | _|j dd| _|j dd| _|j d	d| _|j d
d| _|j dd| _	| 
 }|d k	r| |}| j|dd}n| j|dd}|j dd}|j}| |}t|r|d  ng }	g }
x,| jD ]"}||	ks|| jkr|
| qW |	r0|
| _|dkrR| | jd d |}nl|dkrn| || j|}nP|dkr| | jd d |}n.|dkr| | j|}nttdgtjd}|S )Nr,   export_headersr/   ,Zexport_style	page_wiseF
start_dateend_datezpdf-page-sizeorientationT)r&   export_typer   Zcsv   ZxlsZtxtZpdf)r9   zInvalid file format)r   )Zquery_paramsr1   splitr3   Zgroup_byr5   r6   r7   Zpdf_page_sizer8   Zget_export_querysetr'   r(   r)   r0   lenkeysexport_headers_proappendZexport_to_csvZexport_to_xlsZexport_to_txtZexport_to_pdfr   r   r   ZHTTP_403_FORBIDDEN)r#   r   r,   r$   Z	page_datar-   Zfile_formatr)   Zserializer_dataZdata_fieldsZheaders_listheaderZresponser   r   r   r   L   sB    





z(BaseUnregisteredUserReportViewSet.exportc             C   s   | j | jtS )N)serializer_dictr1   r   r   )r#   r   r   r   get_serializer_classs   s    z6BaseUnregisteredUserReportViewSet.get_serializer_class)r   r   r   r
   r   Zobjectsr"   Zorder_byr$   r   rA   r>   r   r   r0   r   r   rB   __classcell__r   r   )r%   r   r      s   'r   N)collectionsr   Zrest_frameworkr   r   Zrest_framework.responser   Zrest_framework.decoratorsr   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   	