
    恕f                          d dl mZ d dlZd dlmZ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mZmZmZ  G d
 de
      Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    )
as_unicodeN)fields
validators)form)	iteritems)	ModelView   )setup)datetimetimedatec                   "     e Zd Z	 d fd	Z xZS )CustomModelViewc                 t    t        |      D ]  \  }}t        | ||        t        t        |   |||||       y N)r   setattrsuperr   __init__)
selfmodelnamecategoryendpointurlkwargskv	__class__s
            g/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/flask_admin/tests/peeweemodel/test_basic.pyr   zCustomModelView.__init__   sF     f% 	 DAqD!Q	  	ot-e.2H.6	=    )NNNN)__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s    >B= =r    r   c                       G  fddt         j                        } G fdd|       G fdd|      j                          j                          fS )Nc                   &    e Zd Z G  fdd      Zy) create_models.<locals>.BaseModelc                       e Zd ZW  Zy)%create_models.<locals>.BaseModel.MetaNr!   r"   r#   databasedbs   r   Metar)          Hr    r.   Nr!   r"   r#   r.   r,   s   r   	BaseModelr'          	 	r    r1   c                   >    e Zd Z	 	 	 d fd	Z ej
                  dd      Z ej
                  dd      Z ej                  d      Z	 ej                  d      Z
 ej                  d      Z ej                  d      Z ej                  d      Zd Z xZS )create_models.<locals>.Model1c                     t        	|   di | || _        || _        || _        || _        || _        || _        || _        y N )	r   r   test1test2test3test4
date_fieldtimeonly_fielddatetime_field)r   r8   r9   r:   r;   r<   r=   r>   r   Model1r   s            r   r   z&create_models.<locals>.Model1.__init__"   sJ     &$(262DJDJDJDJ(DO"0D"0Dr       T)
max_lengthnullrB   c                 "    | j                   xs dS )N r8   r   s    r   __str__z%create_models.<locals>.Model1.__str__7   s     ::##r    )NNNNNNN)r!   r"   r#   r   peewee	CharFieldr8   r9   	TextFieldr:   r;   	DateFieldr<   	TimeFieldr=   DateTimeFieldr>   rH   r$   )r   r?   s   @r   r?   r4   !   s    EI59$(	1 !  BT:   BT:   d+   d+%V%%40
)))t4---48	$r    r?   c                        e Zd Z	 	 d fd	Z ej
                  d      Z ej                  d      Z ej                  d      Z
 ej                         Z ej                  W d      Z xZS )create_models.<locals>.Model2c                 \    t        |   di | || _        || _        || _        || _        y r6   )r   r   
