3
(7f(                 @   s  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 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Zd dlmZ d dlm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#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(d'd( Z)d)d* Z*d+d, Z+d-d. Z,G d/d0 d0ejZ-G d1d2 d2ejZ.G d3d4 d4ejZ/dS )5    )models)now)datetimedate)User)MinValueValidatorMaxValueValidator)timezone)RichTextField)slugify)RichTextUploadingField)reverse)CKEditorUploadingWidgetN)ValidationError)gettext_lazyc               @   s.   e Zd ZejddZG dd dZdd ZdS )ArticleCategories<   )
max_lengthc               @   s   e Zd ZdgZdZdS )zArticleCategories.MetacategoryzArticles - CategoriesN)__name__
__module____qualname__orderingverbose_name_plural r   r   #/var/www/html/kck/kck2021/models.pyMeta   s   r   c             C   s   | j S )N)r   )selfr   r   r   __str__   s    zArticleCategories.__str__N)r   r   r   r   	CharFieldr   r   r   r   r   r   r   r      s   r   c                   s   e Zd ZejddZejdddZejddZ	ejdddZ
ej Ze Zejejd	Zejd
dZejeddZG dd dZdd Z fddZdd Z  ZS )Article   )r   T)r   db_indexzstatic/img/blog/)	upload_toZKCK)r   default)r$   F)editableZarticleCategories)related_namec               @   s   e Zd ZdgZdZdS )zArticle.Metaz-date_addedZArticlesN)r   r   r   r   r   r   r   r   r   r   )   s   r   c             C   s   | j  d| j d| j dS )Nz |  )idtitle
date_added)r   r   r   r   r   .   s    zArticle.__str__c                s<   | j st| j| _tj | _tj | _tt	| j
|| d S )N)r(   r   r)   slugr	   r   r*   updated_datesuperr    save)r   argskwargs)	__class__r   r   r.   4   s
    

zArticle.savec             C   s   t dd| jidS )Nzkck:readblogZ	slug_name)r0   )r   r+   )r   r   r   r   get_absolute_url;   s    zArticle.get_absolute_url)r   r   r   r   r   r)   	SlugFieldr+   
ImageField	thumbnailZauthor	TextFieldZintror   bodyDateTimeFieldr   r   r*   r,   ManyToManyFieldr   
categoriesr   r   r.   r2   __classcell__r   r   )r1   r   r       s   r    c               @   s.   e Zd ZejddZG dd dZdd ZdS )
Department2   )r   c               @   s   e Zd ZdgZdZdS )zDepartment.MetaagencyzCareers - DepartmentsN)r   r   r   r   r   r   r   r   r   r   @   s   r   c             C   s   | j S )N)r>   )r   r   r   r   r   E   s    zDepartment.__str__N)r   r   r   r   r   r>   r   r   r   r   r   r   r<   =   s   r<   c               @   s.   e Zd ZejddZdd ZG dd dZdS )JobTyper=   )r   c             C   s   | j S )N)name)r   r   r   r   r   K   s    zJobType.__str__c               @   s   e Zd ZdZdS )zJobType.MetazCareers - Job TypeN)r   r   r   r   r   r   r   r   r   N   s   r   N)r   r   r   r   r   r@   r   r   r   r   r   r   r?   H   s   r?   c                   s   e Zd ZejedddZejddZej	e
ejddZejddZejdd	Zejejdd
ZG dd dZdd Z fddZ  ZS )CareerTZcareers)blankr&      )r   Z
agencyName)	on_deleter&   #)r$   )r$   rB   c               @   s   e Zd ZdgZdZdS )zCareer.MetajobNameZCareersN)r   r   r   r   r   r   r   r   r   r   Y   s   r   c             C   s   | j  d| j d| j S )Nz | )r(   rF   	timeAdded)r   r   r   r   r   ^   s    zCareer.__str__c                s&   | j stj | _tt| j|| d S )N)r(   r	   r   rG   r-   rA   r.   )r   r/   r0   )r1   r   r   r.   a   s    
zCareer.save)r   r   r   r   r9   r?   ZjobTypesr   rF   
ForeignKeyr<   CASCADEZ
departmentZjobLocationURLFieldlink	DateFieldr   r   rG   r   r   r.   r;   r   r   )r1   r   rA   Q   s   rA   c               @   s.   e Zd ZejddZG dd dZdd ZdS )Jobr!   )r   c               @   s   e Zd ZdgZdZdS )zJob.MetaspecializationzProjects - JobsN)r   r   r   r   r   r   r   r   r   r   i   s   r   c             C   s   | j S )N)rN   )r   r   r   r   r   m   s    zJob.__str__N)r   r   r   r   r   rN   r   r   r   r   r   r   rM   f   s   rM   c               @   s   e Zd ZejddZejdddZej Z	e
 ZejdddZejddZejedd	d
