o
    bg                     @   s   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mZmZ G dd	 d	ejZeeG d
d dejZeeG dd dejZeeG dd dejZdS )    )admin)timezone)format_html)forms)widgets   )CategoryTagArticlec                       s>   e Zd ZG dd dZdd Z fddZ fddZ  ZS )	ArticleAdminFormc                   @   s>   e Zd ZeZg dZejdddde	 dZdddZ
d	S )
zArticleAdminForm.Meta)titleslugsubtitlecontentfeatured_imagecategorytagsauthorstatuspublished_dateis_featuredmeta_descriptionzform-control8)classsize)attrs)r   r   z<Select relevant tags. Hold Ctrl/Cmd to select multiple tags.z<Set the date and time when this article should be published.N)__name__
__module____qualname__r
   modelfieldsr   SelectMultipler   AdminSplitDateTime
help_texts r$   r$   /var/www/html/gwz/news/admin.pyMeta	   s    
r&   c                 C   s   | j d}|S )Nr   )cleaned_dataget)selfdater$   r$   r%   clean_published_date   s   z%ArticleAdminForm.clean_published_datec                    
   t   S N)supercleanr)   	__class__r$   r%   r/          
zArticleAdminForm.cleanc                    r,   r-   )r.   is_validr0   r1   r$   r%   r4   #   r3   zArticleAdminForm.is_valid)r   r   r   r&   r+   r/   r4   __classcell__r$   r$   r1   r%   r      s
    r   c                   @   s.   e Zd ZdZdZddiZdZdd Zde_d	S )
CategoryAdminnamearticle_count
created_at)r8   descriptionr   r8   r:   c                 C      |j jdd }td|S N	published)r   z	<b>{}</b>articlesfiltercountr   r)   objrD   r$   r$   r%   r9   /      
zCategoryAdmin.article_countArticlesN	r   r   r   list_displaysearch_fieldsprepopulated_fieldsreadonly_fieldsr9   short_descriptionr$   r$   r$   r%   r6   (       
r6   c                   @   s.   e Zd ZdZdZddiZdZdd Zde_dS )	TagAdminr7   r<   r   r=   c                 C   r>   r?   rA   rE   r$   r$   r%   r9   ;   rG   zTagAdmin.article_countrH   NrI   r$   r$   r$   r%   rP   4   rO   rP   c                	       s   e Zd ZeZdZdZdZddiZdZ	dZ
dZd	Zd
dddfddddfddddfdddddfdddddffZG dd dZdd Zde_d d! Zd"e_ fd#d$Z  ZS )%ArticleAdmin)r   r   r   status_badger   r   views_countreading_time_display)r   r   r   r:   r   )r   r   r   r   r   )r   )rS   r:   
updated_at)r   r   TzArticle Content)r   r   r   r   r   zXEnter the main content of your article. The title will be used to generate the URL slug.)r    r;   Categorization)r   r   zKSelect a category and relevant tags. Hold Ctrl/Cmd to select multiple tags.
Publishing)r   r   r   r   z^Set the publication status and date. Articles will only be visible on the site when published.SEO)r   )collapsez&Add a meta description to improve SEO.)r    classesr;   
Statisticsz'View article statistics and timestamps.c                   @   s   e Zd ZddiZdZdS )zArticleAdmin.Mediaall)zcss/custom_admin.css)zjs/custom_admin.jsN)r   r   r   cssjsr$   r$   r$   r%   Mediaf   s    r_   c                 C   s&   dddd}t d||jd| S )Nz#e74c3cz#2ecc71z#95a5a6)draftr@   archivedz5<span style="color: {}; font-weight: bold;">{}</span>z#666)r   r(   r   get_status_display)r)   rF   colorsr$   r$   r%   rR   l   s   zArticleAdmin.status_badgeStatusc                 C   s(   |j }|dk r	dS |dkrdS | dS )Nr   z
Quick readz1 minutez minutes)reading_time)r)   rF   minutesr$   r$   r%   rT   y   s   
z!ArticleAdmin.reading_time_displayzReading Timec                    s$   |j s|j|_ t |||| d S r-   )r   userr.   
save_model)r)   requestrF   formchanger1   r$   r%   rh      s   zArticleAdmin.save_model)r   r   r   r   rj   rJ   list_filterrK   rL   rM   filter_horizontaldate_hierarchysave_on_top	fieldsetsr_   rR   rN   rT   rh   r5   r$   r$   r1   r%   rQ   @   sN    rQ   N)django.contribr   django.utilsr   django.utils.htmlr   djangor   django.contrib.adminr   modelsr   r	   r
   	ModelFormr   register
ModelAdminr6   rP   rQ   r$   r$   r$   r%   <module>   s     