U
    ;b                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlZejddddgd	Z	d
d 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 )    )models)	mark_safe)MarkdownxFieldNzcode-friendlyzfenced-code-blocksZ	numberingtables)extrasc                 C   s,   t | }tjdd|tjtj d}t|S )Nz<code>(.*?)</code>z*<span class="latex"><code>\1</code></span>)flags)
markdownerconvertresubMDOTALLr   )st r   %/home/saeta/www/mysrc/latex/models.pymd   s    

r   c                   @   sN   e Zd ZedejZejddZe	 Z
dd Zedd ZG dd	 d	Zd
S )OptionPackage   
max_lengthc                 C   s   d| j j d| j S )N[] )packagenamecodeselfr   r   r   __str__   s    zOption.__str__c                 C   s
   t | jS Nr   descriptionr   r   r   r   md_description"   s    zOption.md_descriptionc                   @   s   e Zd ZddgZdS )zOption.Metar   r   N__name__
__module____qualname__orderingr   r   r   r   Meta&   s   r)   N)r%   r&   r'   r   
ForeignKeyCASCADEr   	CharFieldr   r   r"   r   propertyr#   r)   r   r   r   r   r      s   
r   c                   @   s.   e Zd ZejddZdd ZG dd dZdS )Categoryr   r   c                 C   s   | j S r    r   r   r   r   r   r   -   s    zCategory.__str__c                   @   s   e Zd ZdZdgZdS )zCategory.Meta
categoriesr   N)r%   r&   r'   verbose_name_pluralr(   r   r   r   r   r)   0   s   r)   N)r%   r&   r'   r   r,   r   r   r)   r   r   r   r   r.   *   s   r.   c                   @   s   e Zd ZejddZeeZe	 Z
e	dddZejdddZejddZdd	 Zed
d Zedd Zedd ZG dd dZdS )r   @   r   T)nullblankP   )r   r4   )r4   c                 C   s,   dd | j  D }dd| d| j S )Nc                 S   s   g | ]}t |jqS r   )strr   .0xr   r   r   
<listcomp>@   s     z#Package.__str__.<locals>.<listcomp>r   z, r   )categoryiteratorjoinr   )r   Zcatsr   r   r   r   ?   s    zPackage.__str__c                 C   s
   t | jS r    r!   r   r   r   r   r#   C   s    zPackage.md_descriptionc                 C   s
   t | jS r    )r   examplesr   r   r   r   md_examplesG   s    zPackage.md_examplesc                    s   d ddgg}dd | j  D }t|dkrX|d d  d| j 7  < | j|d d< nN|d d  d	7  < |D ]}d
|d  |d< qp|| |d| j | jg  fdd|D }d|S )N$   z\usepackage c                 S   s"   g | ]}|j |jd d gqS )
r   )r   r"   split)r8   optionr   r   r   r:   Q   s   z Package.code.<locals>.<listcomp>r   z{%s}   r   z    z]{%s}c                    s:   g | ]2}|d  r.|d d  d|d   n|d qS )rE   r   <z% r   r7   Zcomment_colr   r   r:   _   s     rB   )Z
option_setalllenr   commentextendappendr=   )r   linesoptsofinishedr   rG   r   r   K   s     
zPackage.codec                   @   s   e Zd ZdgZdS )zPackage.Metar   Nr$   r   r   r   r   r)   b   s   r)   N)r%   r&   r'   r   r,   r   ManyToManyFieldr.   r;   r   r"   r>   rJ   	TextFieldZinitializationr   r-   r#   r?   r   r)   r   r   r   r   r   7   s   



r   c                   @   s4   e Zd ZejddZeeZe	 Z
edd ZdS )Facetr2   r   c                 C   s
   t | jS r    r!   r   r   r   r   r#   m   s    zFacet.md_descriptionN)r%   r&   r'   r   r,   r   rQ   r   packagesr   r"   r-   r#   r   r   r   r   rS   h   s
   
rS   c                   @   sB   e Zd ZejddZe Ze Z	e Z
dd Zedd ZdS )Template    r   c                 C   s   | j S r    r/   r   r   r   r   r   x   s    zTemplate.__str__c                 C   s
   t | jS r    r!   r   r   r   r   r#   {   s    zTemplate.md_descriptionN)r%   r&   r'   r   r,   r   r   r"   rR   rT   templater   r-   r#   r   r   r   r   rU   r   s   rU   )	django.dbr   django.utils.safestringr   Zmarkdownx.modelsr   Z	markdown2r
   ZMarkdownr   r   Modelr   r.   r   rS   rU   r   r   r   r   <module>   s   
1