char_field	int_fieldfloat_field
bool_field)r   rR   rS   rT   rU   r   Model2r   s         r   r   z&create_models.<locals>.Model2.__init__=   s2    &$(262(DO&DN*D(DOr    r@   rA   TrC   )NNNr   )r!   r"   r#   r   rI   rJ   rR   IntegerFieldrS   
FloatFieldrT   BooleanFieldrU   ForeignKeyFieldmodel1r$   )r   r?   rV   s   @r   rV   rP   <   sl    HL !	) &V%%4
'F''T2	'f''T2(V((*
 (''T:r    rV   )rI   Modelcreate_table)r-   r1   r?   rV   s   ` @@r   create_modelsr_      sO    FLL $ $6; ;$ 
6>r    c                     | dd      j                           | dd      j                           | dd      j                           | dd      j                           | d d	      j                           |d
d d d      j                           |dd d d      j                           |ddd      j                           |ddd      j                           |dd      j                           | dt        ddd            j                           | dt        ddd            j                           | d t        ddd!      "      j                           | d#t        dd!d$      "      j                           | d%t        dd&d'd(d!d)      *      j                           | d+t        dd'd,d)d$d)      *      j                          y )-Ntest1_val_1test2_val_1test1_val_2test2_val_2test1_val_3test2_val_3test1_val_4test2_val_4	empty_objchar_field_val_1T)rU   char_field_val_2Fchar_field_val_3i  gfffff9@char_field_val_4i(#  g     R@char_field_val_5l     3, 	date_obj1i        )r<   	date_obj2i  
      timeonly_obj1	   )r=   timeonly_obj2   datetime_obj1      r	   r   )r>   datetime_obj2   )saver   r   r   )r?   rV   s     r   fill_dbr   T   s   
=-(--/
=-(--/
=-(--/
=-(--/
4""$
tTd;@@B
tTe<AAC
tT*//1
tT*//1
2388:
;4b"#56;;=
;4b"#56;;=
?4B?;@@B
?4Aq>:??A
?8D!Q1a+HINNP
?8D!Q1a+HINNPr    c                  >   t               \  } }}t        |      \  }}t        |      }|j                  |       |j                  |k(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ d|j                  v sJ d|j                  v sJ d|j                  v sJ d|j                  v sJ |j                  J |j                  J |j                  rJ |j                  J |j                  j                  j                  t        j                   k(  sJ |j                  j"                  j                  t        j                   k(  sJ |j                  j$                  j                  t        j&                  k(  sJ |j                  j(                  j                  t        j&                  k(  sJ | j+                         }|j-                  d      }|j.                  d	k(  sJ |j-                  d
      }|j.                  d	k(  sJ |j1                  d
t3        dd            }|j.                  dk(  sJ |j5                         j-                         }|j                  dk(  sJ |j"                  dk(  sJ |j$                  |j$                  dk(  sJ |j(                  |j(                  dk(  sJ |j-                  d      }|j.                  d	k(  sJ d|j6                  v sJ d|j8                  z  }	|j-                  |	      }|j.                  d	k(  sJ |j1                  |	t3        dd            }|j.                  dk(  sJ |j5                         j-                         }|j                  dk(  sJ |j"                  dk(  sJ |j$                  |j$                  dk(  sJ |j(                  |j(                  dk(  sJ d|j8                  z  }	|j1                  |	      }|j.                  dk(  sJ |j5                         j;                         dk(  sJ y )Nr?   r\   idr8   r9   r:   r;   /admin/model1/   /admin/model1/new/
test1larger8   r9   data.  rE   s
   test1largez/admin/model1/edit/?id=%s
test1small
test2largez/admin/model1/delete/?id=%sr   )r
   r_   r   add_viewr   r   r   _primary_key_sortable_columns_create_form_class_edit_form_class_search_supported_filtersr8   field_classr   StringFieldr9   r:   TextAreaFieldr;   test_clientgetstatus_codepostdictselectr   r   count)
appr-   adminr?   rV   viewclientrvr   r   s
             r   
test_modelr   i   s   WNCU"2&NFF6"D	NN4::99   ==H$$$$$$d,,,,,d,,,,,d,,,,,d,,,,,""...  ,,,%%%%==    ""((448J8JJJJ""((448J8JJJJ""((448L8LLLL""((448L8LLLL __F	$	%B>>S   	(	)B>>S   	)\A 
 
CB>>S   MMO!E;;,&&&;;'!!!;;%++"333;;%++"333	$	%B>>S   BGG###
%
0C	CB>>S   	S\F 
 
HB>>S   MMO!E;;,&&&;;,&&&;;%++"333;;%++"333
'%((
2C	S	B>>S   ==?  "a'''r    c                     t               \  } }}t        |      \  }}ddt        j                  d      gii}t	        |dg|      }|j                  |       t        ||       | j                         }|j                  d      }|j                  j                  d      }	d|	v sJ |j                  d	d
dd      }|j                  j                  d      }	d|	k(  sJ |j                  d      }|j                  j                  d      }	d|	v sJ |j                  d	d
dd      }|j                  j                  d      }	|j                  dk(  sJ |j                  d	ddd      }|j                  j                  d      }	|j                  dk(  sJ |j                  d	d
dd      }|j                  j                  d      }	d|	vsJ t	        |dg      }|j                  |       |j                  dd
dd      }|j                  j                  d      }	d|	k(  sJ |j                  d      }|j                  j                  d      }	d|	v sJ y )Nr8   r   r@   )max)column_editable_list	form_argsr   utf-8zdata-role="x-editable"z/admin/model1/ajax/update/1zchange-success-1)list_form_pkr8   r   zRecord was successfully saved.hlongerthantwentycharacterslongerthantwentycharacterslongerthantwentycharacterslongerthantwentycharactersi  1000zproblematic-input)r   r9   r\   )r   z/admin/model2/ajax/update/3)r   r\   /admin/model2/re   )r
   r_   r   Lengthr   r   r   r   r   r   decoder   r   )
r   r-   r   r?   rV   r   r   r   r   r   s
             r   test_column_editable_listr      ss   WNCU"2&NFF <**;*;*C)DEFI6	%.0D	NN4FF__F 
$	%B77>>'"D#t+++ 
1#9 
B 77>>'"D+t333 
$	%B77>>'"D%%% 
1C9 
B
 77>>'"D>>S    
1$9 
B 77>>'"D>>S    
1$9 
B 77>>'"Dd*** 6
CD	NN4	19 
B 77>>'"D+t333 
$	%B77>>'"DD   r    c                  F   t               \  } }}t        |      \  }}t        |      }|j                  |       t        |d      }|j                  |       t        |ddgd      }|j                  |       t	        ||       | j                         }|j                  d      }	|	j                  j                  d      }
d|
vsJ |j                  d	      }	|	j                  j                  d      }
d
|
v sJ |j                  d      }	|	j                  dk(  sJ |j                  d      }	|	j                  j                  d      }
d|
v sJ d|
v sJ d|
v sJ d|
v sJ |j                  d      }	|	j                  j                  d      }
d|
v sJ d|
v sJ d|
vsJ d|
vsJ y )NT)can_view_detailsrR   cf_view)r   column_details_listr   r   r   z/admin/model1/details/r   z/admin/model2/details/z4/admin/model1/details/?url=%2Fadmin%2Fmodel1%2F&id=3r   z4/admin/model2/details/?url=%2Fadmin%2Fmodel2%2F&id=3z
Char Fieldrl   	Int Field5000z6/admin/cf_view/details/?url=%2Fadmin%2Fcf_view%2F&id=3)
r
   r_   r   r   r   r   r   r   r   r   )r   r-   r   r?   rV   view_no_detailsview_w_detailschar_field_viewr   r   r   s              r   test_details_viewr      s   WNCU"2&NFF%f-O	NN?# %VdCN	NN>" &ft;G./8:O 
NN?#FF__F 
$	%B77>>'"D#4/// 
$	%B77>>'"D#t+++ 
J	KB>>S    
J	KB77>>'"D4%%%$T>> 
L	MB77>>'"D4%%%d"""r    c                  &   t               \  } }}t        |      \  }}t        ||       t        |dg      }|j	                  |       t        |j                        dk(  sJ |j                  d   D cg c]  }|d   |d   f c}g dk(  sJ | j                         }|j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ d|	vsJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ d|	v sJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	v sJ d|	vsJ d|	vsJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	vsJ d|	v sJ d|	v sJ t        |dg      }|j	                  |       |j                  d   D cg c]  }|d   |d   f c}g dk(  sJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d      }|j                  d	k(  sJ |j                  j                  d
      }	d |	v sJ d|	vsJ |j                  d!      }|j                  d	k(  sJ |j                  j                  d
      }	d"|	v sJ |j                  d#      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d$      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d%      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d&      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	v sJ d|	vsJ d|	vsJ |j                  d)      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	vsJ d|	v sJ d|	v sJ |j                  d*      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	vsJ d|	v sJ d|	v sJ |j                  d+      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d |	v sJ |j                  d,      }|j                  d	k(  sJ |j                  j                  d
      }	d"|	v sJ |j                  d-      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	v sJ d|	vsJ d|	vsJ t        |d.gd/0      }|j	                  |       |j                  d1   D cg c]  }|d   |d   f c}d2d3gk(  sJ |j                  d4      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	vsJ d|	vsJ |j                  d5      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	v sJ d|	v sJ |j                  d6      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	v sJ d|	v sJ |j                  d7      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	vsJ d|	vsJ t        |d8gd90      }|j	                  |       |j                  d:   D cg c]  }|d   |d   f c}g dk(  sJ |j                  d;      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d<      }|j                  d	k(  sJ |j                  j                  d
      }	d"|	v sJ |j                  d=      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d>      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ d|	v sJ |j                  d?      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ d|	vsJ |j                  d@      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	v sJ d|	vsJ d|	vsJ |j                  dA      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	vsJ d|	v sJ d|	v sJ |j                  dB      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	vsJ d(|	vsJ d|	v sJ d|	v sJ |j                  dC      }|j                  d	k(  sJ |j                  j                  d
      }	d"|	v sJ |j                  dD      }|j                  d	k(  sJ |j                  j                  d
      }	d'|	v sJ d(|	v sJ d|	vsJ d|	vsJ t        |g dEdF0      }|j	                  |       |j                  dG   D cg c]  }|d   |d   f c}g dHk(  sJ |j                  dI   D cg c]  }|d   |d   f c}g dJk(  sJ |j                  dK   D cg c]  }|d   |d   f c}g dLk(  sJ |j                  dM      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	v sJ dO|	vsJ |j                  dP      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	vsJ dO|	v sJ |j                  dQ      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	v sJ dO|	vsJ |j                  dR      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	vsJ dO|	v sJ |j                  dS      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	v sJ dO|	vsJ |j                  dT      }|j                  d	k(  sJ |j                  j                  d
      }	dN|	vsJ dO|	v sJ |j                  dU      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ dN|	vsJ dO|	vsJ |j                  dV      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ dN|	v sJ dO|	v sJ |j                  dW      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	v sJ dY|	vsJ |j                  dZ      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	vsJ dY|	v sJ |j                  d[      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	v sJ dY|	vsJ |j                  d\      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	vsJ dY|	v sJ |j                  d]      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	v sJ dY|	vsJ |j                  d^      }|j                  d	k(  sJ |j                  j                  d
      }	dX|	vsJ dY|	v sJ |j                  d_      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ dX|	vsJ dY|	vsJ |j                  d`      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ dX|	v sJ dY|	v sJ |j                  da      }|j                  d	k(  sJ |j                  j                  d
      }	db|	v sJ dc|	vsJ |j                  dd      }|j                  d	k(  sJ |j                  j                  d
      }	db|	vsJ dc|	v sJ |j                  de      }|j                  d	k(  sJ |j                  j                  d
      }	db|	v sJ dc|	vsJ |j                  df      }|j                  d	k(  sJ |j                  j                  d
      }	db|	vsJ dc|	v sJ |j                  dg      }|j                  d	k(  sJ |j                  j                  d
      }	db|	v sJ dc|	vsJ |j                  dh      }|j                  d	k(  sJ |j                  j                  d
      }	db|	vsJ dc|	v sJ |j                  di      }|j                  d	k(  sJ |j                  j                  d
      }	d|	v sJ db|	vsJ dc|	vsJ |j                  dj      }|j                  d	k(  sJ |j                  j                  d
      }	d|	vsJ db|	v sJ dc|	v sJ y c c}w c c}w c c}w c c}w c c}w c c}w c c}w )kNr8   )column_filters   Test1index	operation))r   contains)r	   znot contains)r}   equals)r{   	not equalrz   empty   zin list   znot in listz!/admin/model1/?flt0_0=test1_val_1r   r   rb   rc   z!/admin/model1/?flt0_1=test1_val_1z!/admin/model1/?flt0_2=test1_val_1z!/admin/model1/?flt0_3=test1_val_1z/admin/model1/?flt0_4=1ri   ra   z/admin/model1/?flt0_4=0z//admin/model1/?flt0_5=test1_val_1%2Ctest1_val_2rd   re   rg   z//admin/model1/?flt0_6=test1_val_1%2Ctest1_val_2rS   r   )r   r   r	   r   r}   greater thanr{   smaller thanr   r   r   z/admin/model2/?flt0_0=5000rl   rm   z)/admin/model2/?flt0_0=6169453081680413441rn   z/admin/model2/?flt0_0=badvalzInvalid Filter Valuez/admin/model2/?flt0_1=5000z/admin/model2/?flt0_2=6000z/admin/model2/?flt0_3=6000z/admin/model2/?flt0_4=1rj   rk   z/admin/model2/?flt0_4=0z!/admin/model2/?flt0_5=5000%2C9000z)/admin/model2/?flt0_5=6169453081680413441z#/admin/model2/?flt0_5=5000%2Cbadvalz!/admin/model2/?flt0_6=5000%2C9000rU   _bools)r   r   z
Bool Fieldr   r   z/admin/_bools/?flt0_0=1z/admin/_bools/?flt0_0=0z/admin/_bools/?flt0_1=1z/admin/_bools/?flt0_1=0rT   _floatzFloat Fieldz/admin/_float/?flt0_0=25.9z/admin/_float/?flt0_0=badvalz/admin/_float/?flt0_1=25.9z/admin/_float/?flt0_2=60.5z/admin/_float/?flt0_3=60.5z/admin/_float/?flt0_4=1z/admin/_float/?flt0_4=0z!/admin/_float/?flt0_5=25.9%2C75.5z#/admin/_float/?flt0_5=25.9%2Cbadvalz!/admin/_float/?flt0_6=25.9%2C75.5)r<   r>   r=   	_datetimez
Date Field)r   r   r   r   )rz   between)r   not between)r   r   zDatetime Field))r   r   )rx   r   )rv   r   )rs   r   )rp   r   )   r   )   r   zTimeonly Field))   r   )   r   )rt   r   )rq   r   )   r   )   r   )r@   r   z#/admin/_datetime/?flt0_0=2014-11-17ro   rr   z#/admin/_datetime/?flt0_1=2014-11-17z#/admin/_datetime/?flt0_2=2014-11-16z#/admin/_datetime/?flt0_3=2014-11-16z1/admin/_datetime/?flt0_4=2014-11-13+to+2014-11-20z1/admin/_datetime/?flt0_5=2014-11-13+to+2014-11-20z/admin/_datetime/?flt0_6=1z/admin/_datetime/?flt0_6=0z0/admin/_datetime/?flt0_7=2014-04-03+01%3A09%3A00ry   r|   z0/admin/_datetime/?flt0_8=2014-04-03+01%3A09%3A00z0/admin/_datetime/?flt0_9=2014-04-03+01%3A08%3A00z1/admin/_datetime/?flt0_10=2014-04-03+01%3A08%3A00zL/admin/_datetime/?flt0_11=2014-04-02+00%3A00%3A00+to+2014-11-20+23%3A59%3A59zL/admin/_datetime/?flt0_12=2014-04-02+00%3A00%3A00+to+2014-11-20+23%3A59%3A59z/admin/_datetime/?flt0_13=1z/admin/_datetime/?flt0_13=0z&/admin/_datetime/?flt0_14=11%3A10%3A09ru   rw   z&/admin/_datetime/?flt0_15=11%3A10%3A09z&/admin/_datetime/?flt0_16=11%3A09%3A09z&/admin/_datetime/?flt0_17=11%3A09%3A09z6/admin/_datetime/?flt0_18=10%3A40%3A00+to+11%3A50%3A59z6/admin/_datetime/?flt0_19=10%3A40%3A00+to+11%3A50%3A59z/admin/_datetime/?flt0_20=1z/admin/_datetime/?flt0_20=0)r
   r_   r   r   r   lenr   _filter_groupsr   r   r   r   r   )
