U
    ȍb2                     @   sr  U d dl 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
mZ eeZddddddd	d
ddg g ddg g g i ddddddddddddi ddZeeef ed< dddddddddddddddddddddddddddd d!Zeeef ed"< d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9Zd:Zd;d<d=d>d?d@ZeedAdBdCZedDdEdFZedDdGdHZdS )I    N)DictAny)settings)static   )get_admin_urlget_model_metaz$vendor/adminlte/img/AdminLTELogo.pngz
img-circleZWelcome Tzfas fa-users-cogzfas fa-userzfas fa-users)authz	auth.userz
auth.Groupzfas fa-chevron-circle-rightzfas fa-circleFhorizontal_tabs)Z
site_titleZsite_headerZ
site_brand	site_logoZsite_logo_classes	site_iconZwelcome_sign	copyrightsearch_modelZuser_avatarZtopmenu_linksZusermenu_linksZshow_sidebarZnavigation_expanded	hide_appshide_modelsZorder_with_respect_toZcustom_linksiconsZdefault_icon_parentsZdefault_icon_childrenZrelated_modal_activeZ
custom_cssZ	custom_jsZuse_google_fonts_cdnZshow_ui_builderZchangeform_formatchangeform_format_overridesZlanguage_chooserDEFAULT_SETTINGSzaccent-primaryznavbar-white navbar-lightzsidebar-dark-primarydefaultzbtn-outline-primaryzbtn-outline-secondaryzbtn-outline-infozbtn-outline-warningzbtn-outline-dangerzbtn-outline-success)ZprimaryZ	secondaryinfowarningZdangersuccess)navbar_small_textfooter_small_textbody_small_textbrand_small_textbrand_colouraccentnavbarno_navbar_bordernavbar_fixedlayout_boxedfooter_fixedsidebar_fixedsidebarsidebar_nav_small_textsidebar_disable_expandsidebar_nav_child_indentsidebar_nav_compact_stylesidebar_nav_legacy_stylesidebar_nav_flat_stylethemedark_mode_themebutton_classesDEFAULT_UI_TWEAKSz+vendor/bootswatch/default/bootstrap.min.cssz,vendor/bootswatch/cerulean/bootstrap.min.cssz)vendor/bootswatch/cosmo/bootstrap.min.cssz*vendor/bootswatch/flatly/bootstrap.min.cssz+vendor/bootswatch/journal/bootstrap.min.cssz*vendor/bootswatch/litera/bootstrap.min.cssz)vendor/bootswatch/lumen/bootstrap.min.cssz'vendor/bootswatch/lux/bootstrap.min.cssz+vendor/bootswatch/materia/bootstrap.min.cssz)vendor/bootswatch/minty/bootstrap.min.cssz)vendor/bootswatch/pulse/bootstrap.min.cssz-vendor/bootswatch/sandstone/bootstrap.min.cssz+vendor/bootswatch/simplex/bootstrap.min.cssz+vendor/bootswatch/sketchy/bootstrap.min.cssz,vendor/bootswatch/spacelab/bootstrap.min.cssz*vendor/bootswatch/united/bootstrap.min.cssz(vendor/bootswatch/yeti/bootstrap.min.cssz*vendor/bootswatch/darkly/bootstrap.min.cssz*vendor/bootswatch/cyborg/bootstrap.min.cssz)vendor/bootswatch/slate/bootstrap.min.cssz)vendor/bootswatch/solar/bootstrap.min.cssz-vendor/bootswatch/superhero/bootstrap.min.css)r   ZceruleanZcosmoZflatlyZjournalZliteraZlumenZluxZmateriaZmintyZpulseZ	sandstoneZsimplexZsketchyZspacelabZunitedZyetidarklycyborgslatesolar	superhero)r0   r1   r2   r3   r4   zjazzmin/includes/single.htmlzjazzmin/includes/carousel.htmlz!jazzmin/includes/collapsible.htmlz%jazzmin/includes/horizontal_tabs.htmlz#jazzmin/includes/vertical_tabs.html)ZsingleZcarouselZcollapsibler   Zvertical_tabs)jazzmin_settingsreturnc                 C   s$   | d  d\}}dj|| dS )z
    Get a search model string for reversing an admin url.

    Ensure the model name is lower cased but remain the app name untouched.
    r   .z{app}.{model_name})app
