o
    ayh                     @   s   d dl mZ d dlmZmZmZ ddlmZmZ ddl	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d d	lmZ ed
ddd Zed
ddd Zed
ddd Zed
ddd Zdd Zdd Zdd Zed
ddd ZdS )    )login_required)renderredirectget_object_or_404   )ExpenseExpenseCategory)ExpenseFormExpenseCategoryForm)JsonResponse)Sum)datetime	timedelta)timezonez/auth/login/)	login_urlc                 C   s&   t j }tj }t| d||dS )Nzexpenses/list_expenses.html)expenses
categories)r   objectsallr   r   )requestr   r    r   '/var/www/html/kangema/expenses/views.pylist_expenses   s   

r   c                 C   sd   t j }| jdkr)t| j}| r| }tdS | 	 r)t
d|jdddS t| d||dS )	NPOSTr   F)successerrorsi  )statuszexpenses/add_expense.html)formr   )r   r   r   methodr	   r   is_validsaver   is_ajaxr   r   r   )r   r   r   expenser   r   r   add_expense   s   


r#   c                 C   s\   t t|d}| jdkr!t| j|d}| r |  tddiS nt|d}t| dd|iS )Nidr   instancer   Tz expenses/edit_expense_modal.htmlr   )	r   r   r   r	   r   r   r    r   r   )r   
expense_idr"   r   r   r   r   edit_expense(   s   

r)   c                 C   s.   t t|d}| jdkr|  tddiS d S )Nr$   r   r   T)r   r   r   deleter   )r   r(   r"   r   r   r   delete_expense5   s
   
r+   c                 C   sN   t j }t }| jdkrt| j}| r|  tdS t	| d||dS )Nr   expenses_category_listz$expenses/expenses_category_list.html)r   r   )
r   r   r   r
   r   r   r   r    r   r   )r   r   r   r   r   r   r,   >   s   


r,   c                 C   sX   t t|d}| jdkrt| j|d}| r|  tdS nt|d}t| dd|iS )Npkr   r&   r,   z$expenses/expenses_category_form.htmlr   )	r   r   r   r
   r   r   r    r   r   )r   r.   categoryr   r   r   r   expenses_category_editI   s   

r0   c                 C   s6   t t|d}| jdkr|  tdS t| dd|iS )Nr-   r   r,   z.expenses/expenses_category_confirm_delete.htmlr/   )r   r   r   r*   r   r   )r   r.   r/   r   r   r   expenses_category_deleteU   s
   
r1   c           	      C   s   t   }|jdd}tjjtddd pd}tjj|djtddd p)d}tjj|djtddd p:d}tj	d	
d
dd d }tjd }|||||d}t| d|S )Nr   )dayamount)totalr4   r   )date)	date__gter/   z-datez-id
   r   )total_expensesdaily_expensesmonthly_expenseslatest_expensesr   zexpenses/dashboard.html)r   nowr5   replacer   r   	aggregater   filterselect_relatedorder_byr   prefetch_relatedr   r   )	r   todaycurrent_monthr8   r9   r:   r;   r   contextr   r   r   expense_dashboard]   s   ""rF   N)django.contrib.auth.decoratorsr   django.shortcutsr   r   r   modelsr   r   formsr	   r
   django.httpr   django.db.modelsr   r   r   django.utilsr   r   r#   r)   r+   r,   r0   r1   rF   r   r   r   r   <module>   s*    



