a
    ³ûiã  ã                   @   s    d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 ddl
mZmZ d dlmZ d dlmZ ed	d
„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZdS )é    )ÚrenderÚredirectÚget_object_or_404)Úlogin_required)ÚMax)ÚJsonResponseé   )ÚChatÚMessage)ÚUser)ÚGroupc                 C   sx   | j j ¡ jtdƒd� d¡}|D ]$}|jjddd�j| j d� 	¡ |_
q"tjj| j jd�}tj ¡ }t| d|||d	œƒS )
NZmessages__created_at)Zlast_message_timez-last_message_timeF©Úis_readÚ
is_deleted©Úsender©Úidzchat_list.html)ÚchatsÚusersÚgroups)Úuserr   ÚallÚannotater   Úorder_byÚmessagesÚfilterÚexcludeÚcountZunread_countr   Úobjectsr   r   r   )Úrequestr   Úchatr   r   © r"   úD:\diplom_project\chat\views.pyÚ	chat_list
   s    ÿþ"
ýr$   c                 C   s:  t t|| jd�}|jjddd�j| jd�jdd� | jdk�r| j 	d¡}|d	krx| j 	d
¡}|rvt
jj|| j|d� nŽ|dkrÆ| j 	d¡}| j 	d¡}|rÄ|rÄt t
|| jd�}||_d|_| ¡  n@|dk�r| j 	d¡}|�rt t
|| jd�}d|_d|_| ¡  td|d�S |jjdd�}t| d|||j ¡ dœƒS )N©r   ÚparticipantsFr   r   T)r   ÚPOSTÚactionÚsendÚmessage)r!   r   ÚtextÚeditÚ
message_idr+   )r   r   Údeleteu#   [Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¾]Úchat_detail©Úchat_id)r   zchat_detail.html)r!   r   r   )r   r	   r   r   r   r   ÚupdateÚmethodr'   Úgetr
   r   Úcreater+   Ú	is_editedÚsaver   r   r   r&   r   )r    r1   r!   r(   r+   r-   r*   r   r"   r"   r#   r/      s<    "

ýr/   c                 C   sh   t t|d�}tjjd| jd�j|d� ¡ }|r<td|jd�S tjj	dd�}|j
 | j|¡ td|jd�S )Nr   F)Úis_group_chatr&   )r&   r/   r0   )r8   )r   r   r	   r   r   r   Úfirstr   r   r5   r&   Úadd)r    Úuser_idZ
other_userZexisting_chatr!   r"   r"   r#   Úcreate_private_chatG   s    þý
r<   c                 C   s”   t t|d�}t|dƒr,|jr,td|jjd�S tjjdd|j	› �|d�}g }|j
r^| |j
j¡ |j ¡ D ]}| |j¡ qh|jj|Ž  td|jd�S )Nr   r!   r/   r0   Tu   Ð“Ñ€ÑƒÐ¿Ð¿Ð° )r8   ÚnameÚgroup)r   r   Úhasattrr!   r   r   r	   r   r5   r=   ÚcuratorÚappendr   Ústudentsr   r&   r:   )r    Úgroup_idr>   r!   r&   Ústudentr"   r"   r#   Úcreate_group_chatY   s    
ýrE   c                 C   s<   t t|| jd�}|j | j¡ |j ¡ dkr4| ¡  tdƒS )Nr%   r   r$   )r   r	   r   r&   Úremover   r.   r   )r    r1   r!   r"   r"   r#   Ú
leave_chatq   s
    rG   N)Údjango.shortcutsr   r   r   Údjango.contrib.auth.decoratorsr   Údjango.db.modelsr   Údjango.httpr   Úmodelsr	   r
   Zusers.modelsr   Zcore.modelsr   r$   r/   r<   rE   rG   r"   r"   r"   r#   Ú<module>   s    

)