r   r-   r   r?   rV   r   fr   r   r   s
             r   test_column_filtersr   1  s   WNCU"2&NFFFF 67)<D	NN4t}}""" 04/B/B8/LM!!G*an	%M	
		


		
 __F 
7	8B>>S   77>>'"DD   $$$ 
7	8B>>S   77>>'"D$$$D    
7	8B>>S   77>>'"DD   $$$ 
7	8B>>S   77>>'"D$$$D    
-	.B>>S   77>>'"D$$$$$$$ 
-	.B>>S   77>>'"Dd"""D   D    
E	FB>>S   77>>'"DD   D   $$$$$$ 
E	FB>>S   77>>'"D$$$$$$D   D    6;-@D	NN4 04/B/B</PQ!!G*an	%Q	
		


		
 
0	1B>>S   77>>'"D%%%T))) 
?	@B>>S   77>>'"D%%%T))) 
2	3B>>S   77>>'"D!T))) 
0	1B>>S   77>>'"DT)))%%% 
0	1B>>S   77>>'"DT)))%%% 
0	1B>>S   77>>'"D%%%T))) 
-	.B>>S   77>>'"D%%%%%%T)))T))) 
-	.B>>S   77>>'"DT)))T)))%%%%%% 
7	8B>>S   77>>'"DT)))T)))%%%%%% 
?	@B>>S   77>>'"DT)))%%% 
9	:B>>S   77>>'"D!T))) 
7	8B>>S   77>>'"D%%%%%%T)))T))) 6<.$,.D	NN4 04/B/B=/QR!!G*an	%R	
	

	
 
