o
    fsi	                     @   s   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 ddlmZmZ ddlmZmZmZ G d	d
 d
ejZG dd dejZdS )    )viewsetsstatus)action)Response)IsAuthenticatedIsAdminUser)timezone   )EventEventCategory)EventSerializerEventListSerializerEventCategorySerializerc                   @   s    e Zd Zej ZeZe	gZ
dS )EventCategoryViewSetN)__name__
__module____qualname__r   objectsallquerysetr   serializer_classr   permission_classes r   r   8/var/www/html/smartRegister/backend/apps/events/views.pyr   
   s    

r   c                   @   sb   e Zd ZegZdd Zdd Zdd Zeddge	gd	dddZ
eddge	gd	dddZd
S )EventViewSetc                 C   s   t jddd}| jjd}| jjd}| jjd}| jjd}| jjd}|d ur;|j| dkd	}|d urI|j| dkd
}|d urW|j| dkd}|r_|j|d}|rg|j|d}|S )Ncategoryparent_event
start_date	is_activeis_archivedis_registerablesearchtruer   )r   )r    )category__code)name__icontains)	r
   r   select_relatedorder_byrequestquery_paramsgetfilterlower)selfqsr   r   r    r   r!   r   r   r   get_queryset   s"   zEventViewSet.get_querysetc                 C   s   | j dkrtS tS )Nlist)r   r   r   r-   r   r   r   get_serializer_class'   s   
z!EventViewSet.get_serializer_classc                 C   s   | j dv r	t gS t gS )N)r0   retrieve)r   r   r   r1   r   r   r   get_permissions,   s   
zEventViewSet.get_permissionsTpost)detailmethodsr   Nc                 C   sF   ddl m} |  }|  |jj|djdd tdt|j	dS )Nr   )ScannerAssignment)eventFr#   archivedr   r9   )
apps.attendance.modelsr8   
get_objectarchiver   r+   updater   r   data)r-   r(   pkr8   r9   r   r   r   r>   1   s
   zEventViewSet.archivec                 C   s$   |   }|  tdt|jdS )N
unarchivedr;   )r=   	unarchiver   r   r@   )r-   r(   rA   r9   r   r   r   rC   9   s   zEventViewSet.unarchive)N)r   r   r   r   r   r/   r2   r4   r   r   r>   rC   r   r   r   r   r      s    r   N)rest_frameworkr   r   rest_framework.decoratorsr   rest_framework.responser   rest_framework.permissionsr   r   django.utilsr   modelsr
   r   serializersr   r   r   ModelViewSetr   r   r   r   r   r   <module>   s    