3

‘ã\{  ã               @   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ÚReportHTMLFormatterÚ	analyticsÚProductRecordÚ
UserRecordc               @   s   e Zd ZdZdd„ ZdS )ÚProductReportCSVFormatterz!conditional-offer-performance.csvc             C   s`   | j |ƒ}tdƒtdƒtdƒtdƒg}|j|ƒ x*|D ]"}|j|j|j|jg}|j|ƒ q6W d S )NÚProductÚViewszBasket additionsÚ	Purchases)Úget_csv_writerÚ_ÚwriterowÚproductÚ	num_viewsÚnum_basket_additionsÚnum_purchases)ÚselfÚresponseÚproductsÚwriterÚ
header_rowÚrecordÚrow© r   ú7/var/www/html/oscar2019/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 )ÚProductReportHTMLFormatterz.dashboard/reports/partials/product_report.htmlN)r    r!   r"   r#   r   r   r   r   r$   !   s   r$   c               @   s:   e Zd ZdZedƒZeedœZd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   t jjƒ }| jj|ƒS )N)r	   Ú_default_managerÚallÚ	formatterÚgenerate_response)r   Úrecordsr   r   r   Úgenerate0   s    
zProductReportGenerator.generatec             C   s   |j S )N)Úis_staff)r   Úuserr   r   r   Úis_available_to4   s    z&ProductReportGenerator.is_available_toN)r    r!   r"   Úcoder   r(   r   r$   Ú
formattersr)   r/   r2   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¤   | j |ƒ}tdƒtdƒtdƒtdƒtdƒtdƒtdƒtdƒtd	ƒg	}|j|ƒ xP|D ]H}|jjƒ | j|jjƒ|j|j|j	|j
|j|j| j|jƒg	}|j|ƒ qTW d S )
NÚNamezDate registeredzProduct viewszBasket additionsÚOrderszOrder lineszOrder itemszTotal spentzDate of last order)r   r   r   r1   Úget_full_nameÚformat_dateÚdate_joinedÚnum_product_viewsr   Ú
num_ordersÚnum_order_linesÚnum_order_itemsÚtotal_spentÚformat_datetimeÚdate_last_order)r   r   Úusersr   r   r   r   r   r   r   r   ;   s,    



z#UserReportCSVFormatter.generate_csvN)r    r!   r"   r#   r   r   r   r   r   r5   8   s   r5   c               @   s   e Zd ZdZdS )ÚUserReportHTMLFormatterz+dashboard/reports/partials/user_report.htmlN)r    r!   r"   r#   r   r   r   r   rC   U   s   rC   c               @   s2   e Zd ZdZedƒZeedœZdd„ Z	dd„ Z
dS )	ÚUserReportGeneratorZuser_analyticszUser analytics)r&   r'   c             C   s   t jjƒ jƒ }| jj|ƒS )N)r
   r*   Úselect_relatedr+   r,   r-   )r   rB   r   r   r   r/   a   s    zUserReportGenerator.generatec             C   s   |j S )N)r0   )r   r1   r   r   r   r2   e   s    z#UserReportGenerator.is_available_toN)r    r!   r"   r3   r   r(   r5   rC   r4   r/   r2   r   r   r   r   rD   Y   s   rD   N)Údjango.utils.translationr   r   Úoscar.core.loadingr   r   r   r   r   r	   r
   r   r$   r%   r5   rC   rD   r   r   r   r   Ú<module>   s   


