o
    .4c                     @   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
Z
d dl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dd ZdS )    )models)User)	mark_safe)get_template)RichTextFieldN)short_storyc                   @   s   e Zd ZdZejdeddZe ZejddZ	ejdddZ
e Zejdd	Ze Zejd
dddZejdddZejddddZedd Zdd Zdd Zdd Zd"ddZd"ddZdd ZG dd  d Zd!S )#NewsItem)	)sStory)aAnnouncement)eEvent)uUnique)pPeople)kKiosk)PProfile)AAlumni)S	Statement   z@Unique, People, and Kiosk have special roles on the landing page)
max_lengthchoices	help_textTauto_now_add)nullblank   r   @   r   r"   r!   d   r   r"   stories	upload_tor"   r!   c                 C   s   ddl m} || dd}| j D ]7}|t|j| |	|j	|	|j
|	|j||j||j||j||jd|jdg	 qd S )Nr   )Exporterz?id;type;date;post_date;stop_date;headline;text;location;picture;zpicture-03d)djphys.exportr,   splitobjectsallwritestridget_category_displaydate	post_date	stop_datetextheadlinelocationxobjectpicture)r   r,   xpi rA   /var/www/djphys/news/models.pyexport*   s(   





zNewsItem.exportc                 C      | j S Nr;   selfrA   rA   rB   __str__?      zNewsItem.__str__c                 C      | j dS Nz%m/%d/%yr7   strftimerG   rA   rA   rB   
short_dateB      zNewsItem.short_datec                 C   s
   t | jS rE   )r   r:   rG   rA   rA   rB   teaserE   s   
zNewsItem.teaser180x180c                 C   s   t d}t|| |dS )Nznews/blurb.htmlstory	thumbsizer   r   render)rH   rU   temprA   rA   rB   blurbH   s   zNewsItem.blurbc                 K   s(   t d}| |d}t|i ||S )zO
        To modify behavior, kwargs can include 'header' and 'trailer'
        znews/tile.htmlrS   rV   )rH   rU   kwargsrX   paramsrA   rA   rB   tileL   s   
zNewsItem.tilec                 C   s   t d}t|d| iS )Nznews/story.htmlrT   rV   )rH   rX   rA   rA   rB   rT   T   s   zNewsItem.storyc                   @      e Zd ZdgZdS )zNewsItem.Meta-dateN__name__
__module____qualname__orderingrA   rA   rA   rB   MetaX       
rd   N)rR   )r`   ra   rb   	NEWSTYPESr   	CharFieldcategory	DateFieldr7   r8   r9   r   authorr;   r   r:   r<   keywords
ImageFieldr>   classmethodrC   rI   rO   rQ   rY   r\   rT   rd   rA   rA   rA   rB   r      s2    


r   c                   @   s\   e Zd ZejddZe Ze ZejddZ	ejdddddZ
dd ZG d	d
 d
ZdS )RibbonAnnouncementTr      r$   zOptional link)r   r"   r!   r   c                 C   rD   rE   )messagerG   rA   rA   rB   rI   d   rJ   zRibbonAnnouncement.__str__c                   @   r]   )zRibbonAnnouncement.Metaz
-post_dateNr_   rA   rA   rA   rB   rd   g   re   rd   N)r`   ra   rb   r   DateTimeFieldcreatedr8   r9   rg   rp   urlrI   rd   rA   rA   rA   rB   rn   \   s    rn   c                   @   st   e Zd Ze ZejddZe Zej	ddZ
e Zej	dddZejddddZd	d
 Zdd ZG dd dZdS )r
   Tr   r#   r$   r'   r(   r)   r*   c                 C   rD   rE   rF   rG   rA   rA   rB   rI   t   rJ   zStory.__str__c                 C   rK   rL   rM   rG   rA   rA   rB   rO   w   rP   zStory.short_datec                   @   s   e Zd ZdgZdZdS )z
Story.Metar^   r)   N)r`   ra   rb   rc   verbose_name_pluralrA   rA   rA   rB   rd   z   s    rd   N)r`   ra   rb   r   ri   r7   r8   r   rj   rg   r;   r   r:   rk   rl   r>   rI   rO   rd   rA   rA   rA   rB   r
   k   s    r
   c                   @   s   e Zd Ze ZejddZe Z	ej
ddZe Zej
dddZej
ddddZejd	ddd
Zdd Zdd ZG dd dZdS )r   Tr   r#   r$   r%   )r   r!   r'   r&   r)   r*   c                 C      d | j| jS Nu   {0} — {1}formatr7   r;   rG   rA   rA   rB   rI         zEvent.__str__c                 C   ru   rv   rw   rG   rA   rA   rB   display   ry   zEvent.displayc                   @   r]   )z
Event.Metar^   Nr_   rA   rA   rA   rB   rd      re   rd   N)r`   ra   rb   r   rq   r7   ri   r8   r   rj   rg   r;   r   r:   r<   rk   rl   r>   rI   rz   rd   rA   rA   rA   rB   r      s    r   c                  C   sR   dd l } tjjddd d D ]}| d|j}|r&td|j|d qd S )Nr    )r>   
   z<img .*src=['"]([^'"]*)['"].*>z6In {0} I found 
**************
{1}
*****************

r   )	rer   r1   filtersearchr:   printrx   group)r}   nsimgrA   rA   rB   identify_images   s   r   )	django.dbr   django.contrib.auth.modelsr   django.utils.safestringr   django.template.loaderr   djrichtextfield.modelsr   datetimedjphys.funcsr   Modelr   rn   r
   r   r   rA   rA   rA   rB   <module>   s   LL