
    恕f                     ~    d dl mZ  G d de      Z G d de      Z G d de      Z G d d	e      Z G d
 de      Zy)    )url_forc                   T    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zy)BaseMenuz
        Base menu item
    Nc                 n    || _         ||nd| _        || _        || _        || _        d | _        g | _        y )N )name
class_name	icon_type
icon_valuetargetparent	_children)selfr   r	   r
   r   r   s         O/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/flask_admin/menu.py__init__zBaseMenu.__init__   s:    	(2(>*B"$    c                 H    | |_         | j                  j                  |       y N)r   r   append)r   menus     r   	add_childzBaseMenu.add_child   s    d#r   c                     t               r   )NotImplementedErrorr   s    r   get_urlzBaseMenu.get_url   s    !##r   c                      yNF r   s    r   is_categoryzBaseMenu.is_category   s    r   c                 L    | j                   D ]  }|j                  |      s y yNTF)r   	is_active)r   viewcs      r   r"   zBaseMenu.is_active   s)     	A{{4 	 r   c                     | j                   S r   )r	   r   s    r   get_class_namezBaseMenu.get_class_name$       r   c                     | j                   S r   )r
   r   s    r   get_icon_typezBaseMenu.get_icon_type'   s    ~~r   c                     | j                   S r   )r   r   s    r   get_icon_valuezBaseMenu.get_icon_value*   r'   r   c                      yNTr   r   s    r   
is_visiblezBaseMenu.is_visible-       r   c                      yr-   r   r   s    r   is_accessiblezBaseMenu.is_accessible0   r/   r   c                     | j                   D cg c]&  }|j                         s|j                         s%|( c}S c c}w r   )r   r1   r.   r   r$   s     r   get_childrenzBaseMenu.get_children3   s+    >>RaQ__->1<<>RRRs   ===)NNNN)__name__
__module____qualname____doc__r   r   r   r   r"   r&   r)   r+   r.   r1   r4   r   r   r   r   r      s?    $
$Sr   r   c                   (    e Zd ZdZd Zd Zd Zd Zy)MenuCategoryz!
        Menu category item.
    c                      y r   r   r   s    r   r   zMenuCategory.get_url;   r/   r   c                      yr-   r   r   s    r   r   zMenuCategory.is_category>   r/   r   c                 J    | j                   D ]  }|j                         s y yr!   )r   r.   r3   s     r   r.   zMenuCategory.is_visibleA   s&     	A||~	 r   c                 J    | j                   D ]  }|j                         s y yr!   )r   r1   r3   s     r   r1   zMenuCategory.is_accessibleH   s'     	A 	 r   N)r5   r6   r7   r8   r   r   r.   r1   r   r   r   r:   r:   7   s    r   r:   c                   @     e Zd ZdZd fd	Zd Z fdZd Zd Z xZ	S )MenuViewz"
        Admin view menu item
    c                     t         t        |   ||j                  |j                  |j
                         || _        || _        d | _        | |_	        y )N)r	   r
   r   )
superr@   r   menu_class_namemenu_icon_typemenu_icon_value_view_cache_cached_urlr   )r   r   r#   cache	__class__s       r   r   zMenuView.__init__T   sT    h&t262F2F151D1D262F2F 	' 	H
 
	r   c                    | j                   y | j                  r| j                  S | j                   j                  | j                   j                  d| j                   j                        }| j
                  r|| _        |S )N.)rF   rH   r   endpoint_default_viewrG   )r   urls     r   r   zMenuView.get_url`   se    ::###jj  DJJ,?,?AYAY!Z[;;"D
r   c                 J    || j                   k(  ryt        t        |   |      S r-   )rF   rB   r@   r"   )r   r#   rJ   s     r   r"   zMenuView.is_activen   s$    4::Xt.t44r   c                 P    | j                   y| j                   j                         S r   )rF   r.   r   s    r   r.   zMenuView.is_visiblet   s"    ::zz$$&&r   c                 P    | j                   y| j                   j                         S r   )rF   r1   r   s    r   r1   zMenuView.is_accessiblez   s"    ::zz''))r   r-   )
r5   r6   r7   r8   r   r   r"   r.   r1   __classcell__rJ   s   @r   r@   r@   P   s!    
5'*r   r@   c                   .     e Zd ZdZ	 	 d fd	Zd Z xZS )MenuLinkz
        Link item
    c	                 ^    t         t        |   |||||       || _        || _        || _        y r   )rB   rV   r   categoryrO   rM   )
r   r   rO   rM   rX   r	   r
   r   r   rJ   s
            r   r   zMenuLink.__init__   s0    h&tZJPVW  r   c                 H    | j                   xs t        | j                        S r   )rO   r   rM   r   s    r   r   zMenuLink.get_url   s    xx174==11r   )NNNNNNN)r5   r6   r7   r8   r   r   rS   rT   s   @r   rV   rV      s     QU9=!2r   rV   c                        e Zd Z fdZ xZS )SubMenuCategoryc                 V    t        t        | 
  |i | | xj                  dz  c_        y )Nz dropdown-submenu dropright)rB   r[   r   r	   )r   argskwargsrJ   s      r   r   zSubMenuCategory.__init__   s&    ot-t>v>88r   )r5   r6   r7   r   rS   rT   s   @r   r[   r[      s    9 9r   r[   N)flaskr   objectr   r:   r@   rV   r[   r   r   r   <module>ra      sH    0Sv 0Sf8 2.*x .*b2x 2"9l 9r   