a
    Dø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
 G dd„ dƒZG dd	„ d	ejƒZd
S )é    )ÚValidationError)Úcached_property)Úgettext_lazy)Úblocks)Úembed_to_frontend_htmlc                   @   s.   e Zd ZdZd	dd„Zedd„ ƒZdd„ ZdS )
Ú
EmbedValueaW  
    Native value of an EmbedBlock. Should, at minimum, have a 'url' property
    and render as the embed HTML when rendered in a template.
    NB We don't use a wagtailembeds.model.Embed object for this, because
    we want to be able to do {% embed value.url 500 %} without
    doing a redundant fetch of the embed at the default width.
    Nc                 C   s   || _ || _|| _d S ©N)ÚurlÚ	max_widthÚ
max_height)Úselfr	   r
   r   © r   úT/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/embeds/blocks.pyÚ__init__   s    zEmbedValue.__init__c                 C   s   t | j| j| jƒS r   )r   r	   r
   r   ©r   r   r   r   Úhtml   s    zEmbedValue.htmlc                 C   s   | j S r   )r   r   r   r   r   Ú__str__   s    zEmbedValue.__str__)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   	   s
   

r   c                       sZ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Z‡ fdd„Zdd„ Z	G dd„ dƒZ
‡  ZS )Ú
EmbedBlockc                 C   sJ   | j jsd S t| j jtƒr"| j jS t| j jt| j dd ƒt| j dd ƒƒS d S ©Nr
   r   )ÚmetaÚdefaultÚ
isinstancer   Úgetattrr   r   r   r   Úget_default    s    ýzEmbedBlock.get_defaultc                 C   s,   |sd S t |t| jdd ƒt| jdd ƒƒS d S r   ©r   r   r   ©r   Úvaluer   r   r   Ú	to_python.   s    ýzEmbedBlock.to_pythonc                 C   s   |d u rdS |j S d S ©NÚ ©r	   r   r   r   r   Úget_prep_value:   s    zEmbedBlock.get_prep_valuec                 C   s   |d u rdS |j S d S r"   r$   r   r   r   r   Úvalue_for_formA   s    zEmbedBlock.value_for_formc                 C   s,   |sd S t |t| jdd ƒt| jdd ƒƒS d S r   r   r   r   r   r   Úvalue_from_formH   s    ýzEmbedBlock.value_from_formc                    s(   t |tƒr|jsttdƒƒ‚tƒ  |¡S )Nz"Cannot find an embed for this URL.)r   r   r   r   Ú_ÚsuperÚcleanr   ©Ú	__class__r   r   r*   S   s    zEmbedBlock.cleanc                 C   s   t |tƒr|S t|ƒS r   )r   r   r   r   r   r   Ú	normalizeX   s    
zEmbedBlock.normalizec                   @   s   e Zd ZdZdS )zEmbedBlock.MetaZmediaN)r   r   r   Ziconr   r   r   r   ÚMeta]   s   r.   )r   r   r   r   r!   r%   r&   r'   r*   r-   r.   Ú__classcell__r   r   r+   r   r      s   r   N)Zdjango.core.exceptionsr   Zdjango.utils.functionalr   Zdjango.utils.translationr   r(   Zwagtailr   Zwagtail.embeds.formatr   r   ZURLBlockr   r   r   r   r   Ú<module>   s   