a
    Dg                     @   s^   d Z ddlmZ ddlmZ ddlmZ dd ZG dd deZd	ed
idd
eiidZ	dS )z$
Draftail / contentstate conversion
    )DOM)LinkElementHandler)get_document_modelc                 C   s   t dd| dd| d S )z
    Helper to construct elements of the form
    <a id="1" linktype="document">document link</a>
    when converting from contentstate data
    adocumentid)linktyper   children)r   Zcreate_elementget)props r   g/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/documents/rich_text/contentstate.pydocument_link_entity
   s    r   c                   @   s   e Zd ZdZdd ZdS )DocumentLinkElementHandlerz
    Rule for populating the attributes of a document link when converting from database representation
    to contentstate
    c              	   C   st   t  }zt|d }W n ttfy0   i  Y S 0 z|jj|d}W n |jy`   d|i Y S 0 |j|j|j	dS )Nr   )r   )r   urlfilename)
r   intKeyError
ValueErrorZobjectsr
   ZDoesNotExistr   r   r   )selfattrsDocumentr   docr   r   r   get_attribute_data!   s    
z-DocumentLinkElementHandler.get_attribute_dataN)__name__
__module____qualname____doc__r   r   r   r   r   r      s   r   za[linktype="document"]ZDOCUMENTZentity_decorators)Zfrom_database_formatZto_database_formatN)
r   Zdraftjs_exporter.domr   Z7wagtail.admin.rich_text.converters.html_to_contentstater   Zwagtail.documentsr   r   r   Z&ContentstateDocumentLinkConversionRuler   r   r   r   <module>   s   
