
    ;7i                         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)slugify)timezone)	HTMLFieldc                   .    e Zd ZdZ ej
                  dd      Z ej                  ddd      Z ej                  dd      Z
 ej                  dddd	      Z ej                  d
      Z ej                  d      Z G d d      Z fdZd Z xZS )Categoryz-Category model for organizing news and eventsd   T)
max_lengthuniquer
   r   blank)r   nullznews/categories/z(Optional image representing the category	upload_tor   r   	help_textauto_now_addauto_nowc                       e Zd ZdZdgZy)Category.Meta
CategoriesnameN__name__
__module____qualname__verbose_name_pluralordering      /var/www/apihucms/news/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   s+    yy		*DId%f%r!   c                     | j                   S r%   )r   r*   s    r"   __str__zCategory.__str__   s    yyr!   )r   r   r   __doc__r   	CharFieldr   	SlugFieldr&   	TextFielddescription
ImageFieldfeatured_imageDateTimeField
created_at
updated_atr#   r(   r0   __classcell__r-   s   @r"   r   r      s    76s48D6s4tDD"&""D9K&V&&$<	N &%%48J%%%t4J &
r!   r   c                       e Zd ZdZ ej
                  dd      Z ej                  ddd      Z ej
                  dd      Z	 e
d	
      Z ej                  eej                  dd      Z ej                   ej$                  d      Z ej(                  dddd      Z ej,                  dd      Z ej                   d      Z ej                   d      Z G d d      Z fdZddZd Z xZS )NewszNews and Events model   zTitle for SEO)r
   r   Tr   i  z,Short description for SEO (meta description)z.Full content/description with rich text editor)r   
news_items)	on_deleter   related_namez.Date and time when the news/event is publisheddefaultr   znews/featured/z&Main featured image for the news/eventr   z$Whether the news is active/publishedr   r   c                       e Zd ZdZddgZy)	News.Metar>   z-publish_datez-created_atNr   r    r!   r"   r#   rF   ?   s    $#]3r!   r#   c                 p    | j                   st        | j                        | _         t        |   |i | y r%   )r&   r   titler'   r(   r)   s      r"   r(   z	News.saveC   s+    yy

+DId%f%r!   c                     | j                   r=|r%|j                  | j                   j                        S | j                   j                  S y)z0Return featured image URL or default placeholderzhttps://placehold.co/1200x750)r7   build_absolute_uriurl)r*   requests     r"   get_featured_image_urlzNews.get_featured_image_urlH   s@    11$2E2E2I2IJJ&&***.r!   c                     | j                   S r%   )rH   r/   s    r"   r0   zNews.__str__P   s    zzr!   r%   )r   r   r   r1   r   r2   rH   r3   r&   short_descriptionr   r5   
ForeignKeyr   SET_NULLcategoryr8   r   nowpublish_dater6   r7   BooleanField	is_activer9   r:   r#   r(   rM   r0   r;   r<   s   @r"   r>   r>   "   s
   FGE6s4tDD(((@ &VWK v  //!	H (6''BL 'V&&":	N $##D<bcI%%%48J%%%t4J4 4&
/r!   r>   c                   
   e Zd ZdZ ej
                  eej                  d      Z ej                  dd      Z
 ej                  dddd	
      Z ej                  dd      Z ej                  d      Z G d d      Zd Zy)ImageGalleryz0Image gallery for multiple images per news/eventgallery_images)rA   rB   znews/gallery/zGallery image)r   r   r?   TzOptional caption for the image)r
   r   r   r   r   zOrder of image displayrC   r   c                       e Zd ZdZddgZy)ImageGallery.MetazImage Galleriesorderuploaded_atNr   r    r!   r"   r#   r[   k   s    /]+r!   r#   c                 4    d| j                   j                   S )Nz
Image for )newsrH   r/   s    r"   r0   zImageGallery.__str__o   s    DIIOO,--r!   N)r   r   r   r1   r   rP   r>   CASCADEr_   r6   imager2   captionPositiveIntegerFieldr\   r8   r]   r#   r0   r    r!   r"   rX   rX   T   s    :6..%D
 F!!E f2	G (F''*E '&&&D9K, ,.r!   rX   N)	django.dbr   django.utils.textr   django.utilsr   tinymce.modelsr   Modelr   r>   rX   r    r!   r"   <module>ri      sB     % ! $v|| 6/6<< /d.6<< .r!   