ZejddZG dd dZdd ZdS )Projectzmedia/)r#   r   F)r   rB      d   )r   Zjob_spec)rB   r&   T)auto_now_addc               @   s   e Zd ZdgZdZdS )zProject.MetadateTimeZProjectsN)r   r   r   r   r   r   r   r   r   r   z   s   r   c             C   s   | j S )N)r)   )r   r   r   r   r   ~   s    zProject.__str__N)r   r   r   r   r4   r5   r   r)   r3   r+   r   r7   Zmissionlocationr9   rM   ZjobTyper8   rS   r   r   r   r   r   r   rO   p   s   rO   c               @   s\   e Zd ZejeejddZejdddZ	ej
dddZejdd	Zd
d ZG dd dZdS )ProjectImagesimage)rD   r&   zproject/T)r#   rB   rQ   F)r   rB   )auto_nowc             C   s   | j  d| jj S )Nz | )r(   projectr)   )r   r   r   r   r      s    zProjectImages.__str__c               @   s   e Zd ZdZdS )zProjectImages.MetazProjects - ImagesN)r   r   r   r   r   r   r   r   r      s   r   N)r   r   r   r   rH   rO   rI   rX   r4   rV   r   descriptionr8   Z
created_atr   r   r   r   r   r   rU      s   rU   c               @   s.   e Zd ZejddZG dd dZdd ZdS )LegalCategory@   )r   c               @   s   e Zd ZdgZdZdS )zLegalCategory.Metar   zLegal - CategoriesN)r   r   r   r   r   r   r   r   r   r      s   r   c             C   s   | j S )N)r   )r   r   r   r   r      s    zLegalCategory.__str__N)r   r   r   r   r   r   r   r   r   r   r   r   rZ      s   rZ   c               @   s.   e Zd ZejddZG dd dZdd ZdS )Companyr!   )r   c               @   s   e Zd ZdgZdZdS )zCompany.Metar@   zLegal - CompaniesN)r   r   r   r   r   r   r   r   r   r      s   r   c             C   s   | j S )N)r@   )r   r   r   r   r      s    zCompany.__str__N)r   r   r   r   r   r@   r   r   r   r   r   r   r\      s   r\   c                   s   e Zd ZejdddZejddZe Z	ej
ddZej
ddZejeejdd	Zejeejd
dddZdd ZG dd dZ fddZdd Z  ZS )Legalr   F)r   rB   T)unique)rR   )rW   Zlegal_category)rD   r&   Z	companies)rD   r&   rB   nullc             C   s   | j S )N)r)   )r   r   r   r   r      s    zLegal.__str__c               @   s   e Zd ZdZdS )z
Legal.MetazLegal - TermsN)r   r   r   r   r   r   r   r   r      s   r   c                s\   | j r0tjj| j d}|j| jkr<t| j| _nt| j| _tj | _	t
t| j|| d S )N)pk)r`   r]   objectsgetr)   r   r+   r	   r   updatedr-   r.   )r   r/   r0   Z	old_legal)r1   r   r   r.      s    
z
Legal.savec             C   s8   | j r"td| j jj | jddS tdd| jidS d S )Nzkck:legal_with_company)Zcompany_namer+   )r0   zkck:legal_without_companyr+   )companyr   r@   lowerr+   )r   r   r   r   r2      s    zLegal.get_absolute_url)r   r   r   r   r   r)   r3   r+   r   r7   r8   createdrc   rH   rZ   rI   r   r\   rd   r   r   r.   r2   r;   r   r   )r1   r   r]      s&   r]   c               @   s.   e Zd ZejddZG dd dZdd ZdS )IdentityStatusr!   )r   c               @   s   e Zd ZdgZdZdS )zIdentityStatus.MetastatuszIdentity - StatusN)r   r   r   r   r   r   r   r   r   r      s   r   c             C   s   | j S )N)rh   )r   r   r   r   r      s    zIdentityStatus.__str__N)r   r   r   r   r   rh   r   r   r   r   r   r   rg      s   rg   c             C   sF   | j }tj jd}|jdd }| d| }d| d| d| S )Nz%Y%m%d%H%M%S.   z	identity//)phoner   r   strftimesplit)instancefilenameZfolder_namerm   r   extZnew_filenamer   r   r   unique_upload_path   s
    rs   c             C   s   t | |dS )Nfront)rs   )rp   rq   r   r   r   front_image_upload_path   s    ru   c             C   s   t | |dS )Nback)rs   )rp   rq   r   r   r   back_image_upload_path   s    rw   c             C   s   t | |dS )Nselfie)rs   )rp   rq   r   r   r   selfie_image_upload_path   s    ry   c                   s   e Zd ZejddddZejdddZejeddZ	eje
ddZejeddZejddZejddZejeZejdd	Zejdd
ZG dd dZdd Zdd Z fddZdd Z  ZS )IdentityRegister   TF)r   r^   r%   )r   rB   )r#   rB   )rB   )r$   )rR   )rW   c               @   s   e Zd ZdgZdZdS )zIdentityRegister.Metareference_codeZIdentityN)r   r   r   r   r   r   r   r   r   r     s   r   c             C   s   | j S )N)r|   )r   r   r   r   r     s    zIdentityRegister.__str__c             C   s"   | j r| j rtdtdid S )Nr@   z3Nama wajib di-isi untuk memenuhi proses verifikasi.)verifiedr@   r   r   )r   r   r   r   clean  s    zIdentityRegister.cleanc       	         s   | j sVtjjdj }|r |jnd}|d }| jd
d  }dt|jd d| | _	| j
  tt| j|| | jj stjjdd	\}}| jj| d S )Nz-idr   rj      ZSEMIX   -zBelum disemak)rh   )r`   rz   ra   order_byfirstr(   rm   strzfillr|   r~   r-   r.   statusesexistsrg   get_or_createadd)	r   r/   r0   Zlast_instanceZlast_idZ