-	.B>>S   77>>'"D%%%T)))T))) 
-	.B>>S   77>>'"DT)))%%%%%% 
-	.B>>S   77>>'"DT)))%%%%%% 
-	.B>>S   77>>'"D%%%T)))T))) 6=/$,.D	NN4 04/B/B>/RS!!G*an	%S	
		


		
 
0	1B>>S   77>>'"D%%%T))) 
2	3B>>S   77>>'"D!T))) 
0	1B>>S   77>>'"DT)))%%% 
0	1B>>S   77>>'"DT)))%%% 
0	1B>>S   77>>'"D%%%T))) 
-	.B>>S   77>>'"D%%%%%%T)))T))) 
-	.B>>S   77>>'"DT)))T)))%%%%%% 
7	8B>>S   77>>'"DT)))T)))%%%%%% 
9	:B>>S   77>>'"D!T))) 
7	8B>>S   77>>'"D%%%%%%T)))T))) 6*\$/1D 
NN4 04/B/B=/QR!!G*an	%R	
		


		
 04/B/BCT/UV!!G*an	%V	
		


		
 04/B/BCT/UV!!G*an	%V	
		


		
 
9	:B>>S   77>>'"D$d""" 
9	:B>>S   77>>'"Dd"""$ 
9	:B>>S   77>>'"D$d""" 
9	:B>>S   77>>'"Dd"""$ 
G	HB>>S   77>>'"D$d""" 
G	HB>>S   77>>'"Dd"""$ 
0	1B>>S   77>>'"DD   d"""d""" 
0	1B>>S   77>>'"D$$$$$ 
F	GB>>S   77>>'"Dd"""$&&& 
F	GB>>S   77>>'"D$&&&d""" 
F	GB>>S   77>>'"Dd"""$&&& 
G	HB>>S   77>>'"D$&&&d""" 
b	cB>>S   77>>'"Dd"""$&&& 
b	cB>>S   77>>'"D$&&&d""" 
1	2B>>S   77>>'"DD   $&&&$&&& 
1	2B>>S   77>>'"D$$$d"""d""" 
<	=B>>S   77>>'"Dd"""$&&& 
<	=B>>S   77>>'"D$&&&d""" 
<	=B>>S   77>>'"Dd"""$&&& 
<	=B>>S   77>>'"D$&&&d""" 
L	MB>>S   77>>'"Dd"""$&&& 
L	MB>>S   77>>'"D$&&&d""" 
1	2B>>S   77>>'"DD   $&&&$&&& 
1	2B>>S   77>>'"D$$$d"""d"""k 	Nb 	RV 	SX 	T| 	S 	W 	Ws1   3AM:AMAM#AM()AM-AM2AM7c                     t               \  } }}t        |      \  }} |dd      j                           |dd      j                           |dd      j                          |j                         j	                         dk(  sJ t        |d      }|j                  |       |j                  d	d d d d       \  }}|d	   j                  dk(  sJ |d   j                  dk(  sJ |d   j                  dk(  sJ d
dg}t        ||d      }|j                  |       |j                  d	d d d d       \  }}t        |      dk(  sJ |d	   j                  dk(  sJ |d   j                  dk(  sJ |d   j                  dk(  sJ y )Ncr	   bar}   r{   r8   )column_default_sortr   )r9   F)r8   Fm1_2)r   r   )
r
   r_   r~   r   r   r   r   get_listr8   r   )	r   r-   r   M1_r   r   orderview2s	            r   test_default_sortr   W  sq   WNCU"EBsAJOOsAJOOsAJOO99;!###27;D	NN4mmAtT46GAt7==C7==C7==C /0EBEFKE	NN5nnQdD$7GAtt9>>7==C7==C7==Cr    c                     t               \  } }}t        |      \  }}t        |dt        j                  d      i      }|j                  |       | j                         }|j                  d      }|j                  dk(  sJ |j                  j                  d      }d|v sJ |j                  d      }	|j                  d      }
