
    SiF                         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ej                        Z G d d	ej                        Z G d
 dej                        Zy)    )models)timezone)slugify)reverse)CKEditor5Fieldc                        e Zd Z ej                  dd      Z ej                  ddd      Z ej                  d      Z	 ej                  d      Z G d d      Z fd	Zd
 Z xZS )Categoryd   T
max_lengthuniquer   r   blank)r   auto_now_addc                       e Zd ZdZdZdgZy)Category.Metar	   
CategoriesnameN)__name__
__module____qualname__verbose_nameverbose_name_pluralordering     $/var/www/alwasay/apps/blog/models.pyMetar      s    !*8r   r   c                 p    | j                   st        | j                        | _         t        |   |i | y Nslugr   r   supersaveselfargskwargs	__class__s      r   r%   zCategory.save   +    yy		*DId%f%r   c                     | j                   S r!   r   r'   s    r   __str__zCategory.__str__       yyr   )r   r   r   r   	CharFieldr   	SlugFieldr#   	TextFielddescriptionDateTimeField
created_atr   r%   r/   __classcell__r*   s   @r   r	   r	      se    6s48D6s4tDD"&"".K%%%48J 
&
r   r	   c                        e Zd Z ej                  dd      Z ej                  ddd      Z G d d      Z fdZ	d Z
 xZS )	Tag2   Tr   r   c                       e Zd ZdgZy)Tag.Metar   N)r   r   r   r   r   r   r   r   r=       s	    8r   r   c                 p    | j                   st        | j                        | _         t        |   |i | y r!   r"   r&   s      r   r%   zTag.save#   r+   r   c                     | j                   S r!   r-   r.   s    r   r/   zTag.__str__(   r0   r   )r   r   r   r   r1   r   r2   r#   r   r%   r/   r7   r8   s   @r   r:   r:      sA    6r$7D6r$dCD &
r   r:   c                   
    e Zd Z G d dej                        Z ej                  d      Z ej                  ddd      Z	 ej                  dd	      Z ej                         Z ed
d      Z ej                  ddd      Z ej                   eej$                  dd      Z ej(                  edd      Z ej                   dej.                  d      Z ej                  dej2                  ej4                        Z ej8                  d      Z ej<                  d      Z ej@                  d      Z! ej@                  d      Z" ej@                  dd      Z# G d d      Z$ fdZ%d  Z&d! Z'e(d"        Z) xZ*S )#Postc                       e Zd ZdZdZy)Post.Status)draftDraft)	published	PublishedN)r   r   r   DRAFT	PUBLISHEDr   r   r   StatusrC   -   s     ,	r   rJ      )r   Tr   i  zShort description for preview)r   	help_textContentextends)config_namezblog/images/%Y/%m/)	upload_tor   nullposts)	on_deleterQ   related_name)r   rT   z
users.User
blog_posts)rS   rT   
   )r   choicesdefaultF)rX   r   r   )auto_now)r   rQ   c                   d    e Zd ZddgZ ej
                  dg       ej
                  dg      gZy)	Post.Metaz-published_atz-created_at)fieldsr#   N)r   r   r   r   r   Indexindexesr   r   r   r   r[   K   s4    #]3FLL 12FLL)
r   r   c                     | j                   st        | j                        | _         | j                  | j                  j
                  k(  r%| j                  st        j                         | _        t        | (  |i | y r!   )r#   r   titlestatusrJ   rI   published_atr   nowr$   r%   r&   s      r   r%   z	Post.saveR   sW    yy

+DI;;$++///8I8I (Dd%f%r   c                     | j                   S r!   )r`   r.   s    r   r/   zPost.__str__Y   s    zzr   c                 4    t        dd| j                  i      S )Nzblog:post_detailr#   )r)   )r   r#   r.   s    r   get_absolute_urlzPost.get_absolute_url\   s    )64992EFFr   c                 f    t        | j                  j                               }t        d|dz        S )N      )lencontentsplitmax)r'   
word_counts     r   reading_timezPost.reading_time_   s+    ++-.
1jC'((r   )+r   r   r   r   TextChoicesrJ   r1   r`   r2   r#   r3   excerptrk   r   
ImageFieldfeatured_image
ForeignKeyr	   SET_NULLcategoryManyToManyFieldr:   tagsCASCADEauthorrW   rH   ra   BooleanFieldis_featuredPositiveIntegerFieldviews_countr5   r6   
updated_atrb   r   r%   r/   rf   propertyro   r7   r8   s   @r   rA   rA   ,   s   -## - F,E6s4tDDf#9XYGf GYI>G&V&&1ETX\]N v  V__4^efH!6!!#THDV..!F VV^^V\\ZF%&%%e4K-&--a8K%%%48J%%%t4J'6''d>L
 
&G ) )r   rA   N)	django.dbr   django.utilsr   django.utils.textr   django.urlsr   django_ckeditor_5.fieldsr   Modelr	   r:   rA   r   r   r   <module>r      sD     ! %  3v|| (&,,  6)6<< 6)r   