primary_idZlast_three_digitsZdefault_status_)r1   r   r   r.     s    
zIdentityRegister.savec             C   s   t dd| jidS )Nzkck:identity_register_statusr|   )r0   )r   r|   )r   r   r   r   r2   %  s    z!IdentityRegister.get_absolute_url)r   r   r   r   r   r|   rm   r4   ru   rt   rw   rv   ry   rx   r6   r@   BooleanFieldr}   r9   rg   r   r8   rf   rc   r   r   r~   r.   r2   r;   r   r   )r1   r   rz      s   
rz   c               @   sF   e Zd ZejeejdZejeejdZ	ej
ddZG dd dZdS )IdentityRegisterChangeLog)rD   T)rR   c               @   s   e Zd ZdgZdS )zIdentityRegisterChangeLog.Metaz
-timestampN)r   r   r   r   r   r   r   r   r   -  s   r   N)r   r   r   r   rH   rz   rI   identity_registerr   userr8   	timestampr   r   r   r   r   r   (  s   r   c               @   s>   e Zd ZejeejdZejdddZ	ej
 Zedd ZdS )ReuploadToken)rD   r[   T)r   r^   c             C   s   t j | jk S )N)r	   r   
expires_at)r   r   r   r   is_valid6  s    zReuploadToken.is_validN)r   r   r   r   rH   rz   rI   r   r   tokenr8   r   propertyr   r   r   r   r   r   1  s   r   )0	django.dbr   Zdjango.utils.timezoner   r   r   django.contrib.auth.modelsr   Zdjango.core.validatorsr   r   django.utilsr	   Zckeditor.fieldsr
   django.utils.textr   Zckeditor_uploader.fieldsr   django.urlsr   Zckeditor_uploader.widgetsr   uuiddjango.core.exceptionsr   django.utils.translationr   Modelr   r    r<   r?   rA   rM   rO   rU   rZ   r\   r]   rg   rs   ru   rw   ry   rz   r   r   r   r   r   r   <module>   s@    	


12	