a
    Dg                     @   sF   d dl Z d dlmZ dZdZdZG dd deZG dd	 d	ejZ	dS )
    N)modelsi   il   hU c                       s4   e Zd Z fddZdd Zdd Zdd Z  ZS )	ConvertedValuec                    sB   t |}t|k r|}|t }n|}|t }t | |}||_|S N)intUPPER_BOUNDSHIFTsuper__new__db_value)clsvalueZdisplay_valuer
   self	__class__ ]/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/test/customuser/fields.pyr	      s    
zConvertedValue.__new__c                 C   s   d| j j d| j dS )N<z: >)r   __name__r
   r   r   r   r   __repr__   s    zConvertedValue.__repr__c                 C   s"   t || jr| j|jkS | j|kS r   )
isinstancer   r
   )r   otherr   r   r   __eq__   s    zConvertedValue.__eq__c                 C   s
   t | jS r   )hashr
   r   r   r   r   __hash__"   s    zConvertedValue.__hash__)r   
__module____qualname__r	   r   r   r   __classcell__r   r   r   r   r   
   s   r   c                       sR   e Zd ZdZdd Zdd Z fddZdd	 Zd
d ZdddZ	dd Z
  ZS )ConvertedValueFieldz
    Roughly copied from https://github.com/django/django/blob/d6eaf7c0183cd04b78f2a55e1d60bb7e59598310/tests/custom_pk/fields.py
    c                 C   s4   t || jd }|s0tttt}t|| j| |S r   )getattrZattnamer   randomrandintLOWER_BOUNDr   setattr)r   instanceaddr   r   r   r   pre_save+   s
    zConvertedValueField.pre_savec                 C   s   |sd S t |tst|}|S r   )r   r   r   r   r   r   r   	to_python2   s
    
zConvertedValueField.to_pythonc                    s,   |d u rd S t |tst|}t |jS r   )r   r   r   get_prep_valuer
   r(   r   r   r   r*   9   s
    
z"ConvertedValueField.get_prep_valuec                 C   s   |sd S t |S r   )r   )r   r   Z
expression
connectionr   r   r   from_db_value@   s    z!ConvertedValueField.from_db_valuec                 C   s   |sd S t |jS r   r   r
   )r   r   r+   r   r   r   get_db_prep_saveE   s    z$ConvertedValueField.get_db_prep_saveFc                 C   s   |sd S t |jS r   r-   )r   r   r+   preparedr   r   r   get_db_prep_valueJ   s    z%ConvertedValueField.get_db_prep_valuec                 C   s   |sd S t |jS r   r-   r(   r   r   r   get_searchable_contentO   s    z*ConvertedValueField.get_searchable_content)F)r   r   r   __doc__r'   r)   r*   r,   r.   r0   r1   r   r   r   r   r   r   &   s   
r   )
r!   Z	django.dbr   r#   r   r   strr   ZIntegerFieldr   r   r   r   r   <module>   s   