B
    ²ô`Í  ã               @   s²   d dl mZ d dlmZmZ eddƒZeddƒZeddƒZeddƒZ	edd	ƒZ
G d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    )Úgettext_lazy)Ú	get_classÚ	get_modelzdashboard.reports.reportsÚReportGeneratorÚReportCSVFormatterÚReportHTMLFormatterZ	analyticsÚProductRecordÚ
UserRecordc               @   s   e Zd ZdZdd„ ZdS )ÚProductReportCSVFormatterz!conditional-offer-performance.csvc             C   s`   |   |¡}tdƒtdƒtdƒtdƒg}| |¡ x*|D ]"}|j|j|j|jg}| |¡ q6W d S )NZProductZViewszBasket additionsZ	Purchases)Úget_csv_writerÚ_ÚwriterowÚproductZ	num_viewsÚnum_basket_additionsZnum_purchases)ÚselfÚresponseZproductsÚwriterÚ
header_rowÚrecordÚrow© r   úK/home/dcms/DCMS/lib/python3.7/site-packages/oscar/apps/analytics/reports.pyÚgenerate_csv   s    



z&ProductReportCSVFormatter.generate_csvN)Ú__name__Ú
__module__Ú__qualname__Úfilename_templater   r   r   r   r   r
      s   r
   c               @   s   e Zd ZdZdS )ÚProductReportHTMLFormatterz4oscar/dashboard/reports/partials/product_report.htmlN)r   r   r   r   r   r   r   r   r   !   s   r   c               @   s6   e Zd ZdZedƒZeZee	dœZ
dd„ Zdd„ ZdS )	ÚProductReportGeneratorZproduct_analyticszProduct analytics)ÚCSV_formatterÚHTML_formatterc             C   s   | j S )N)Údescription)r   r   r   r   Úreport_description.   s    z)ProductReportGenerator.report_descriptionc             C   s   |j S )N)Úis_staff)r   Úuserr   r   r   Úis_available_to1   s    z&ProductReportGenerator.is_available_toN)r   r   r   Úcoder   r!   r   Zmodel_classr
   r   Ú
formattersr"   r%   r   r   r   r   r   %   s   r   c               @   s   e Zd ZdZdd„ ZdS )ÚUserReportCSVFormatterzuser-analytics.csvc             C   s¤   |   |¡}tdƒtdƒtdƒtdƒtdƒtdƒtdƒtdƒtd	ƒg	}| |¡ xP|D ]H}|j ¡ |  |jj¡|j|j|j	|j
|j|j|  |j¡g	}| |¡ qTW d S )
NÚNamezDate registeredzProduct viewszBasket additionsZOrderszOrder lineszOrder itemszTotal spentzDate of last order)r   r   r   r$   Zget_full_nameZformat_dateZdate_joinedZnum_product_viewsr   Z
num_ordersZnum_order_linesZnum_order_itemsZtotal_spentÚformat_datetimeZdate_last_order)r   r   Zusersr   r   r   r   r   r   r   r   8   s,    



z#UserReportCSVFormatter.generate_csvN)r   r   r   r   r   r   r   r   r   r(   5   s   r(   c               @   s   e Zd ZdZdS )ÚUserReportHTMLFormatterz1oscar/dashboard/reports/partials/user_report.htmlN)r   r   r   r   r   r   r   r   r+   R   s   r+   c               @   s8   e Zd ZdZedƒZej ¡  	¡ Z
eedœZdd„ ZdS )ÚUserReportGeneratorZuser_analyticszUser analytics)r   r    c             C   s   |j S )N)r#   )r   r$   r   r   r   r%   _   s    z#UserReportGenerator.is_available_toN)r   r   r   r&   r   r!   r	   Z_default_managerZselect_relatedÚallZquerysetr(   r+   r'   r%   r   r   r   r   r,   V   s   r,   N)Zdjango.utils.translationr   r   Zoscar.core.loadingr   r   r   r   r   r   r	   r
   r   r   r(   r+   r,   r   r   r   r   Ú<module>   s   