model_name)splitformatlower)r5   r8   r9    r=   4/tmp/pip-unpacked-wheel-o69wxf3u/jazzmin/settings.pyget_search_model_string   s    r?   )r6   c                  C   s>  t t} dd ttdi  D }| | | d rtt| | d< t	| d }|rf|j
 | d< n| d dd d	 | d< t| d
 tkr| d
 g| d
< dd | d
 D | d
< t| d tkr| d g| d< dd | d D | d< dd | di  D | d< | d p| d | d< dd | di  D | d< | S )Nc                 S   s   i | ]\}}|d k	r||qS )Nr=   .0xyr=   r=   r>   
<dictcomp>   s       z get_settings.<locals>.<dictcomp>ZJAZZMIN_SETTINGSr   Z
search_urlZsearch_namer7   sr   c                 S   s   g | ]}|  qS r=   r<   rA   rB   r=   r=   r>   
<listcomp>   s     z get_settings.<locals>.<listcomp>r   c                 S   s   g | ]}|  qS r=   rG   rH   r=   r=   r>   rI      s     c                 S   s   i | ]\}}|  |  qS r=   rG   r@   r=   r=   r>   rD      s      r   r   r   c                 S   s   i | ]\}}|  |  qS r=   rG   r@   r=   r=   r>   rD      s     r   )copydeepcopyr   getattrr   itemsupdater   r?   r   Zverbose_name_pluraltitler:   typestrget)r5   Zuser_settingsZ
model_metar=   r=   r>   get_settings   s*    


rS   c            	         s  t t} | ttdi  dd |  D   drP dd   dd  ddddddd	d
ddddddddd}| D ]\}}| kr~| |< q~t	t	d fdd} d }|t
krtd|t
  d} dd }|r|tkrtd| d}d|}|tkr"|d7 }| |tt
| d|d d!|d"d#d$|d%d&ddd'd| |d(|d)d*d+d,d-|d.d/|d0 d1 d2
}|r|tt
| d|d< |S )3NZJAZZMIN_UI_TWEAKSc                 S   s   i | ]\}}|d kr||qS ))Nr	   Fr=   r@   r=   r=   r>   rD      s       z!get_ui_tweaks.<locals>.<dictcomp>r"   r!   r#   ztext-smzborder-bottom-0zsidebar-no-expandznav-child-indentznav-compactz
nav-legacyznav-flatzlayout-boxedzlayout-fixedzlayout-navbar-fixedzlayout-footer-fixedz
sticky-top)r   r   r   r   r&   r    r'   r(   r)   r*   r+   r"   r$   r!   r#   actions_sticky_top)argsr6   c                     s   d  fdd| D  S )N c                    s   g | ]}  |d qS )r	   )rR   )rA   argZtweaksr=   r>   rI     s     z2get_ui_tweaks.<locals>.classes.<locals>.<listcomp>)joinstrip)rU   rX   r=   r>   classes  s    zget_ui_tweaks.<locals>.classesr,   z!{} not found in {}, using defaultr   r-   z${} is not a dark theme, using darklyr0   z	 theme-{}z
 dark-mode)namesrcr%   r'   r   r    r   r   r   r$   rT   r&   r+   r*   r(   r)   r   r   r   r.   )
rawr,   Zsidebar_classesZnavbar_classesZbody_classesZactions_classesZsidebar_list_classesZbrand_classesZfooter_classesr.   )rJ   rK   r/   rN   rL   r   rM   rR   poprQ   THEMESloggerr   r;   keysDARK_THEMESr   )	Z
raw_tweaksZbool_mapkeyvaluer[   r,   r-   Ztheme_body_classesretr=   rX   r>   get_ui_tweaks   s    





     rg   )rJ   loggingtypingr   r   Zdjango.confr   Zdjango.templatetags.staticr   utilsr   r   	getLogger__name__ra   r   rQ   __annotations__r/   r`   rc   ZCHANGEFORM_TEMPLATESr?   rS   rg   r=   r=   r=   r>   <module>   s    


\8	%