|
|	k  sJ y )Nextra_fieldzExtra Field)form_extra_fieldsr   r   r   r   )r
   r_   r   r   r   r   r   r   r   r   r   find)r   r-   r   r?   r   r   r   r   r   pos1pos2s              r   test_extra_fieldsr   w  s    WNCUb!IFA6--m<
D 
NN4__F	(	)B>>S    77>>'"DD   99]#D99WD$;;r    c                     t               \  } }} G d dt        j                        }t        |      \  }}t	        ||      }|j                  |       t        |j                  d      sJ |j                         }t        ||      sJ y )Nc                       e Zd Zy)'test_custom_form_base.<locals>.TestFormN)r!   r"   r#   r7   r    r   TestFormr     s    r    r   )form_base_classr8   )
r
   r   BaseFormr_   r   r   hasattrr   create_form
isinstance)r   r-   r   r   r?   r   r   r   s           r   test_custom_form_baser     s    WNCU4==  b!IFA D 
NN44**G444""$Kk8,,,r    c                     t               \  } } G fddt        j                        } G d d|      }|j                          ddt	        j
                  d      gii}t        ||      }|j                  |       |j                         }t        |j                  j                        dk(  sJ |j                         }t        |j                  j                        dk(  sJ y )	Nc                   &    e Zd Z G  fdd      Zy)!test_form_args.<locals>.BaseModelc                       e Zd ZW  Zy)&test_form_args.<locals>.BaseModel.MetaNr*   r,   s   r   r.   r     r/   r    r.   Nr0   r,   s   r   r1   r     r2   r    r1   c                   2    e Zd Z ej                  d      Zy)test_form_args.<locals>.ModelFrC   N)r!   r"   r#   rI   rJ   testr7   r    r   r]   r    s    vU+r    r]   r  r   )r   r}   )r
   rI   r]   r^   r   Regexpr   r   r   r   r  	edit_form)	r   r   r1   r]   shared_form_argsr   r   r  r-   s	           @r   test_form_argsr    s    WNCUFLL ,	 , 

