U
    mh                     @   s<   d dl mZ d dlmZ G dd deZG dd deZdS )    )models)TimeStampedModelc                	   @   s   e Zd ZdZdddddddd	d
g	ZejdejdddZej	dedZ
ej	dddZejdddZejddZejdddZejddZG dd dZdd ZdS )ActivityLogz1Model to track user activities and system events.)CREATEZCreate)UPDATEZUpdate)DELETEDelete)ZLOGINZLogin)ZLOGOUTZLogout)ZUPLOADZUpload)ZDOWNLOADZDownload)ZEXPORTZExport)ZIMPORTImportzaccounts.UserT)	on_deletenullblank   )
max_lengthchoicesd   )r   r   )r   r   r   c                   @   s   e Zd ZdZdgZdS )zActivityLog.MetaZactivity_logsz-created_atN__name__
__module____qualname__db_tableordering r   r   ,/var/www/html/Adtlas/src/apps/core/models.pyMeta   s   r   c                 C   s   | j  d| j d| j S )Nz - )useractionZ
created_atselfr   r   r   __str__   s    zActivityLog.__str__N)r   r   r   __doc__ZACTION_CHOICESr   
ForeignKeySET_NULLr   	CharFieldr   content_typePositiveIntegerField	object_id	TextFielddescriptionGenericIPAddressField
ip_addressZ
user_agentr   r   r   r   r   r   r      s(   r   c                   @   sp   e Zd ZdZejdddZe ZejddZ	ej
ddZG dd dZd	d
 ZedddZedddZdS )SystemConfigurationz2Model to store system-wide configuration settings.r   T)r   uniquer   )defaultc                   @   s   e Zd ZdZdgZdS )zSystemConfiguration.MetaZsystem_configurationskeyNr   r   r   r   r   r   *   s   r   c                 C   s   | j  d| jd d  S )Nz: 2   )r.   valuer   r   r   r   r   .   s    zSystemConfiguration.__str__Nc                 C   s8   z| j j|dd}|jW S  | jk
r2   | Y S X dS )zGet configuration value by key.T)r.   	is_activeN)objectsgetr0   DoesNotExist)clsr.   r-   configr   r   r   	get_value1   s
    zSystemConfiguration.get_value c                 C   s6   | j j|||dd\}}|s2||_||_|  |S )zSet configuration value by key.)r0   r(   )r.   defaults)r2   get_or_creater0   r(   save)r5   r.   r0   r(   r6   createdr   r   r   	set_value:   s    
zSystemConfiguration.set_value)N)r8   )r   r   r   r    r   r#   r.   r'   r0   r(   BooleanFieldr1   r   r   classmethodr7   r=   r   r   r   r   r+   #   s   r+   N)	django.dbr   Zapps.common.modelsr   r   r+   r   r   r   r   <module>   s   