
    e(                        d dl 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 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ej                  Z G d dej                  Z  G d dej                  Z! G d dej                  Z" G d dej                  Z# G d dej                  Z$ G d dej                  Z% G d dej                  Z& G d  d!ej                  Z' G d" d#ej                  Z( G d$ d%ej                  Z) G d& d'ej                  Z*	 d( Z+d) Z,d* Z-d+ Z. G d, d-ej                  Z/ G d. d/ej                  Z0 G d0 d1ej                  Z1dS )2    )CASCADE)models)now)datetimedate)User)MinValueValidatorMaxValueValidator)timezone)RichTextField)slugify)RichTextUploadingField)reverse)CKEditorUploadingWidgetN)ValidationError)gettext_lazyc                   P    e Zd Z ej        d          Z G d d          Zd ZdS )ArticleCategories<   
max_lengthc                       e Zd ZdgZdZdS )ArticleCategories.MetacategoryzArticles - CategoriesN__name__
__module____qualname__orderingverbose_name_plural     .C:\Users\weeiw\Documents\kok\kck2021\models.pyMetar      s        <5r"   r$   c                     | j         S Nr   selfs    r#   __str__zArticleCategories.__str__   
    }r"   Nr   r   r   r   	CharFieldr   r$   r*   r!   r"   r#   r   r      s`        v2...H6 6 6 6 6 6 6 6
    r"   r   c                   n    e Zd Z ej        d          Z ej                    Z ej        d          Z	 ej        dd          Z
 ej                    Z e            Z ej        ej                  Z ej        d	          Z ej        ed
          Z G d d          Zd Z fdZd Z xZS )Article   r   zstatic/img/blog/	upload_toKCK)r   defaultr4   F)editablearticleCategories)related_namec                       e Zd ZdgZdZdS )Article.Metaz-date_addedArticlesNr   r!   r"   r#   r$   r:   *   s        !?(r"   r$   c                 6    | j          d| j         d| j         dS )N |  )idtitle
date_addedr(   s    r#   r*   zArticle.__str__/   s'    '??dj??T_????r"   c                     | j         s1t          | j                  | _        t	          j                    | _        t	          j                    | _         t          t          |           j
        |i | d S r&   )r?   r   r@   slugr   r   rA   updated_datesuperr/   saver)   argskwargs	__class__s      r#   rF   zArticle.save5   sa    7 1#DJ//	"*,.. (D%E'4  %t6v66666r"   c                 2    t          dd| j        i          S )Nzkck:readblog	slug_namerI   )r   rC   r(   s    r#   get_absolute_urlzArticle.get_absolute_url<   s    ~{DI.FGGGGr"   )r   r   r   r   r-   r@   	SlugFieldrC   
ImageField	thumbnailauthor	TextFieldintror   bodyDateTimeFieldr   r   rA   rD   ManyToManyFieldr   
categoriesr$   r*   rF   rN   __classcell__rJ   s   @r#   r/   r/      s=       F,,,E6D!!,>???IVe<<<FFE!!##D%%hl;;;J'6'777L''(9GZ[[[J) ) ) ) ) ) ) )
@ @ @7 7 7 7 7H H H H H H Hr"   r/   c                   P    e Zd Z ej        d          Z G d d          Zd ZdS )
Department2   r   c                       e Zd ZdgZdZdS )Department.MetaagencyzCareers - DepartmentsNr   r!   r"   r#   r$   r_   A   s        :5r"   r$   c                     | j         S r&   )r`   r(   s    r#   r*   zDepartment.__str__F   
    {r"   N)r   r   r   r   r-   r`   r$   r*   r!   r"   r#   r\   r\   >   s`        V,,,F6 6 6 6 6 6 6 6
    r"   r\   c                   P    e Zd Z ej        d          Zd Z G d d          ZdS )JobTyper]   r   c                     | j         S r&   namer(   s    r#   r*   zJobType.__str__L   
    yr"   c                       e Zd ZdZdS )JobType.MetazCareers - Job TypeNr   r   r   r    r!   r"   r#   r$   rj   O   s        2r"   r$   N)r   r   r   r   r-   rg   r*   r$   r!   r"   r#   rd   rd   I   s`        6r***D  3 3 3 3 3 3 3 3 3 3r"   rd   c                   (    e Zd Z ej        edd          Z ej        d          Z ej	        e