0A0A&0I/J KL5,<=D	NN4 ""$K{**+q000 Iy~~(()Q...r    c                     t               \  } } G fddt        j                        } G d d|       G fdd|      }j                          |j                          t	        |ddd	d
ii      }|j                  |       d|j                  v sJ  dd
      }|j                           dd
      }|j                          |j                  d   }|j                  |j                        }|j                  |j                  k(  sJ |j                  d      }	t        |	      dk(  sJ |	d   j                  |j                  k(  sJ |j                  d      }	t        |	      dk(  sJ |	d   j                  dk(  sJ |j                         }
|
j                  j                  j                   dk(  sJ | j#                  d      5  d |
j                         vsJ ||
j                  _        dt'        |j                        z   |
j                         v sdt'        |j                        z  sJ dt'        |j                        z   |
j                         v sJ 	 d d d        | j)                         }|j+                  d      }|j$                  d|j                  z  k(  sJ |j-                  ddt'        |j                        i       |j/                         j1                         }|J |j                  J |j                  j                  |j                  k(  sJ |j                  j                  dk(  sJ y # 1 sw Y   xY w)Nc                   &    e Zd Z G  fdd      Zy)test_ajax_fk.<locals>.BaseModelc                       e Zd ZW  Zy)$test_ajax_fk.<locals>.BaseModel.MetaNr*   r,   s   r   r.   r    r/   r    r.   Nr0   r,   s   r   r1   r
    r2   r    r1   c                   ^    e Zd Z ej                  d      Z ej                  d      Zd Zy)test_ajax_fk.<locals>.Model1r@   rW   c                     | j                   S r   rF   rG   s    r   rH   z$test_ajax_fk.<locals>.Model1.__str__  s    ::r    N)r!   r"   r#   rI   rJ   r8   r9   rH   r7   r    r   r?   r    s+       B/   B/	r    r?   c                   4    e Zd Z ej                  W        Zy)test_ajax_fk.<locals>.Model2N)r!   r"   r#   rI   r[   r\   )r?   s   r   rV   r    s    '''/r    rV   r   r\   r   r   )r   form_ajax_refsfirstrE   foobarfirr	   r   AjaxSelectFieldz/admin/view/zvalue=""z#data-json="[%s, &quot;first&quot;]"z!data-json="[%s, &#34;first&#34;]"z
