o
    /i                     @   s   d dl mZ d dlmZmZmZmZmZ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dS )    )serializers)SuratSuratfSuratd	DisposisiSuratVersionAttachmentSuratVersionc                   @   *   e Zd Ze ZG dd dZdd ZdS ) SuratVersionAttachmentSerializerc                   @      e Zd ZeZg dZdS )z%SuratVersionAttachmentSerializer.Meta)_pknamepathurl_typesizecreatedN)__name__
__module____qualname__r   modelfields r   r   ?/var/www/html/mfile_papteng_new/webapp/api/surat/serializers.pyMeta       r   c                 C   (   | j d}|r|d|j S |jS )zK
        Menghasilkan URL absolut berdasarkan path lampiran versi.
        request/assets/upload/surat/contextgetbuild_absolute_urir   selfobjr   r   r   r   get_url      z(SuratVersionAttachmentSerializer.get_urlNr   r   r   r   SerializerMethodFieldr   r   r&   r   r   r   r   r
          r
   c                   @   r	   )SuratVersionSerializerc                   @   r   )zSuratVersionSerializer.Meta)r   nomortanggalpengirim_namapenerima_namaperihalsifatjenisstatus_suratr   attachmentsN)r   r   r   r   r   r   r   r   r   r   r   "   r   r   c                 C   s,   t jj|jd}t|dd| jdidjS )zP
        Mengembalikan daftar lampiran yang terkait dengan versi surat.
        )
pk_versionTr   manyr    )r   objectsfilterr   r
   r    r!   data)r$   r%   qsr   r   r   get_attachments.   s   z&SuratVersionSerializer.get_attachmentsN)r   r   r   r   r)   r4   r   r<   r   r   r   r   r+      s    r+   c                   @   r	   )SuratfSerializerc                   @   r   )zSuratfSerializer.Meta)r   r   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   @   r   r   c                 C   r   )z@
        Menghasilkan URL absolut untuk lampiran surat.
        r   r   r   r#   r   r   r   r&   D   r'   zSuratfSerializer.get_urlNr(   r   r   r   r   r=   =   r*   r=   c                   @      e Zd ZG dd dZdS )SuratdSerializerc                   @   r   )zSuratdSerializer.Meta)r   kepadacatatanr   updatedN)r   r   r   r   r   r   r   r   r   r   r   R   r   r   Nr   r   r   r   r   r   r   r   r?   Q       r?   c                   @   r>   )DisposisiSerializerc                   @   r   )zDisposisiSerializer.Meta)r   r-   r1   r@   rA   
user_inputN)r   r   r   r   r   r   r   r   r   r   r   [   r   r   NrC   r   r   r   r   rE   Z   rD   rE   c                   @   sT   e Zd ZeddddZeddddZeddddZe	
 ZG dd dZdd	 Zd
S )SuratSerializer
suratf_setT)sourcer7   	read_only
suratd_setdisposisi_setc                   @   s    e Zd ZeZg dZg dZdS )zSuratSerializer.Meta)r   r   r,   r-   pengirimr.   pengirim_instansipenerimar/   penerima_instansir1   r2   r0   rF   r3   r   rB   lampirantujuan	disposisiversions)r   r   rB   N)r   r   r   r   r   r   read_only_fieldsr   r   r   r   r   i   s    
r   c                 C   s2   t jj|jdd}t|dd| jdidjS )z=
        Mengembalikan daftar versi surat (history).
        )pk_suratz-createdTr   r6   )	r   r8   r9   r   order_byr+   r    r!   r:   )r$   r%   rT   r   r   r   get_versionsw   s   zSuratSerializer.get_versionsN)r   r   r   r=   rQ   r?   rR   rE   rS   r   r)   rT   r   rX   r   r   r   r   rG   c   s    rG   N)rest_frameworkr   webapp.models.koleksir   r   r   r   r   r   ModelSerializerr
   r+   r=   r?   rE   rG   r   r   r   r   <module>   s     			