o
    x;f                     @   s  d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ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 d dlmZ d d	lmZ d d
lmZ d dl mZ G dd dej Z!e!ddZ"dd Z#de#_$G dd dej%Z&G dd dej%Z'G dd dej%Z(G dd dej)Z*G dd dej)Z+G dd dej)Z,G dd  d ej%Z-G d!d" d"ej)Z.ej/0ee* ej/0e ej/0e ej/0e ej/0e ej/0ee, ej/0e	 ej/0e
 ej/0ee+ ej/0e ej/0e ej/0e ej/0ee. d#S )$    )admin   )ArticleArticleCategoriesCareer
DepartmentJobProjectProjectImagesJobTypeLegalCategoryCompanyLegalIdentityStatusIdentityRegisterIdentityRegisterChangeLog)CKEditorUploadingWidget)forms)IntegrityError)slugify)format_html)gettext_lazy)ValidationError)messagesc                   @   s   e Zd ZdZdS )MyAdminSitezMy AdministrationN)__name__
__module____qualname__site_header r   r   "/var/www/html/kck/kck2021/admin.pyr          r   z	KCK Group)namec                 C   sx   |D ]7}d |_ d}|j}| d| d}tjj|d r2|d7 }| d| d}tjj|d s||_|  qd S )Nr   z (Copy ))title)idr$   r   objectsfilterexistssave)
modeladminrequestquerysetoriginal_objectcounteroriginal_title	new_titler   r   r    duplicate_model   s   
r1   zDuplicate selected itemsc                   @      e Zd ZG dd dZdS )ArticleAdminFormc                   @      e Zd ZeZdZde iZdS )zArticleAdminForm.Meta__all__bodyN)r   r   r   r   modelfieldsr   widgetsr   r   r   r    Meta%   
    r:   Nr   r   r   r:   r   r   r   r    r3   $       r3   c                   @   r2   )LegalAdminFormc                   @   r4   )zLegalAdminForm.Metar5   r6   N)r   r   r   r   r7   r8   r   r9   r   r   r   r    r:   -   r;   r:   Nr<   r   r   r   r    r>   ,   r=   r>   c                   @   r2   )ProjectAdminFormc                   @   r4   )zProjectAdminForm.Metar5   r6   N)r   r   r   r	   r7   r8   r   r9   r   r   r   r    r:   5   r;   r:   Nr<   r   r   r   r    r?   4   r=   r?   c                       s0   e Zd ZeZdZdZdZdZ fddZ	  Z
S )ArticleAdmin)r%   authorr$   
date_added)r$   slugr6   
categories)rC   rA   Tc                    s,   |j s|js|jj|_t |||| d S )N)pkrA   userusernamesuper
save_model)selfr+   objformchange	__class__r   r    rI   C   s   
zArticleAdmin.save_model)r   r   r   r3   rL   list_displaysearch_fieldsreadonly_fieldsview_on_siterI   __classcell__r   r   rN   r    r@   <   s    r@   c                   @   s4   e Zd ZeZdZdZdZegZ	dZ
dd Zde_dS )	
LegalAdmin)r%   r$   categorycompanycreatedview_on_site_link)r$   rC   r6   rV   rW   )rC   Tc                 C   s   t d| S )Nz<a href="{}">View</a>)r   get_absolute_urlrJ   rK   r   r   r    rY   R   s   zLegalAdmin.view_on_site_linkzView on SiteN)r   r   r   r>   rL   rP   rQ   rR   r1   actionsrS   rY   short_descriptionr   r   r   r    rU   I   s    
rU   c                   @   s   e Zd ZeZdS )ProjectAdminN)r   r   r   r?   rL   r   r   r   r    r^   V   r!   r^   c                       s*   e Zd ZG dd dZ fddZ  ZS )IdentityRegisterFormc                   @   s   e Zd ZeZdZdS )zIdentityRegisterForm.Metar5   N)r   r   r   r   r7   r8   r   r   r   r    r:   [   s    r:   c                    sJ   t   }|d}|d}|r#|jdd s#td}| d| |S )NstatusesverifiedzPengesahan selesaistatuszF'Pengesahan selesai' must be included in statuses if verified is True.)rH   cleangetr'   r(   r   	add_error)rJ   cleaned_datar`   ra   error_messagerN   r   r    rd   _   s   


zIdentityRegisterForm.clean)r   r   r   r:   rd   rT   r   r   rN   r    r_   Z   s    r_   c                   @   s@   e Zd ZeZdZdZdZdd Zde_	dd Z
d	e
_	d
d ZdS )IdentityRegisterAdmin)reference_coder"   phonerX   get_statusesra   
changed_by)rj   rk   r"   ra   )rk   frontbackselfier"   r`   ra   c                 C   s   d dd |j D S )Nz, c                 S   s   g | ]}|j qS r   rb   ).0rc   r   r   r    
<listcomp>s   s    z6IdentityRegisterAdmin.get_statuses.<locals>.<listcomp>)joinr`   allr[   r   r   r    rl   r   s   z"IdentityRegisterAdmin.get_statusesStatusesc                 C   s(   t jj|dd }|r|jjS dS )N)identity_registerz
-timestampUnknown)r   r&   r'   order_byfirstrF   rG   )rJ   rK   latest_changer   r   r    rm   v   s   z IdentityRegisterAdmin.changed_byz
Changed Byc                 C   sx   |   |r!tjj||jd d|jj }tj| ||| d S tjj||jd d|jj }tj	| ||| d S )N)rv   rF   zChanged by z	Added by )
r)   r   r&   createrF   rG   r   
ModelAdmin
log_changelog_addition)rJ   r+   rK   rL   rM   change_messager   r   r    rI   |   s   z IdentityRegisterAdmin.save_modelN)r   r   r   r_   rL   rP   rQ   r8   rl   r]   rm   rI   r   r   r   r    ri   j   s    ri   N)1django.contribr   modelsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   ckeditor_uploader.widgetsr   djangor   	django.dbr   django.utils.textr   django.utils.htmlr   django.utils.translationr   django.core.exceptionsr   r   	AdminSiter   
admin_siter1   r]   	ModelFormr3   r>   r?   r|   r@   rU   r^   r_   ri   siteregisterr   r   r   r    <module>   sF    @
!