ej        d          Z ej        d          Z ej        d	          Z ej        ej        d
          Z G d d          Zd Z fdZ xZS )CareerTcareersblankr8      r   
agencyName	on_deleter8   #r5   )r4   rp   c                       e Zd ZdgZdZdS )Career.MetajobNameCareersNr   r!   r"   r#   r$   rw   Z   s        ;'r"   r$   c                 4    | j          d| j         d| j         S Nr=   )r?   rx   	timeAddedr(   s    r#   r*   zCareer.__str___   s$    '??dl??t~???r"   c                     | j         st          j                    | _         t	          t
          |           j        |i | d S r&   )r?   r   r   r|   rE   rm   rF   rG   s      r#   rF   zCareer.saveb   sB    w 	,%\^^DN fd $1&11111r"   )r   r   r   r   rW   rd   jobTypesr-   rx   
ForeignKeyr\   r   
departmentjobLocationURLFieldlink	DateFieldr   r   r|   r$   r*   rF   rY   rZ   s   @r#   rm   rm   R   s        %v%gT	RRRHf"---G"":VbcccJ"&"b111K6?3'''D  DAAAI( ( ( ( ( ( ( (
@ @ @2 2 2 2 2 2 2 2 2r"   rm   c                   P    e Zd Z ej        d          Z G d d          Zd ZdS )Jobr0   r   c                       e Zd ZdgZdZdS )Job.MetaspecializationzProjects - JobsNr   r!   r"   r#   r$   r   j   s        $%/r"   r$   c                     | j         S r&   )r   r(   s    r#   r*   zJob.__str__n       ""r"   N)r   r   r   r   r-   r   r$   r*   r!   r"   r#   r   r   g   s`        %V%555N0 0 0 0 0 0 0 0# # # # #r"   r   c                   4   e Zd Z ej        d          Z ej        dd          Z ej                    Z	 e
            Z ej        dd          Z ej        d          Z ej        edd	
          Z ej        d          Z G d d          Zd ZdS )Projectzmedia/r1   r   Fr   rp      d   r   job_specro   Tauto_now_addc                       e Zd ZdgZdZdS )Project.MetadateTimeProjectsNr   r!   r"   r#   r$   r   {   s        <(r"   r$   c                     | j         S r&   r@   r(   s    r#   r*   zProject.__str__   
    zr"   N)r   r   r   r   rP   rQ   r-   r@   rO   rC   r   rU   missionlocationrW   r   jobTyperV   r   r$   r*   r!   r"   r#   r   r   q   s        !!H555IF%888E6D!!##Df#U;;;Gv3///H$f$SJOOOG#v#666H) ) ) ) ) ) ) )    r"   r   c                       e Zd Z ej        eej        d          Z ej        dd          Z	 ej
        dd          Z ej        d	          Zd
 Z G d d          ZdS )ProjectImagesimagers   zproject/Tr2   rp   r   Fr   auto_nowc                 .    | j          d| j        j         S r{   )r?   projectr@   r(   s    r#   r*   zProjectImages.__str__   s    '22dl0222r"   c                       e Zd ZdZdS )ProjectImages.MetazProjects - ImagesNrk   r!   r"   r#   r$   r      s        1r"   r$   N)r   r   r   r   r   r   r   r   rP   r   r-   descriptionrV   
created_atr*   r$   r!   r"   r#   r   r      s        f6>PWXXXGF
$???E"&"c???K%%t444J3 3 32 2 2 2 2 2 2 2 2 2r"   r   c                   P    e Zd Z ej        d          Z G d d          Zd ZdS )LegalCategory@   r   c                       e Zd ZdgZdZdS )LegalCategory.Metar   zLegal - CategoriesNr   r!   r"   r#   r$   r      s        <2r"   r$   c                     | j         S r&   r'   r(   s    r#   r*   zLegalCategory.__str__   r+   r"   Nr,   r!   r"   r#   r   r      s`        v2...H3 3 3 3 3 3 3 3
    r"   r   c                   P    e Zd Z ej        d          Z G d d          Zd ZdS )Companyr0   r   c                       e Zd ZdgZdZdS )Company.Metarg   zLegal - CompaniesNr   r!   r"   r#   r$   r      s        81r"   r$   c                     | j         S r&   rf   r(   s    r#   r*   zCompany.__str__   rh   r"   N)r   r   r   r   r-   rg   r$   r*   r!   r"   r#   r   r      s`        6s+++D2 2 2 2 2 2 2 2
    r"   r   c                   F    e Zd Z ej        dd          Z ej        d          Z e            Z	 ej
        d          Z ej
        d          Z ej        eej        d	          Z ej        eej        d
dd          Zd Z G d d          Z fdZd Z xZS )Legalr   Fr   T)uniquer   r   legal_categoryrs   	companies)rt   r8   rp   nullc                     | j         S r&   r   r(   s    r#   r*   zLegal.__str__   r   r"   c                       e Zd ZdZdS )
Legal.MetazLegal - TermsNrk   r!   r"   r#   r$   r      s        -r"   r$   c                 V   | j         rOt          j                            | j                   }|j        | j        k    rt          | j                  | _        nt          | j                  | _        t          j                    | _	         t          t          |           j        |i | d S )N)pk)r   r   objectsgetr@   r   rC   r   r   updatedrE   rF   )r)   rH   rI   	old_legalrJ   s       r#   rF   z
Legal.save   s    7 	,))TW)55I$*,,#DJ//	  
++DI  |~~eT000000r"   c                     | j         r5t          d| j         j                                        | j        d          S t          dd| j        i          S )Nzkck:legal_with_company)company_namerC   rM   zkck:legal_without_companyrC   )companyr   rg   lowerrC   r(   s    r#   rN   zLegal.get_absolute_url   sY    < 	T3T\M^MdMdMfMfptpy<z<z{{{{6	?RSSSSr"   )r   r   r   r   r-   r@   rO   rC   r   rU   rV   createdr   r   r   r   r   r   r   r*   r$   rF   rN   rY   rZ   s   @r#   r   r      s9       F%888E64(((D!!##D"f"555G"f"D111G v .%  H  f.   G  . . . . . . . .1 1 1 1 1T T T T T T Tr"   r   c                   P    e Zd Z ej        d          Z G d d          Zd ZdS )IdentityStatusr0   r   c                       e Zd ZdgZdZdS )IdentityStatus.MetastatuszIdentity - StatusNr   r!   r"   r#   r$   r      s        :1r"   r$   c                     | j         S r&   r   r(   s    r#   r*   zIdentityStatus.__str__   rb   r"   N)r   r   r   r   r-   r   r$   r*   r!   r"   r#   r   r      s`        V---F2 2 2 2 2 2 2 2
    r"   r   c                     | j         }t          j                                        d          }|                    d          d         }| d| }d| d| d| S )Nz%Y%m%d%H%M%S.z	identity//)phoner   r   strftimesplit)instancefilenamefolder_namer   r   extnew_filenames          r#   unique_upload_pathr      se    NE