value="%s"z./admin/view/ajax/lookup/?name=model1&query=foos   [[%d, "foo"]]z/admin/view/new/r   )r
   rI   r]   r^   r   r   _form_ajax_refsr~   get_oner   r8   r   r   r   r\   r   r!   test_request_contextr   r   r   r   r   r   r  )r   r   r1   rV   r   r   model2loadermdlitemsr   r   reqr?   r-   s                @@r   test_ajax_fkr     s   WNCUFLL  0 0 
,
D 
NN4,,,,,-E	JJL&/F
KKM !!),F
..
"C99###OOF#Eu:??8;;%(("""OOF#Eu:??8>>V### D;;  ))-????		!	!.	1 E+$++-/// 6EHH9MMQ\QUQ\Q\Q^^4z%((7KK	M Lz%((33{t{{}DDDE __F
**F
GC88'&))3333 KK")Z5I)JKK
--/


!C??::!!!::==EHH$$$::x'''+E Es   
BM  M	c                  \   t               \  } }}t        |      \  }}t        |dddgdd      }|j                  |       t	        d      D ]  }t        ||        | j                         }|j                  d      }|j                  j                  d	      }	|j                  d
k(  sJ d|	k(  sJ t        |dddgd      }|j                  |       |j                  d      }|j                  j                  d	      }	|j                  d
k(  sJ t        |	j                               dkD  sJ y )NTr8   r9   r}   row_limit_2)
can_exportcolumn_listexport_max_rowsr   r   z/admin/row_limit_2/export/csv/r   r   z?Test1,Test2
test1_val_1,test2_val_1
test1_val_2,test2_val_2
no_row_limit)r#  r$  r   z/admin/no_row_limit/export/csv/   )r
   r_   r   r   ranger   r   r   r   r   r   r   
splitlines)
r   r-   r   r?   rV   r   xr   r   r   s
             r   test_export_csvr+    s5   WNCU"2&NFF6d(/'91$13D 
NN41X    __F 
4	5B77>>'"D>>S   &)-. . . 6d(/'9$24D 
NN4 
5	6B77>>'"D>>S   t !B&&&r    )flask_admin._compatr   rI   wtformsr   r   flask_adminr   r   flask_admin.contrib.peeweer   rE   r
   r   r   r   r   r_   r   r   r   r   r   r   r   r   r  r   r+  r7   r    r   <module>r0     st    *  &  ) 0  ) )	=i 	=5pQ*E(PH!V2jc#L @4-(/4L(^ 'r    