3
7f                 @   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/j0ee* ej/j0e ej/j0e ej/j0e ej/j0e ej/j0ee, ej/j0e	 ej/j0e
 ej/j0ee+ ej/j0e ej/j0e ej/j0e ej/j0e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      s   r   z	KCK Group)namec             C   sp   xj|D ]b}d |_ d}|j}| d| d}x.tjj|dj rX|d7 }| d| d}q,W ||_|j  qW d S )Nr   z (Copy ))title)idr#   r   objectsfilterexistssave)
modeladminrequestquerysetZoriginal_objectcounterZoriginal_titleZ	new_titler   r   r    duplicate_model   s    
r-   zDuplicate selected itemsc               @   s   e Zd ZG dd dZdS )ArticleAdminFormc               @   s   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%   s   r4   N)r   r   r   r4   r   r   r   r    r.   $   s   r.   c               @   s   e Zd ZG dd dZdS )LegalAdminFormc               @   s   e Zd ZeZdZde iZdS )zLegalAdminForm.Metar/   r0   N)r   r   r   r   r1   r2   r   r3   r   r   r   r    r4   -   s   r4   N)r   r   r   r4   r   r   r   r    r5   ,   s   r5   c               @   s   e Zd ZG dd dZdS )ProjectAdminFormc               @   s   e Zd ZeZdZde iZdS )zProjectAdminForm.Metar/   r0   N)r   r   r   r	   r1   r2   r   r3   r   r   r   r    r4   5   s   r4   N)r   r   r   r4   r   r   r   r    r6   4   s   r6   c                   s0   e Zd ZeZdZdZdZdZ fd	d
Z	  Z
S )ArticleAdminr$   authorr#   
date_addedslugr0   
categoriesTc                s0   |j  r|j r|jj|_t j|||| d S )N)pkr8   userusernamesuper
save_model)selfr*   objformchange)	__class__r   r    r@   C   s    
zArticleAdmin.save_model)r$   r8   r#   r9   )r#   r:   r0   r;   )r:   r8   )r   r   r   r.   rC   list_displaysearch_fieldsreadonly_fieldsview_on_siter@   __classcell__r   r   )rE   r    r7   <   s   r7   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 )
LegalAdminr$   r#   categorycompanycreatedview_on_site_linkr:   r0   Tc             C   s   t d|j S )Nz<a href="{}">View</a>)r   get_absolute_url)rA   rB   r   r   r    rO   R   s    zLegalAdmin.view_on_site_linkzView on SiteN)r$   r#   rL   rM   rN   rO   )r#   r:   r0   rL   rM   )r:   )r   r   r   r5   rC   rF   rG   rH   r-   actionsrI   rO   short_descriptionr   r   r   r    rK   I   s   rK   c               @   s   e Zd ZeZdS )ProjectAdminN)r   r   r   r6   rC   r   r   r   r    rS   V   s   rS   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.Metar/   N)r   r   r   r   r1   r2   r   r   r   r    r4   [   s   r4   c                sL   t  j }|jd}|jd}|rH|jddj  rHtd}| jd| |S )NstatusesverifiedzPengesahan selesai)statuszF'Pengesahan selesai' must be included in statuses if verified is True.)r?   cleangetr&   r'   r   	add_error)rA   cleaned_datarU   rV   error_message)rE   r   r    rX   _   s    


zIdentityRegisterForm.clean)r   r   r   r4   rX   rJ   r   r   )rE   r    rT   Z   s   rT   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!   phonerN   get_statusesrV   
changed_byfrontbackselfierU   c             C   s   dj dd |jj D S )Nz, c             S   s   g | ]
}|j qS r   )rW   ).0rW   r   r   r    
<listcomp>s   s    z6IdentityRegisterAdmin.get_statuses.<locals>.<listcomp>)joinrU   all)rA   rB   r   r   r    r`   r   s    z"IdentityRegisterAdmin.get_statusesZStatusesc             C   s(   t jj|djdj }|r$|jjS dS )N)identity_registerz
-timestampUnknown)r   r%   r&   order_byfirstr=   r>   )rA   rB   Zlatest_changer   r   r    ra   v   s    z IdentityRegisterAdmin.changed_byz
Changed Byc             C   sv   |j   |r@tjj||jd d|jj }tjj| ||| n2tjj||jd d|jj }tjj	| ||| d S )N)ri   r=   zChanged by z	Added by )
r(   r   r%   creater=   r>   r   
ModelAdmin
log_changelog_addition)rA   r*   rB   rC   rD   change_messager   r   r    r@   |   s    z IdentityRegisterAdmin.save_modelN)r^   r!   r_   rN   r`   rV   ra   )r^   r_   r!   rV   )r_   rb   rc   rd   r!   rU   rV   )r   r   r   rT   rC   rF   rG   r2   r`   rR   ra   r@   r   r   r   r    r]   j   s   r]   N)1Zdjango.contribr   modelsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Zckeditor_uploader.widgetsr   djangor   	django.dbr   django.utils.textr   django.utils.htmlr   django.utils.translationr   django.core.exceptionsr   r   	AdminSiter   
admin_siter-   rR   	ModelFormr.   r5   r6   rn   r7   rK   rS   rT   r]   siteregisterr   r   r   r    <module>   sD   @
!