,..
!
!.
1
1C
..

b
!C>>C>>L;u;;{;;\;;;r"   c                 $    t          | |d          S )Nfrontr   r   r   s     r#   front_image_upload_pathr      s    h':::r"   c                 $    t          | |d          S )Nbackr   r   s     r#   back_image_upload_pathr      s    h&999r"   c                 $    t          | |d          S )Nselfier   r   s     r#   selfie_image_upload_pathr      s    h(;;;r"   c                       e Zd Z ej        ddd          Z ej        dd          Z ej        ed          Z	 ej        e
d          Z ej        ed          Z ej        d          Z ej        d          Z ej        e          Z ej        d	          Z ej        d
          Z G d d          Zd Zd Z fdZd Z xZS )IdentityRegister   TF)r   r   r6   r   r   )rp   r5   r   r   c                       e Zd ZdgZdZdS )IdentityRegister.Metareference_codeIdentityNr   r!   r"   r#   r$   r     s        $%(r"   r$   c                     | j         S r&   )r   r(   s    r#   r*   zIdentityRegister.__str__	  r   r"   c                 b    | j         r%| j        s t          dt          d          i          d S d S )Nrg   z3Nama wajib di-isi untuk memenuhi proses verifikasi.)verifiedrg   r   r   r(   s    r#   cleanzIdentityRegister.clean  sK    = 	q 	q!6<8m+n+n"oppp	q 	q 	q 	qr"   c                 (   | j         s}t          j                            d                                          }|r|j        nd}|dz   }| j        dd          }dt          |                              d           d| | _	        | 
                                  t          t          |           j        |i | | j                                        s?t          j                            d	          \  }}| j                            |           d S d S )
Nz-idr      SEMIX   -zBelum disemakr   )r   r   r   order_byfirstr?   r   strzfillr   r   rE   rF   statusesexistsr   get_or_createadd)
r)   rH   rI   last_instancelast_id
primary_idlast_three_digitsdefault_status_rJ   s
            r#   rF   zIdentityRegister.save  s   w 	Y,4==eDDJJLLM*7>m&&QG 1J $
233"X#j//*?*?*B*B"X"XEV"X"XD 	

*%%*D;F;;; }##%% 	. . 6 D DO D \ \NAMn-----	. 	.r"   c                 2    t          dd| j        i          S )Nzkck:identity_register_statusr   rM   )r   r   r(   s    r#   rN   z!IdentityRegister.get_absolute_url&  s     5?OQUQd>effffr"   )r   r   r   r   r-   r   r   rP   r   r   r   r   r   r   rS   rg   BooleanFieldr   rW   r   r   rV   r   r   r$   r*   r   rF   rN   rY   rZ   s   @r#   r   r      su       %V%D5QQQNF%888EF(?uMMME6'=UKKKDV)AOOOF6$'''D"v"5111H%v%n55H"f"555G"f"D111G) ) ) ) ) ) ) )# # #q q q. . . . .(g g g g g g gr"   r   c                       e Zd Z ej        eej                  Z ej        eej                  Z	 ej
        d          Z G d d          ZdS )IdentityRegisterChangeLogrt   Tr   c                       e Zd ZdgZdS )IdentityRegisterChangeLog.Metaz
-timestampN)r   r   r   r   r!   r"   r#   r$   r  .  s         >r"   r$   N)r   r   r   r   r   r   r   identity_registerr   userrV   	timestampr$   r!   r"   r#   r
  r
  )  s        ))*:fnUUU6TV^<<<D$$$777I" " " " " " " " " "r"   r
  c                       e Zd Z ej        eej                  Z ej        dd          Z	 ej
                    Zed             ZdS )ReuploadTokenr  r   T)r   r   c                 :    t          j                    | j        k     S r&   )r   r   
expires_atr(   s    r#   is_validzReuploadToken.is_valid7  s    |~~//r"   N)r   r   r   r   r   r   r   r  r-   tokenrV   r  propertyr  r!   r"   r#   r  r  2  so        ))*:fnUUUF4888E%%''J0 0 X0 0 0r"   r  )2tkinterr   	django.dbr   django.utils.timezoner   r   r   django.contrib.auth.modelsr   django.core.validatorsr	   r
   django.utilsr   ckeditor.fieldsr   django.utils.textr   ckeditor_uploader.fieldsr   django.urlsr   ckeditor_uploader.widgetsr   uuiddjango.core.exceptionsr   django.utils.translationr   Modelr   r/   r\   rd   rm   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r!   r"   r#   <module>r'     s               % % % % % % # # # # # # # # + + + + + + G G G G G G G G ! ! ! ! ! ! ) ) ) ) ) ) % % % % % % ; ; ; ; ; ;       = = = = = =  2 2 2 2 2 2 1 1 1 1 1 1	 	 	 	 	 	 	 	H H H H Hfl H H H@	 	 	 	 	 	 	 	3 3 3 3 3fl 3 3 32 2 2 2 2V\ 2 2 2*# # # # #&, # # #    fl   "
2 
2 
2 
2 
2FL 
2 
2 
2    FL   	 	 	 	 	fl 	 	 	.T .T .T .T .TFL .T .T .Tb	 	 	 	 	V\ 	 	 	
< < <; ; ;: : :< < <
0g 0g 0g 0g 0gv| 0g 0g 0gd" " " " " " " "0 0 0 0 0FL 0 0 0 0 0r"   