├── .devcontainer ├── devcontainer.json └── tests │ ├── Dockerfile │ ├── devcontainer.json │ └── docker-compose.yaml ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── config.yml │ └── feature-request.md ├── dependabot.yml ├── pull_request_template.md ├── release.yml └── workflows │ ├── lock.yaml │ ├── publish.yaml │ └── tests.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── AUTHORS ├── LICENSE ├── LICENSE.txt ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.md ├── admin └── __init__.py ├── babel ├── README.md ├── admin.pot ├── babel.bat ├── babel.ini ├── babel.sh ├── crowdin_pull.sh └── crowdin_push.sh ├── doc ├── _static │ ├── flask-admin.css │ ├── flask-admin.png │ ├── logo.png │ └── logo_huge.png ├── _templates │ ├── sidebarintro.html │ └── toc.html ├── adding_a_new_model_backend.rst ├── advanced.rst ├── api │ ├── i18n.rst │ ├── index.rst │ ├── mod_actions.rst │ ├── mod_base.rst │ ├── mod_contrib_fileadmin.rst │ ├── mod_contrib_peewee.rst │ ├── mod_contrib_pymongo.rst │ ├── mod_contrib_sqla.rst │ ├── mod_contrib_sqla_fields.rst │ ├── mod_form.rst │ ├── mod_form_fields.rst │ ├── mod_form_rules.rst │ ├── mod_form_upload.rst │ ├── mod_helpers.rst │ ├── mod_model.rst │ ├── mod_model_template.rst │ └── mod_tools.rst ├── changelog.rst ├── conf.py ├── favicon.ico ├── index.rst └── introduction.rst ├── examples ├── auth-flask-login │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── requirements.txt │ └── templates │ │ ├── admin │ │ └── index.html │ │ ├── index.html │ │ └── my_master.html ├── auth │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── config.py │ ├── requirements.txt │ └── templates │ │ ├── admin │ │ └── index.html │ │ ├── index.html │ │ ├── my_master.html │ │ └── security │ │ ├── _macros.html │ │ ├── _menu.html │ │ ├── _messages.html │ │ ├── login_user.html │ │ └── register_user.html ├── azure-blob-storage │ ├── README.md │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── babel │ ├── README.rst │ ├── app.py │ └── requirements.txt ├── bootstrap4 │ ├── README.rst │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── csp-nonce │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── requirements.txt │ └── templates │ │ └── admin │ │ └── index.html ├── custom-layout │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── requirements.txt │ ├── static │ │ └── layout.css │ └── templates │ │ ├── admin │ │ └── index.html │ │ ├── create.html │ │ ├── edit.html │ │ ├── layout.html │ │ └── list.html ├── datetime-timezone │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── requirements.txt │ └── static │ │ └── js │ │ └── timezone.js ├── forms-files-images │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── files │ │ ├── 3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05.jpg │ │ ├── 3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05_thumb.jpg │ │ ├── buffalo.jpg │ │ ├── buffalo_thumb.jpg │ │ ├── elephant.jpg │ │ ├── elephant_thumb.jpg │ │ ├── example_1.pdf │ │ ├── example_2.pdf │ │ ├── example_3.pdf │ │ ├── leopard.jpg │ │ ├── leopard_thumb.jpg │ │ ├── lion.jpg │ │ ├── lion_thumb.jpg │ │ ├── rhino.jpg │ │ └── rhino_thumb.jpg │ ├── requirements.txt │ └── templates │ │ ├── admin │ │ └── index.html │ │ ├── create_page.html │ │ ├── create_user.html │ │ ├── edit_page.html │ │ ├── edit_user.html │ │ └── macros.html ├── geo_alchemy │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── config.py │ ├── requirements.txt │ └── templates │ │ └── admin │ │ └── index.html ├── host-matching │ ├── README.rst │ ├── app.py │ ├── requirements.txt │ └── templates │ │ ├── first.html │ │ ├── second.html │ │ └── third.html ├── methodview │ ├── README.rst │ ├── app.py │ ├── requirements.txt │ └── templates │ │ ├── methodtest.html │ │ └── test.html ├── multiple-admin-instances │ ├── README.rst │ ├── app.py │ ├── requirements.txt │ └── templates │ │ ├── first.html │ │ └── second.html ├── peewee │ ├── README.rst │ ├── app.py │ └── requirements.txt ├── pymongo │ ├── README.rst │ ├── app.py │ └── requirements.txt ├── s3 │ ├── README.md │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── simple │ ├── README.rst │ ├── __init__.py │ ├── app.py │ ├── requirements.txt │ └── templates │ │ ├── admin │ │ └── index.html │ │ ├── anotheradmin.html │ │ ├── myadmin.html │ │ └── test.html ├── sqla-association_proxy │ ├── README.rst │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── sqla-custom-inline-forms │ ├── README.rst │ ├── app.py │ ├── requirements.txt │ ├── static │ │ └── 7b1468ff-019a-44d1-b4bb-729e5a252899.jpg │ └── templates │ │ ├── field_list.html │ │ └── locations.html ├── sqla │ ├── README.rst │ ├── admin │ │ ├── __init__.py │ │ ├── config.py │ │ ├── data.py │ │ ├── main.py │ │ ├── models.py │ │ ├── static │ │ │ └── favicon.ico │ │ └── templates │ │ │ ├── admin │ │ │ └── index.html │ │ │ └── tree_list.html │ ├── app.py │ └── requirements.txt └── tinymongo │ ├── README.rst │ ├── app.py │ └── requirements.txt ├── flask_admin ├── __init__.py ├── _backwards.py ├── _compat.py ├── _types.py ├── actions.py ├── babel.py ├── base.py ├── blueprints.py ├── consts.py ├── contrib │ ├── __init__.py │ ├── fileadmin │ │ ├── __init__.py │ │ ├── azure.py │ │ └── s3.py │ ├── geoa │ │ ├── __init__.py │ │ ├── fields.py │ │ ├── form.py │ │ ├── typefmt.py │ │ ├── view.py │ │ └── widgets.py │ ├── peewee │ │ ├── __init__.py │ │ ├── ajax.py │ │ ├── filters.py │ │ ├── form.py │ │ ├── tools.py │ │ └── view.py │ ├── peeweemodel │ │ └── __init__.py │ ├── pymongo │ │ ├── __init__.py │ │ ├── filters.py │ │ ├── tools.py │ │ ├── typefmt.py │ │ └── view.py │ ├── rediscli.py │ ├── sqla │ │ ├── __init__.py │ │ ├── ajax.py │ │ ├── fields.py │ │ ├── filters.py │ │ ├── form.py │ │ ├── tools.py │ │ ├── typefmt.py │ │ ├── validators.py │ │ ├── view.py │ │ └── widgets.py │ └── sqlamodel │ │ └── __init__.py ├── form │ ├── __init__.py │ ├── fields.py │ ├── rules.py │ ├── upload.py │ ├── validators.py │ └── widgets.py ├── helpers.py ├── menu.py ├── model │ ├── __init__.py │ ├── ajax.py │ ├── base.py │ ├── fields.py │ ├── filters.py │ ├── form.py │ ├── helpers.py │ ├── template.py │ ├── typefmt.py │ └── widgets.py ├── static │ ├── admin │ │ ├── css │ │ │ └── bootstrap4 │ │ │ │ ├── admin.css │ │ │ │ ├── rediscli.css │ │ │ │ └── submenu.css │ │ └── js │ │ │ ├── actions.js │ │ │ ├── bs4_filters.js │ │ │ ├── bs4_modal.js │ │ │ ├── details_filter.js │ │ │ ├── filters.js │ │ │ ├── form.js │ │ │ ├── helpers.js │ │ │ └── rediscli.js │ ├── bootstrap │ │ └── bootstrap4 │ │ │ ├── bootstrap.min.css │ │ │ ├── bootstrap.min.js │ │ │ ├── css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap.min.css │ │ │ ├── bootstrap.min.css.map │ │ │ └── font-awesome.min.css │ │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ ├── bootstrap.min.js.map │ │ │ └── popper.min.js │ │ │ ├── popper.min.js │ │ │ └── swatch │ │ │ ├── cerulean │ │ │ └── bootstrap.min.css │ │ │ ├── cosmo │ │ │ └── bootstrap.min.css │ │ │ ├── cyborg │ │ │ └── bootstrap.min.css │ │ │ ├── darkly │ │ │ └── bootstrap.min.css │ │ │ ├── default │ │ │ └── bootstrap.min.css │ │ │ ├── flatly │ │ │ └── bootstrap.min.css │ │ │ ├── journal │ │ │ └── bootstrap.min.css │ │ │ ├── litera │ │ │ └── bootstrap.min.css │ │ │ ├── lumen │ │ │ └── bootstrap.min.css │ │ │ ├── lux │ │ │ └── bootstrap.min.css │ │ │ ├── materia │ │ │ └── bootstrap.min.css │ │ │ ├── minty │ │ │ └── bootstrap.min.css │ │ │ ├── pulse │ │ │ └── bootstrap.min.css │ │ │ ├── sandstone │ │ │ └── bootstrap.min.css │ │ │ ├── simplex │ │ │ └── bootstrap.min.css │ │ │ ├── sketchy │ │ │ └── bootstrap.min.css │ │ │ ├── slate │ │ │ └── bootstrap.min.css │ │ │ ├── solar │ │ │ └── bootstrap.min.css │ │ │ ├── spacelab │ │ │ └── bootstrap.min.css │ │ │ ├── superhero │ │ │ └── bootstrap.min.css │ │ │ ├── united │ │ │ └── bootstrap.min.css │ │ │ └── yeti │ │ │ └── bootstrap.min.css │ └── vendor │ │ ├── bootstrap-daterangepicker │ │ ├── README.md │ │ ├── daterangepicker-bs4.css │ │ └── daterangepicker.js │ │ ├── bootstrap4 │ │ ├── alert.js │ │ ├── alert.js.map │ │ ├── button.js │ │ ├── button.js.map │ │ ├── carousel.js │ │ ├── carousel.js.map │ │ ├── collapse.js │ │ ├── collapse.js.map │ │ ├── dropdown.js │ │ ├── dropdown.js.map │ │ ├── index.js │ │ ├── index.js.map │ │ ├── modal.js │ │ ├── modal.js.map │ │ ├── popover.js │ │ ├── popover.js.map │ │ ├── scrollspy.js │ │ ├── scrollspy.js.map │ │ ├── tab.js │ │ ├── tab.js.map │ │ ├── toast.js │ │ ├── toast.js.map │ │ ├── tooltip.js │ │ ├── tooltip.js.map │ │ ├── util.js │ │ └── util.js.map │ │ ├── fontawesome-free-5.1.0-web │ │ ├── css │ │ │ ├── all.css │ │ │ ├── brands.css │ │ │ ├── fontawesome.css │ │ │ ├── regular.css │ │ │ ├── solid.css │ │ │ ├── svg-with-js.css │ │ │ ├── v4-shims.css │ │ │ └── v4-shims.min.css │ │ ├── js │ │ │ ├── all.js │ │ │ ├── brands.js │ │ │ ├── fontawesome.js │ │ │ ├── regular.js │ │ │ ├── solid.js │ │ │ └── v4-shims.js │ │ ├── less │ │ │ ├── _animated.less │ │ │ ├── _bordered-pulled.less │ │ │ ├── _core.less │ │ │ ├── _fixed-width.less │ │ │ ├── _icons.less │ │ │ ├── _larger.less │ │ │ ├── _list.less │ │ │ ├── _mixins.less │ │ │ ├── _rotated-flipped.less │ │ │ ├── _screen-reader.less │ │ │ ├── _shims.less │ │ │ ├── _stacked.less │ │ │ ├── _variables.less │ │ │ ├── fa-brands.less │ │ │ ├── fa-regular.less │ │ │ ├── fa-solid.less │ │ │ ├── fontawesome.less │ │ │ └── v4-shims.less │ │ ├── metadata │ │ │ ├── categories.yml │ │ │ ├── icons.json │ │ │ ├── icons.yml │ │ │ ├── shims.json │ │ │ ├── shims.yml │ │ │ └── sponsors.yml │ │ ├── scss │ │ │ ├── _animated.scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _core.scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _icons.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _mixins.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _shims.scss │ │ │ ├── _stacked.scss │ │ │ ├── _variables.scss │ │ │ ├── fa-brands.scss │ │ │ ├── fa-regular.scss │ │ │ ├── fa-solid.scss │ │ │ ├── fontawesome.scss │ │ │ └── v4-shims.scss │ │ ├── sprites │ │ │ ├── brands.svg │ │ │ ├── regular.svg │ │ │ └── solid.svg │ │ ├── svgs │ │ │ ├── brands │ │ │ │ ├── 500px.svg │ │ │ │ ├── accessible-icon.svg │ │ │ │ ├── accusoft.svg │ │ │ │ ├── adn.svg │ │ │ │ ├── adversal.svg │ │ │ │ ├── affiliatetheme.svg │ │ │ │ ├── algolia.svg │ │ │ │ ├── amazon-pay.svg │ │ │ │ ├── amazon.svg │ │ │ │ ├── amilia.svg │ │ │ │ ├── android.svg │ │ │ │ ├── angellist.svg │ │ │ │ ├── angrycreative.svg │ │ │ │ ├── angular.svg │ │ │ │ ├── app-store-ios.svg │ │ │ │ ├── app-store.svg │ │ │ │ ├── apper.svg │ │ │ │ ├── apple-pay.svg │ │ │ │ ├── apple.svg │ │ │ │ ├── asymmetrik.svg │ │ │ │ ├── audible.svg │ │ │ │ ├── autoprefixer.svg │ │ │ │ ├── avianex.svg │ │ │ │ ├── aviato.svg │ │ │ │ ├── aws.svg │ │ │ │ ├── bandcamp.svg │ │ │ │ ├── behance-square.svg │ │ │ │ ├── behance.svg │ │ │ │ ├── bimobject.svg │ │ │ │ ├── bitbucket.svg │ │ │ │ ├── bitcoin.svg │ │ │ │ ├── bity.svg │ │ │ │ ├── black-tie.svg │ │ │ │ ├── blackberry.svg │ │ │ │ ├── blogger-b.svg │ │ │ │ ├── blogger.svg │ │ │ │ ├── bluetooth-b.svg │ │ │ │ ├── bluetooth.svg │ │ │ │ ├── btc.svg │ │ │ │ ├── buromobelexperte.svg │ │ │ │ ├── buysellads.svg │ │ │ │ ├── cc-amazon-pay.svg │ │ │ │ ├── cc-amex.svg │ │ │ │ ├── cc-apple-pay.svg │ │ │ │ ├── cc-diners-club.svg │ │ │ │ ├── cc-discover.svg │ │ │ │ ├── cc-jcb.svg │ │ │ │ ├── cc-mastercard.svg │ │ │ │ ├── cc-paypal.svg │ │ │ │ ├── cc-stripe.svg │ │ │ │ ├── cc-visa.svg │ │ │ │ ├── centercode.svg │ │ │ │ ├── chrome.svg │ │ │ │ ├── cloudscale.svg │ │ │ │ ├── cloudsmith.svg │ │ │ │ ├── cloudversify.svg │ │ │ │ ├── codepen.svg │ │ │ │ ├── codiepie.svg │ │ │ │ ├── connectdevelop.svg │ │ │ │ ├── contao.svg │ │ │ │ ├── cpanel.svg │ │ │ │ ├── creative-commons-by.svg │ │ │ │ ├── creative-commons-nc-eu.svg │ │ │ │ ├── creative-commons-nc-jp.svg │ │ │ │ ├── creative-commons-nc.svg │ │ │ │ ├── creative-commons-nd.svg │ │ │ │ ├── creative-commons-pd-alt.svg │ │ │ │ ├── creative-commons-pd.svg │ │ │ │ ├── creative-commons-remix.svg │ │ │ │ ├── creative-commons-sa.svg │ │ │ │ ├── creative-commons-sampling-plus.svg │ │ │ │ ├── creative-commons-sampling.svg │ │ │ │ ├── creative-commons-share.svg │ │ │ │ ├── creative-commons.svg │ │ │ │ ├── css3-alt.svg │ │ │ │ ├── css3.svg │ │ │ │ ├── cuttlefish.svg │ │ │ │ ├── d-and-d.svg │ │ │ │ ├── dashcube.svg │ │ │ │ ├── delicious.svg │ │ │ │ ├── deploydog.svg │ │ │ │ ├── deskpro.svg │ │ │ │ ├── deviantart.svg │ │ │ │ ├── digg.svg │ │ │ │ ├── digital-ocean.svg │ │ │ │ ├── discord.svg │ │ │ │ ├── discourse.svg │ │ │ │ ├── dochub.svg │ │ │ │ ├── docker.svg │ │ │ │ ├── draft2digital.svg │ │ │ │ ├── dribbble-square.svg │ │ │ │ ├── dribbble.svg │ │ │ │ ├── dropbox.svg │ │ │ │ ├── drupal.svg │ │ │ │ ├── dyalog.svg │ │ │ │ ├── earlybirds.svg │ │ │ │ ├── ebay.svg │ │ │ │ ├── edge.svg │ │ │ │ ├── elementor.svg │ │ │ │ ├── ember.svg │ │ │ │ ├── empire.svg │ │ │ │ ├── envira.svg │ │ │ │ ├── erlang.svg │ │ │ │ ├── ethereum.svg │ │ │ │ ├── etsy.svg │ │ │ │ ├── expeditedssl.svg │ │ │ │ ├── facebook-f.svg │ │ │ │ ├── facebook-messenger.svg │ │ │ │ ├── facebook-square.svg │ │ │ │ ├── facebook.svg │ │ │ │ ├── firefox.svg │ │ │ │ ├── first-order-alt.svg │ │ │ │ ├── first-order.svg │ │ │ │ ├── firstdraft.svg │ │ │ │ ├── flickr.svg │ │ │ │ ├── flipboard.svg │ │ │ │ ├── fly.svg │ │ │ │ ├── font-awesome-alt.svg │ │ │ │ ├── font-awesome-flag.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── font-awesome.svg │ │ │ │ ├── fonticons-fi.svg │ │ │ │ ├── fonticons.svg │ │ │ │ ├── fort-awesome-alt.svg │ │ │ │ ├── fort-awesome.svg │ │ │ │ ├── forumbee.svg │ │ │ │ ├── foursquare.svg │ │ │ │ ├── free-code-camp.svg │ │ │ │ ├── freebsd.svg │ │ │ │ ├── fulcrum.svg │ │ │ │ ├── galactic-republic.svg │ │ │ │ ├── galactic-senate.svg │ │ │ │ ├── get-pocket.svg │ │ │ │ ├── gg-circle.svg │ │ │ │ ├── gg.svg │ │ │ │ ├── git-square.svg │ │ │ │ ├── git.svg │ │ │ │ ├── github-alt.svg │ │ │ │ ├── github-square.svg │ │ │ │ ├── github.svg │ │ │ │ ├── gitkraken.svg │ │ │ │ ├── gitlab.svg │ │ │ │ ├── gitter.svg │ │ │ │ ├── glide-g.svg │ │ │ │ ├── glide.svg │ │ │ │ ├── gofore.svg │ │ │ │ ├── goodreads-g.svg │ │ │ │ ├── goodreads.svg │ │ │ │ ├── google-drive.svg │ │ │ │ ├── google-play.svg │ │ │ │ ├── google-plus-g.svg │ │ │ │ ├── google-plus-square.svg │ │ │ │ ├── google-plus.svg │ │ │ │ ├── google-wallet.svg │ │ │ │ ├── google.svg │ │ │ │ ├── gratipay.svg │ │ │ │ ├── grav.svg │ │ │ │ ├── gripfire.svg │ │ │ │ ├── grunt.svg │ │ │ │ ├── gulp.svg │ │ │ │ ├── hacker-news-square.svg │ │ │ │ ├── hacker-news.svg │ │ │ │ ├── hips.svg │ │ │ │ ├── hire-a-helper.svg │ │ │ │ ├── hooli.svg │ │ │ │ ├── hornbill.svg │ │ │ │ ├── hotjar.svg │ │ │ │ ├── houzz.svg │ │ │ │ ├── html5.svg │ │ │ │ ├── hubspot.svg │ │ │ │ ├── imdb.svg │ │ │ │ ├── instagram.svg │ │ │ │ ├── internet-explorer.svg │ │ │ │ ├── ioxhost.svg │ │ │ │ ├── itunes-note.svg │ │ │ │ ├── itunes.svg │ │ │ │ ├── java.svg │ │ │ │ ├── jedi-order.svg │ │ │ │ ├── jenkins.svg │ │ │ │ ├── joget.svg │ │ │ │ ├── joomla.svg │ │ │ │ ├── js-square.svg │ │ │ │ ├── js.svg │ │ │ │ ├── jsfiddle.svg │ │ │ │ ├── keybase.svg │ │ │ │ ├── keycdn.svg │ │ │ │ ├── kickstarter-k.svg │ │ │ │ ├── kickstarter.svg │ │ │ │ ├── korvue.svg │ │ │ │ ├── laravel.svg │ │ │ │ ├── lastfm-square.svg │ │ │ │ ├── lastfm.svg │ │ │ │ ├── leanpub.svg │ │ │ │ ├── less.svg │ │ │ │ ├── line.svg │ │ │ │ ├── linkedin-in.svg │ │ │ │ ├── linkedin.svg │ │ │ │ ├── linode.svg │ │ │ │ ├── linux.svg │ │ │ │ ├── lyft.svg │ │ │ │ ├── magento.svg │ │ │ │ ├── mailchimp.svg │ │ │ │ ├── mandalorian.svg │ │ │ │ ├── mastodon.svg │ │ │ │ ├── maxcdn.svg │ │ │ │ ├── medapps.svg │ │ │ │ ├── medium-m.svg │ │ │ │ ├── medium.svg │ │ │ │ ├── medrt.svg │ │ │ │ ├── meetup.svg │ │ │ │ ├── megaport.svg │ │ │ │ ├── microsoft.svg │ │ │ │ ├── mix.svg │ │ │ │ ├── mixcloud.svg │ │ │ │ ├── mizuni.svg │ │ │ │ ├── modx.svg │ │ │ │ ├── monero.svg │ │ │ │ ├── napster.svg │ │ │ │ ├── nimblr.svg │ │ │ │ ├── nintendo-switch.svg │ │ │ │ ├── node-js.svg │ │ │ │ ├── node.svg │ │ │ │ ├── npm.svg │ │ │ │ ├── ns8.svg │ │ │ │ ├── nutritionix.svg │ │ │ │ ├── odnoklassniki-square.svg │ │ │ │ ├── odnoklassniki.svg │ │ │ │ ├── old-republic.svg │ │ │ │ ├── opencart.svg │ │ │ │ ├── openid.svg │ │ │ │ ├── opera.svg │ │ │ │ ├── optin-monster.svg │ │ │ │ ├── osi.svg │ │ │ │ ├── page4.svg │ │ │ │ ├── pagelines.svg │ │ │ │ ├── palfed.svg │ │ │ │ ├── patreon.svg │ │ │ │ ├── paypal.svg │ │ │ │ ├── periscope.svg │ │ │ │ ├── phabricator.svg │ │ │ │ ├── phoenix-framework.svg │ │ │ │ ├── phoenix-squadron.svg │ │ │ │ ├── php.svg │ │ │ │ ├── pied-piper-alt.svg │ │ │ │ ├── pied-piper-hat.svg │ │ │ │ ├── pied-piper-pp.svg │ │ │ │ ├── pied-piper.svg │ │ │ │ ├── pinterest-p.svg │ │ │ │ ├── pinterest-square.svg │ │ │ │ ├── pinterest.svg │ │ │ │ ├── playstation.svg │ │ │ │ ├── product-hunt.svg │ │ │ │ ├── pushed.svg │ │ │ │ ├── python.svg │ │ │ │ ├── qq.svg │ │ │ │ ├── quinscape.svg │ │ │ │ ├── quora.svg │ │ │ │ ├── r-project.svg │ │ │ │ ├── ravelry.svg │ │ │ │ ├── react.svg │ │ │ │ ├── readme.svg │ │ │ │ ├── rebel.svg │ │ │ │ ├── red-river.svg │ │ │ │ ├── reddit-alien.svg │ │ │ │ ├── reddit-square.svg │ │ │ │ ├── reddit.svg │ │ │ │ ├── rendact.svg │ │ │ │ ├── renren.svg │ │ │ │ ├── replyd.svg │ │ │ │ ├── researchgate.svg │ │ │ │ ├── resolving.svg │ │ │ │ ├── rocketchat.svg │ │ │ │ ├── rockrms.svg │ │ │ │ ├── safari.svg │ │ │ │ ├── sass.svg │ │ │ │ ├── schlix.svg │ │ │ │ ├── scribd.svg │ │ │ │ ├── searchengin.svg │ │ │ │ ├── sellcast.svg │ │ │ │ ├── sellsy.svg │ │ │ │ ├── servicestack.svg │ │ │ │ ├── shirtsinbulk.svg │ │ │ │ ├── shopware.svg │ │ │ │ ├── simplybuilt.svg │ │ │ │ ├── sistrix.svg │ │ │ │ ├── sith.svg │ │ │ │ ├── skyatlas.svg │ │ │ │ ├── skype.svg │ │ │ │ ├── slack-hash.svg │ │ │ │ ├── slack.svg │ │ │ │ ├── slideshare.svg │ │ │ │ ├── snapchat-ghost.svg │ │ │ │ ├── snapchat-square.svg │ │ │ │ ├── snapchat.svg │ │ │ │ ├── soundcloud.svg │ │ │ │ ├── speakap.svg │ │ │ │ ├── spotify.svg │ │ │ │ ├── squarespace.svg │ │ │ │ ├── stack-exchange.svg │ │ │ │ ├── stack-overflow.svg │ │ │ │ ├── staylinked.svg │ │ │ │ ├── steam-square.svg │ │ │ │ ├── steam-symbol.svg │ │ │ │ ├── steam.svg │ │ │ │ ├── sticker-mule.svg │ │ │ │ ├── strava.svg │ │ │ │ ├── stripe-s.svg │ │ │ │ ├── stripe.svg │ │ │ │ ├── studiovinari.svg │ │ │ │ ├── stumbleupon-circle.svg │ │ │ │ ├── stumbleupon.svg │ │ │ │ ├── superpowers.svg │ │ │ │ ├── supple.svg │ │ │ │ ├── teamspeak.svg │ │ │ │ ├── telegram-plane.svg │ │ │ │ ├── telegram.svg │ │ │ │ ├── tencent-weibo.svg │ │ │ │ ├── themeco.svg │ │ │ │ ├── themeisle.svg │ │ │ │ ├── trade-federation.svg │ │ │ │ ├── trello.svg │ │ │ │ ├── tripadvisor.svg │ │ │ │ ├── tumblr-square.svg │ │ │ │ ├── tumblr.svg │ │ │ │ ├── twitch.svg │ │ │ │ ├── twitter-square.svg │ │ │ │ ├── twitter.svg │ │ │ │ ├── typo3.svg │ │ │ │ ├── uber.svg │ │ │ │ ├── uikit.svg │ │ │ │ ├── uniregistry.svg │ │ │ │ ├── untappd.svg │ │ │ │ ├── usb.svg │ │ │ │ ├── ussunnah.svg │ │ │ │ ├── vaadin.svg │ │ │ │ ├── viacoin.svg │ │ │ │ ├── viadeo-square.svg │ │ │ │ ├── viadeo.svg │ │ │ │ ├── viber.svg │ │ │ │ ├── vimeo-square.svg │ │ │ │ ├── vimeo-v.svg │ │ │ │ ├── vimeo.svg │ │ │ │ ├── vine.svg │ │ │ │ ├── vk.svg │ │ │ │ ├── vnv.svg │ │ │ │ ├── vuejs.svg │ │ │ │ ├── weebly.svg │ │ │ │ ├── weibo.svg │ │ │ │ ├── weixin.svg │ │ │ │ ├── whatsapp-square.svg │ │ │ │ ├── whatsapp.svg │ │ │ │ ├── whmcs.svg │ │ │ │ ├── wikipedia-w.svg │ │ │ │ ├── windows.svg │ │ │ │ ├── wix.svg │ │ │ │ ├── wolf-pack-battalion.svg │ │ │ │ ├── wordpress-simple.svg │ │ │ │ ├── wordpress.svg │ │ │ │ ├── wpbeginner.svg │ │ │ │ ├── wpexplorer.svg │ │ │ │ ├── wpforms.svg │ │ │ │ ├── xbox.svg │ │ │ │ ├── xing-square.svg │ │ │ │ ├── xing.svg │ │ │ │ ├── y-combinator.svg │ │ │ │ ├── yahoo.svg │ │ │ │ ├── yandex-international.svg │ │ │ │ ├── yandex.svg │ │ │ │ ├── yelp.svg │ │ │ │ ├── yoast.svg │ │ │ │ ├── youtube-square.svg │ │ │ │ └── youtube.svg │ │ │ ├── regular │ │ │ │ ├── address-book.svg │ │ │ │ ├── address-card.svg │ │ │ │ ├── angry.svg │ │ │ │ ├── arrow-alt-circle-down.svg │ │ │ │ ├── arrow-alt-circle-left.svg │ │ │ │ ├── arrow-alt-circle-right.svg │ │ │ │ ├── arrow-alt-circle-up.svg │ │ │ │ ├── bell-slash.svg │ │ │ │ ├── bell.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── building.svg │ │ │ │ ├── calendar-alt.svg │ │ │ │ ├── calendar-check.svg │ │ │ │ ├── calendar-minus.svg │ │ │ │ ├── calendar-plus.svg │ │ │ │ ├── calendar-times.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── caret-square-down.svg │ │ │ │ ├── caret-square-left.svg │ │ │ │ ├── caret-square-right.svg │ │ │ │ ├── caret-square-up.svg │ │ │ │ ├── chart-bar.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check-square.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── clone.svg │ │ │ │ ├── closed-captioning.svg │ │ │ │ ├── comment-alt.svg │ │ │ │ ├── comment-dots.svg │ │ │ │ ├── comment.svg │ │ │ │ ├── comments.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── copyright.svg │ │ │ │ ├── credit-card.svg │ │ │ │ ├── dizzy.svg │ │ │ │ ├── dot-circle.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── envelope-open.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── file-alt.svg │ │ │ │ ├── file-archive.svg │ │ │ │ ├── file-audio.svg │ │ │ │ ├── file-code.svg │ │ │ │ ├── file-excel.svg │ │ │ │ ├── file-image.svg │ │ │ │ ├── file-pdf.svg │ │ │ │ ├── file-powerpoint.svg │ │ │ │ ├── file-video.svg │ │ │ │ ├── file-word.svg │ │ │ │ ├── file.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── flushed.svg │ │ │ │ ├── folder-open.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── frown-open.svg │ │ │ │ ├── frown.svg │ │ │ │ ├── futbol.svg │ │ │ │ ├── gem.svg │ │ │ │ ├── grimace.svg │ │ │ │ ├── grin-alt.svg │ │ │ │ ├── grin-beam-sweat.svg │ │ │ │ ├── grin-beam.svg │ │ │ │ ├── grin-hearts.svg │ │ │ │ ├── grin-squint-tears.svg │ │ │ │ ├── grin-squint.svg │ │ │ │ ├── grin-stars.svg │ │ │ │ ├── grin-tears.svg │ │ │ │ ├── grin-tongue-squint.svg │ │ │ │ ├── grin-tongue-wink.svg │ │ │ │ ├── grin-tongue.svg │ │ │ │ ├── grin-wink.svg │ │ │ │ ├── grin.svg │ │ │ │ ├── hand-lizard.svg │ │ │ │ ├── hand-paper.svg │ │ │ │ ├── hand-peace.svg │ │ │ │ ├── hand-point-down.svg │ │ │ │ ├── hand-point-left.svg │ │ │ │ ├── hand-point-right.svg │ │ │ │ ├── hand-point-up.svg │ │ │ │ ├── hand-pointer.svg │ │ │ │ ├── hand-rock.svg │ │ │ │ ├── hand-scissors.svg │ │ │ │ ├── hand-spock.svg │ │ │ │ ├── handshake.svg │ │ │ │ ├── hdd.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── hospital.svg │ │ │ │ ├── hourglass.svg │ │ │ │ ├── id-badge.svg │ │ │ │ ├── id-card.svg │ │ │ │ ├── image.svg │ │ │ │ ├── images.svg │ │ │ │ ├── keyboard.svg │ │ │ │ ├── kiss-beam.svg │ │ │ │ ├── kiss-wink-heart.svg │ │ │ │ ├── kiss.svg │ │ │ │ ├── laugh-beam.svg │ │ │ │ ├── laugh-squint.svg │ │ │ │ ├── laugh-wink.svg │ │ │ │ ├── laugh.svg │ │ │ │ ├── lemon.svg │ │ │ │ ├── life-ring.svg │ │ │ │ ├── lightbulb.svg │ │ │ │ ├── list-alt.svg │ │ │ │ ├── map.svg │ │ │ │ ├── meh-blank.svg │ │ │ │ ├── meh-rolling-eyes.svg │ │ │ │ ├── meh.svg │ │ │ │ ├── minus-square.svg │ │ │ │ ├── money-bill-alt.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── newspaper.svg │ │ │ │ ├── object-group.svg │ │ │ │ ├── object-ungroup.svg │ │ │ │ ├── paper-plane.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── plus-square.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── registered.svg │ │ │ │ ├── sad-cry.svg │ │ │ │ ├── sad-tear.svg │ │ │ │ ├── save.svg │ │ │ │ ├── share-square.svg │ │ │ │ ├── smile-beam.svg │ │ │ │ ├── smile-wink.svg │ │ │ │ ├── smile.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── square.svg │ │ │ │ ├── star-half.svg │ │ │ │ ├── star.svg │ │ │ │ ├── sticky-note.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── sun.svg │ │ │ │ ├── surprise.svg │ │ │ │ ├── thumbs-down.svg │ │ │ │ ├── thumbs-up.svg │ │ │ │ ├── times-circle.svg │ │ │ │ ├── tired.svg │ │ │ │ ├── trash-alt.svg │ │ │ │ ├── user-circle.svg │ │ │ │ ├── user.svg │ │ │ │ ├── window-close.svg │ │ │ │ ├── window-maximize.svg │ │ │ │ ├── window-minimize.svg │ │ │ │ └── window-restore.svg │ │ │ └── solid │ │ │ │ ├── address-book.svg │ │ │ │ ├── address-card.svg │ │ │ │ ├── adjust.svg │ │ │ │ ├── align-center.svg │ │ │ │ ├── align-justify.svg │ │ │ │ ├── align-left.svg │ │ │ │ ├── align-right.svg │ │ │ │ ├── allergies.svg │ │ │ │ ├── ambulance.svg │ │ │ │ ├── american-sign-language-interpreting.svg │ │ │ │ ├── anchor.svg │ │ │ │ ├── angle-double-down.svg │ │ │ │ ├── angle-double-left.svg │ │ │ │ ├── angle-double-right.svg │ │ │ │ ├── angle-double-up.svg │ │ │ │ ├── angle-down.svg │ │ │ │ ├── angle-left.svg │ │ │ │ ├── angle-right.svg │ │ │ │ ├── angle-up.svg │ │ │ │ ├── angry.svg │ │ │ │ ├── archive.svg │ │ │ │ ├── archway.svg │ │ │ │ ├── arrow-alt-circle-down.svg │ │ │ │ ├── arrow-alt-circle-left.svg │ │ │ │ ├── arrow-alt-circle-right.svg │ │ │ │ ├── arrow-alt-circle-up.svg │ │ │ │ ├── arrow-circle-down.svg │ │ │ │ ├── arrow-circle-left.svg │ │ │ │ ├── arrow-circle-right.svg │ │ │ │ ├── arrow-circle-up.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── arrows-alt-h.svg │ │ │ │ ├── arrows-alt-v.svg │ │ │ │ ├── arrows-alt.svg │ │ │ │ ├── assistive-listening-systems.svg │ │ │ │ ├── asterisk.svg │ │ │ │ ├── at.svg │ │ │ │ ├── atlas.svg │ │ │ │ ├── audio-description.svg │ │ │ │ ├── award.svg │ │ │ │ ├── backspace.svg │ │ │ │ ├── backward.svg │ │ │ │ ├── balance-scale.svg │ │ │ │ ├── ban.svg │ │ │ │ ├── band-aid.svg │ │ │ │ ├── barcode.svg │ │ │ │ ├── bars.svg │ │ │ │ ├── baseball-ball.svg │ │ │ │ ├── basketball-ball.svg │ │ │ │ ├── bath.svg │ │ │ │ ├── battery-empty.svg │ │ │ │ ├── battery-full.svg │ │ │ │ ├── battery-half.svg │ │ │ │ ├── battery-quarter.svg │ │ │ │ ├── battery-three-quarters.svg │ │ │ │ ├── bed.svg │ │ │ │ ├── beer.svg │ │ │ │ ├── bell-slash.svg │ │ │ │ ├── bell.svg │ │ │ │ ├── bezier-curve.svg │ │ │ │ ├── bicycle.svg │ │ │ │ ├── binoculars.svg │ │ │ │ ├── birthday-cake.svg │ │ │ │ ├── blender.svg │ │ │ │ ├── blind.svg │ │ │ │ ├── bold.svg │ │ │ │ ├── bolt.svg │ │ │ │ ├── bomb.svg │ │ │ │ ├── bong.svg │ │ │ │ ├── book-open.svg │ │ │ │ ├── book.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── bowling-ball.svg │ │ │ │ ├── box-open.svg │ │ │ │ ├── box.svg │ │ │ │ ├── boxes.svg │ │ │ │ ├── braille.svg │ │ │ │ ├── briefcase-medical.svg │ │ │ │ ├── briefcase.svg │ │ │ │ ├── broadcast-tower.svg │ │ │ │ ├── broom.svg │ │ │ │ ├── brush.svg │ │ │ │ ├── bug.svg │ │ │ │ ├── building.svg │ │ │ │ ├── bullhorn.svg │ │ │ │ ├── bullseye.svg │ │ │ │ ├── burn.svg │ │ │ │ ├── bus-alt.svg │ │ │ │ ├── bus.svg │ │ │ │ ├── calculator.svg │ │ │ │ ├── calendar-alt.svg │ │ │ │ ├── calendar-check.svg │ │ │ │ ├── calendar-minus.svg │ │ │ │ ├── calendar-plus.svg │ │ │ │ ├── calendar-times.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── camera-retro.svg │ │ │ │ ├── camera.svg │ │ │ │ ├── cannabis.svg │ │ │ │ ├── capsules.svg │ │ │ │ ├── car.svg │ │ │ │ ├── caret-down.svg │ │ │ │ ├── caret-left.svg │ │ │ │ ├── caret-right.svg │ │ │ │ ├── caret-square-down.svg │ │ │ │ ├── caret-square-left.svg │ │ │ │ ├── caret-square-right.svg │ │ │ │ ├── caret-square-up.svg │ │ │ │ ├── caret-up.svg │ │ │ │ ├── cart-arrow-down.svg │ │ │ │ ├── cart-plus.svg │ │ │ │ ├── certificate.svg │ │ │ │ ├── chalkboard-teacher.svg │ │ │ │ ├── chalkboard.svg │ │ │ │ ├── chart-area.svg │ │ │ │ ├── chart-bar.svg │ │ │ │ ├── chart-line.svg │ │ │ │ ├── chart-pie.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check-double.svg │ │ │ │ ├── check-square.svg │ │ │ │ ├── check.svg │ │ │ │ ├── chess-bishop.svg │ │ │ │ ├── chess-board.svg │ │ │ │ ├── chess-king.svg │ │ │ │ ├── chess-knight.svg │ │ │ │ ├── chess-pawn.svg │ │ │ │ ├── chess-queen.svg │ │ │ │ ├── chess-rook.svg │ │ │ │ ├── chess.svg │ │ │ │ ├── chevron-circle-down.svg │ │ │ │ ├── chevron-circle-left.svg │ │ │ │ ├── chevron-circle-right.svg │ │ │ │ ├── chevron-circle-up.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── chevron-left.svg │ │ │ │ ├── chevron-right.svg │ │ │ │ ├── chevron-up.svg │ │ │ │ ├── child.svg │ │ │ │ ├── church.svg │ │ │ │ ├── circle-notch.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── clipboard-check.svg │ │ │ │ ├── clipboard-list.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── clone.svg │ │ │ │ ├── closed-captioning.svg │ │ │ │ ├── cloud-download-alt.svg │ │ │ │ ├── cloud-upload-alt.svg │ │ │ │ ├── cloud.svg │ │ │ │ ├── cocktail.svg │ │ │ │ ├── code-branch.svg │ │ │ │ ├── code.svg │ │ │ │ ├── coffee.svg │ │ │ │ ├── cog.svg │ │ │ │ ├── cogs.svg │ │ │ │ ├── coins.svg │ │ │ │ ├── columns.svg │ │ │ │ ├── comment-alt.svg │ │ │ │ ├── comment-dots.svg │ │ │ │ ├── comment-slash.svg │ │ │ │ ├── comment.svg │ │ │ │ ├── comments.svg │ │ │ │ ├── compact-disc.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── compress.svg │ │ │ │ ├── concierge-bell.svg │ │ │ │ ├── cookie-bite.svg │ │ │ │ ├── cookie.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── copyright.svg │ │ │ │ ├── couch.svg │ │ │ │ ├── credit-card.svg │ │ │ │ ├── crop-alt.svg │ │ │ │ ├── crop.svg │ │ │ │ ├── crosshairs.svg │ │ │ │ ├── crow.svg │ │ │ │ ├── crown.svg │ │ │ │ ├── cube.svg │ │ │ │ ├── cubes.svg │ │ │ │ ├── cut.svg │ │ │ │ ├── database.svg │ │ │ │ ├── deaf.svg │ │ │ │ ├── desktop.svg │ │ │ │ ├── diagnoses.svg │ │ │ │ ├── dice-five.svg │ │ │ │ ├── dice-four.svg │ │ │ │ ├── dice-one.svg │ │ │ │ ├── dice-six.svg │ │ │ │ ├── dice-three.svg │ │ │ │ ├── dice-two.svg │ │ │ │ ├── dice.svg │ │ │ │ ├── digital-tachograph.svg │ │ │ │ ├── divide.svg │ │ │ │ ├── dizzy.svg │ │ │ │ ├── dna.svg │ │ │ │ ├── dollar-sign.svg │ │ │ │ ├── dolly-flatbed.svg │ │ │ │ ├── dolly.svg │ │ │ │ ├── donate.svg │ │ │ │ ├── door-closed.svg │ │ │ │ ├── door-open.svg │ │ │ │ ├── dot-circle.svg │ │ │ │ ├── dove.svg │ │ │ │ ├── download.svg │ │ │ │ ├── drafting-compass.svg │ │ │ │ ├── drum-steelpan.svg │ │ │ │ ├── drum.svg │ │ │ │ ├── dumbbell.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── eject.svg │ │ │ │ ├── ellipsis-h.svg │ │ │ │ ├── ellipsis-v.svg │ │ │ │ ├── envelope-open.svg │ │ │ │ ├── envelope-square.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── equals.svg │ │ │ │ ├── eraser.svg │ │ │ │ ├── euro-sign.svg │ │ │ │ ├── exchange-alt.svg │ │ │ │ ├── exclamation-circle.svg │ │ │ │ ├── exclamation-triangle.svg │ │ │ │ ├── exclamation.svg │ │ │ │ ├── expand-arrows-alt.svg │ │ │ │ ├── expand.svg │ │ │ │ ├── external-link-alt.svg │ │ │ │ ├── external-link-square-alt.svg │ │ │ │ ├── eye-dropper.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── fast-backward.svg │ │ │ │ ├── fast-forward.svg │ │ │ │ ├── fax.svg │ │ │ │ ├── feather-alt.svg │ │ │ │ ├── feather.svg │ │ │ │ ├── female.svg │ │ │ │ ├── fighter-jet.svg │ │ │ │ ├── file-alt.svg │ │ │ │ ├── file-archive.svg │ │ │ │ ├── file-audio.svg │ │ │ │ ├── file-code.svg │ │ │ │ ├── file-contract.svg │ │ │ │ ├── file-download.svg │ │ │ │ ├── file-excel.svg │ │ │ │ ├── file-export.svg │ │ │ │ ├── file-image.svg │ │ │ │ ├── file-import.svg │ │ │ │ ├── file-invoice-dollar.svg │ │ │ │ ├── file-invoice.svg │ │ │ │ ├── file-medical-alt.svg │ │ │ │ ├── file-medical.svg │ │ │ │ ├── file-pdf.svg │ │ │ │ ├── file-powerpoint.svg │ │ │ │ ├── file-prescription.svg │ │ │ │ ├── file-signature.svg │ │ │ │ ├── file-upload.svg │ │ │ │ ├── file-video.svg │ │ │ │ ├── file-word.svg │ │ │ │ ├── file.svg │ │ │ │ ├── fill-drip.svg │ │ │ │ ├── fill.svg │ │ │ │ ├── film.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── fingerprint.svg │ │ │ │ ├── fire-extinguisher.svg │ │ │ │ ├── fire.svg │ │ │ │ ├── first-aid.svg │ │ │ │ ├── fish.svg │ │ │ │ ├── flag-checkered.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── flask.svg │ │ │ │ ├── flushed.svg │ │ │ │ ├── folder-open.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── font.svg │ │ │ │ ├── football-ball.svg │ │ │ │ ├── forward.svg │ │ │ │ ├── frog.svg │ │ │ │ ├── frown-open.svg │ │ │ │ ├── frown.svg │ │ │ │ ├── futbol.svg │ │ │ │ ├── gamepad.svg │ │ │ │ ├── gas-pump.svg │ │ │ │ ├── gavel.svg │ │ │ │ ├── gem.svg │ │ │ │ ├── genderless.svg │ │ │ │ ├── gift.svg │ │ │ │ ├── glass-martini-alt.svg │ │ │ │ ├── glass-martini.svg │ │ │ │ ├── glasses.svg │ │ │ │ ├── globe-africa.svg │ │ │ │ ├── globe-americas.svg │ │ │ │ ├── globe-asia.svg │ │ │ │ ├── globe.svg │ │ │ │ ├── golf-ball.svg │ │ │ │ ├── graduation-cap.svg │ │ │ │ ├── greater-than-equal.svg │ │ │ │ ├── greater-than.svg │ │ │ │ ├── grimace.svg │ │ │ │ ├── grin-alt.svg │ │ │ │ ├── grin-beam-sweat.svg │ │ │ │ ├── grin-beam.svg │ │ │ │ ├── grin-hearts.svg │ │ │ │ ├── grin-squint-tears.svg │ │ │ │ ├── grin-squint.svg │ │ │ │ ├── grin-stars.svg │ │ │ │ ├── grin-tears.svg │ │ │ │ ├── grin-tongue-squint.svg │ │ │ │ ├── grin-tongue-wink.svg │ │ │ │ ├── grin-tongue.svg │ │ │ │ ├── grin-wink.svg │ │ │ │ ├── grin.svg │ │ │ │ ├── grip-horizontal.svg │ │ │ │ ├── grip-vertical.svg │ │ │ │ ├── h-square.svg │ │ │ │ ├── hand-holding-heart.svg │ │ │ │ ├── hand-holding-usd.svg │ │ │ │ ├── hand-holding.svg │ │ │ │ ├── hand-lizard.svg │ │ │ │ ├── hand-paper.svg │ │ │ │ ├── hand-peace.svg │ │ │ │ ├── hand-point-down.svg │ │ │ │ ├── hand-point-left.svg │ │ │ │ ├── hand-point-right.svg │ │ │ │ ├── hand-point-up.svg │ │ │ │ ├── hand-pointer.svg │ │ │ │ ├── hand-rock.svg │ │ │ │ ├── hand-scissors.svg │ │ │ │ ├── hand-spock.svg │ │ │ │ ├── hands-helping.svg │ │ │ │ ├── hands.svg │ │ │ │ ├── handshake.svg │ │ │ │ ├── hashtag.svg │ │ │ │ ├── hdd.svg │ │ │ │ ├── heading.svg │ │ │ │ ├── headphones-alt.svg │ │ │ │ ├── headphones.svg │ │ │ │ ├── headset.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── heartbeat.svg │ │ │ │ ├── helicopter.svg │ │ │ │ ├── highlighter.svg │ │ │ │ ├── history.svg │ │ │ │ ├── hockey-puck.svg │ │ │ │ ├── home.svg │ │ │ │ ├── hospital-alt.svg │ │ │ │ ├── hospital-symbol.svg │ │ │ │ ├── hospital.svg │ │ │ │ ├── hot-tub.svg │ │ │ │ ├── hotel.svg │ │ │ │ ├── hourglass-end.svg │ │ │ │ ├── hourglass-half.svg │ │ │ │ ├── hourglass-start.svg │ │ │ │ ├── hourglass.svg │ │ │ │ ├── i-cursor.svg │ │ │ │ ├── id-badge.svg │ │ │ │ ├── id-card-alt.svg │ │ │ │ ├── id-card.svg │ │ │ │ ├── image.svg │ │ │ │ ├── images.svg │ │ │ │ ├── inbox.svg │ │ │ │ ├── indent.svg │ │ │ │ ├── industry.svg │ │ │ │ ├── infinity.svg │ │ │ │ ├── info-circle.svg │ │ │ │ ├── info.svg │ │ │ │ ├── italic.svg │ │ │ │ ├── joint.svg │ │ │ │ ├── key.svg │ │ │ │ ├── keyboard.svg │ │ │ │ ├── kiss-beam.svg │ │ │ │ ├── kiss-wink-heart.svg │ │ │ │ ├── kiss.svg │ │ │ │ ├── kiwi-bird.svg │ │ │ │ ├── language.svg │ │ │ │ ├── laptop.svg │ │ │ │ ├── laugh-beam.svg │ │ │ │ ├── laugh-squint.svg │ │ │ │ ├── laugh-wink.svg │ │ │ │ ├── laugh.svg │ │ │ │ ├── leaf.svg │ │ │ │ ├── lemon.svg │ │ │ │ ├── less-than-equal.svg │ │ │ │ ├── less-than.svg │ │ │ │ ├── level-down-alt.svg │ │ │ │ ├── level-up-alt.svg │ │ │ │ ├── life-ring.svg │ │ │ │ ├── lightbulb.svg │ │ │ │ ├── link.svg │ │ │ │ ├── lira-sign.svg │ │ │ │ ├── list-alt.svg │ │ │ │ ├── list-ol.svg │ │ │ │ ├── list-ul.svg │ │ │ │ ├── list.svg │ │ │ │ ├── location-arrow.svg │ │ │ │ ├── lock-open.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── long-arrow-alt-down.svg │ │ │ │ ├── long-arrow-alt-left.svg │ │ │ │ ├── long-arrow-alt-right.svg │ │ │ │ ├── long-arrow-alt-up.svg │ │ │ │ ├── low-vision.svg │ │ │ │ ├── luggage-cart.svg │ │ │ │ ├── magic.svg │ │ │ │ ├── magnet.svg │ │ │ │ ├── male.svg │ │ │ │ ├── map-marked-alt.svg │ │ │ │ ├── map-marked.svg │ │ │ │ ├── map-marker-alt.svg │ │ │ │ ├── map-marker.svg │ │ │ │ ├── map-pin.svg │ │ │ │ ├── map-signs.svg │ │ │ │ ├── map.svg │ │ │ │ ├── marker.svg │ │ │ │ ├── mars-double.svg │ │ │ │ ├── mars-stroke-h.svg │ │ │ │ ├── mars-stroke-v.svg │ │ │ │ ├── mars-stroke.svg │ │ │ │ ├── mars.svg │ │ │ │ ├── medal.svg │ │ │ │ ├── medkit.svg │ │ │ │ ├── meh-blank.svg │ │ │ │ ├── meh-rolling-eyes.svg │ │ │ │ ├── meh.svg │ │ │ │ ├── memory.svg │ │ │ │ ├── mercury.svg │ │ │ │ ├── microchip.svg │ │ │ │ ├── microphone-alt-slash.svg │ │ │ │ ├── microphone-alt.svg │ │ │ │ ├── microphone-slash.svg │ │ │ │ ├── microphone.svg │ │ │ │ ├── minus-circle.svg │ │ │ │ ├── minus-square.svg │ │ │ │ ├── minus.svg │ │ │ │ ├── mobile-alt.svg │ │ │ │ ├── mobile.svg │ │ │ │ ├── money-bill-alt.svg │ │ │ │ ├── money-bill-wave-alt.svg │ │ │ │ ├── money-bill-wave.svg │ │ │ │ ├── money-bill.svg │ │ │ │ ├── money-check-alt.svg │ │ │ │ ├── money-check.svg │ │ │ │ ├── monument.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── mortar-pestle.svg │ │ │ │ ├── motorcycle.svg │ │ │ │ ├── mouse-pointer.svg │ │ │ │ ├── music.svg │ │ │ │ ├── neuter.svg │ │ │ │ ├── newspaper.svg │ │ │ │ ├── not-equal.svg │ │ │ │ ├── notes-medical.svg │ │ │ │ ├── object-group.svg │ │ │ │ ├── object-ungroup.svg │ │ │ │ ├── outdent.svg │ │ │ │ ├── paint-brush.svg │ │ │ │ ├── paint-roller.svg │ │ │ │ ├── palette.svg │ │ │ │ ├── pallet.svg │ │ │ │ ├── paper-plane.svg │ │ │ │ ├── paperclip.svg │ │ │ │ ├── parachute-box.svg │ │ │ │ ├── paragraph.svg │ │ │ │ ├── parking.svg │ │ │ │ ├── passport.svg │ │ │ │ ├── paste.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── pause.svg │ │ │ │ ├── paw.svg │ │ │ │ ├── pen-alt.svg │ │ │ │ ├── pen-fancy.svg │ │ │ │ ├── pen-nib.svg │ │ │ │ ├── pen-square.svg │ │ │ │ ├── pen.svg │ │ │ │ ├── pencil-alt.svg │ │ │ │ ├── pencil-ruler.svg │ │ │ │ ├── people-carry.svg │ │ │ │ ├── percent.svg │ │ │ │ ├── percentage.svg │ │ │ │ ├── phone-slash.svg │ │ │ │ ├── phone-square.svg │ │ │ │ ├── phone-volume.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── piggy-bank.svg │ │ │ │ ├── pills.svg │ │ │ │ ├── plane-arrival.svg │ │ │ │ ├── plane-departure.svg │ │ │ │ ├── plane.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── play.svg │ │ │ │ ├── plug.svg │ │ │ │ ├── plus-circle.svg │ │ │ │ ├── plus-square.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── podcast.svg │ │ │ │ ├── poo.svg │ │ │ │ ├── portrait.svg │ │ │ │ ├── pound-sign.svg │ │ │ │ ├── power-off.svg │ │ │ │ ├── prescription-bottle-alt.svg │ │ │ │ ├── prescription-bottle.svg │ │ │ │ ├── prescription.svg │ │ │ │ ├── print.svg │ │ │ │ ├── procedures.svg │ │ │ │ ├── project-diagram.svg │ │ │ │ ├── puzzle-piece.svg │ │ │ │ ├── qrcode.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── question.svg │ │ │ │ ├── quidditch.svg │ │ │ │ ├── quote-left.svg │ │ │ │ ├── quote-right.svg │ │ │ │ ├── random.svg │ │ │ │ ├── receipt.svg │ │ │ │ ├── recycle.svg │ │ │ │ ├── redo-alt.svg │ │ │ │ ├── redo.svg │ │ │ │ ├── registered.svg │ │ │ │ ├── reply-all.svg │ │ │ │ ├── reply.svg │ │ │ │ ├── retweet.svg │ │ │ │ ├── ribbon.svg │ │ │ │ ├── road.svg │ │ │ │ ├── robot.svg │ │ │ │ ├── rocket.svg │ │ │ │ ├── rss-square.svg │ │ │ │ ├── rss.svg │ │ │ │ ├── ruble-sign.svg │ │ │ │ ├── ruler-combined.svg │ │ │ │ ├── ruler-horizontal.svg │ │ │ │ ├── ruler-vertical.svg │ │ │ │ ├── ruler.svg │ │ │ │ ├── rupee-sign.svg │ │ │ │ ├── sad-cry.svg │ │ │ │ ├── sad-tear.svg │ │ │ │ ├── save.svg │ │ │ │ ├── school.svg │ │ │ │ ├── screwdriver.svg │ │ │ │ ├── search-minus.svg │ │ │ │ ├── search-plus.svg │ │ │ │ ├── search.svg │ │ │ │ ├── seedling.svg │ │ │ │ ├── server.svg │ │ │ │ ├── share-alt-square.svg │ │ │ │ ├── share-alt.svg │ │ │ │ ├── share-square.svg │ │ │ │ ├── share.svg │ │ │ │ ├── shekel-sign.svg │ │ │ │ ├── shield-alt.svg │ │ │ │ ├── ship.svg │ │ │ │ ├── shipping-fast.svg │ │ │ │ ├── shoe-prints.svg │ │ │ │ ├── shopping-bag.svg │ │ │ │ ├── shopping-basket.svg │ │ │ │ ├── shopping-cart.svg │ │ │ │ ├── shower.svg │ │ │ │ ├── shuttle-van.svg │ │ │ │ ├── sign-in-alt.svg │ │ │ │ ├── sign-language.svg │ │ │ │ ├── sign-out-alt.svg │ │ │ │ ├── sign.svg │ │ │ │ ├── signal.svg │ │ │ │ ├── signature.svg │ │ │ │ ├── sitemap.svg │ │ │ │ ├── skull.svg │ │ │ │ ├── sliders-h.svg │ │ │ │ ├── smile-beam.svg │ │ │ │ ├── smile-wink.svg │ │ │ │ ├── smile.svg │ │ │ │ ├── smoking-ban.svg │ │ │ │ ├── smoking.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── solar-panel.svg │ │ │ │ ├── sort-alpha-down.svg │ │ │ │ ├── sort-alpha-up.svg │ │ │ │ ├── sort-amount-down.svg │ │ │ │ ├── sort-amount-up.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-numeric-down.svg │ │ │ │ ├── sort-numeric-up.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── spa.svg │ │ │ │ ├── space-shuttle.svg │ │ │ │ ├── spinner.svg │ │ │ │ ├── splotch.svg │ │ │ │ ├── spray-can.svg │ │ │ │ ├── square-full.svg │ │ │ │ ├── square.svg │ │ │ │ ├── stamp.svg │ │ │ │ ├── star-half-alt.svg │ │ │ │ ├── star-half.svg │ │ │ │ ├── star.svg │ │ │ │ ├── step-backward.svg │ │ │ │ ├── step-forward.svg │ │ │ │ ├── stethoscope.svg │ │ │ │ ├── sticky-note.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── stop.svg │ │ │ │ ├── stopwatch.svg │ │ │ │ ├── store-alt.svg │ │ │ │ ├── store.svg │ │ │ │ ├── stream.svg │ │ │ │ ├── street-view.svg │ │ │ │ ├── strikethrough.svg │ │ │ │ ├── stroopwafel.svg │ │ │ │ ├── subscript.svg │ │ │ │ ├── subway.svg │ │ │ │ ├── suitcase-rolling.svg │ │ │ │ ├── suitcase.svg │ │ │ │ ├── sun.svg │ │ │ │ ├── superscript.svg │ │ │ │ ├── surprise.svg │ │ │ │ ├── swatchbook.svg │ │ │ │ ├── swimmer.svg │ │ │ │ ├── swimming-pool.svg │ │ │ │ ├── sync-alt.svg │ │ │ │ ├── sync.svg │ │ │ │ ├── syringe.svg │ │ │ │ ├── table-tennis.svg │ │ │ │ ├── table.svg │ │ │ │ ├── tablet-alt.svg │ │ │ │ ├── tablet.svg │ │ │ │ ├── tablets.svg │ │ │ │ ├── tachometer-alt.svg │ │ │ │ ├── tag.svg │ │ │ │ ├── tags.svg │ │ │ │ ├── tape.svg │ │ │ │ ├── tasks.svg │ │ │ │ ├── taxi.svg │ │ │ │ ├── terminal.svg │ │ │ │ ├── text-height.svg │ │ │ │ ├── text-width.svg │ │ │ │ ├── th-large.svg │ │ │ │ ├── th-list.svg │ │ │ │ ├── th.svg │ │ │ │ ├── thermometer-empty.svg │ │ │ │ ├── thermometer-full.svg │ │ │ │ ├── thermometer-half.svg │ │ │ │ ├── thermometer-quarter.svg │ │ │ │ ├── thermometer-three-quarters.svg │ │ │ │ ├── thermometer.svg │ │ │ │ ├── thumbs-down.svg │ │ │ │ ├── thumbs-up.svg │ │ │ │ ├── thumbtack.svg │ │ │ │ ├── ticket-alt.svg │ │ │ │ ├── times-circle.svg │ │ │ │ ├── times.svg │ │ │ │ ├── tint-slash.svg │ │ │ │ ├── tint.svg │ │ │ │ ├── tired.svg │ │ │ │ ├── toggle-off.svg │ │ │ │ ├── toggle-on.svg │ │ │ │ ├── toolbox.svg │ │ │ │ ├── tooth.svg │ │ │ │ ├── trademark.svg │ │ │ │ ├── train.svg │ │ │ │ ├── transgender-alt.svg │ │ │ │ ├── transgender.svg │ │ │ │ ├── trash-alt.svg │ │ │ │ ├── trash.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── trophy.svg │ │ │ │ ├── truck-loading.svg │ │ │ │ ├── truck-moving.svg │ │ │ │ ├── truck.svg │ │ │ │ ├── tshirt.svg │ │ │ │ ├── tty.svg │ │ │ │ ├── tv.svg │ │ │ │ ├── umbrella-beach.svg │ │ │ │ ├── umbrella.svg │ │ │ │ ├── underline.svg │ │ │ │ ├── undo-alt.svg │ │ │ │ ├── undo.svg │ │ │ │ ├── universal-access.svg │ │ │ │ ├── university.svg │ │ │ │ ├── unlink.svg │ │ │ │ ├── unlock-alt.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── upload.svg │ │ │ │ ├── user-alt-slash.svg │ │ │ │ ├── user-alt.svg │ │ │ │ ├── user-astronaut.svg │ │ │ │ ├── user-check.svg │ │ │ │ ├── user-circle.svg │ │ │ │ ├── user-clock.svg │ │ │ │ ├── user-cog.svg │ │ │ │ ├── user-edit.svg │ │ │ │ ├── user-friends.svg │ │ │ │ ├── user-graduate.svg │ │ │ │ ├── user-lock.svg │ │ │ │ ├── user-md.svg │ │ │ │ ├── user-minus.svg │ │ │ │ ├── user-ninja.svg │ │ │ │ ├── user-plus.svg │ │ │ │ ├── user-secret.svg │ │ │ │ ├── user-shield.svg │ │ │ │ ├── user-slash.svg │ │ │ │ ├── user-tag.svg │ │ │ │ ├── user-tie.svg │ │ │ │ ├── user-times.svg │ │ │ │ ├── user.svg │ │ │ │ ├── users-cog.svg │ │ │ │ ├── users.svg │ │ │ │ ├── utensil-spoon.svg │ │ │ │ ├── utensils.svg │ │ │ │ ├── vector-square.svg │ │ │ │ ├── venus-double.svg │ │ │ │ ├── venus-mars.svg │ │ │ │ ├── venus.svg │ │ │ │ ├── vial.svg │ │ │ │ ├── vials.svg │ │ │ │ ├── video-slash.svg │ │ │ │ ├── video.svg │ │ │ │ ├── volleyball-ball.svg │ │ │ │ ├── volume-down.svg │ │ │ │ ├── volume-off.svg │ │ │ │ ├── volume-up.svg │ │ │ │ ├── walking.svg │ │ │ │ ├── wallet.svg │ │ │ │ ├── warehouse.svg │ │ │ │ ├── weight-hanging.svg │ │ │ │ ├── weight.svg │ │ │ │ ├── wheelchair.svg │ │ │ │ ├── wifi.svg │ │ │ │ ├── window-close.svg │ │ │ │ ├── window-maximize.svg │ │ │ │ ├── window-minimize.svg │ │ │ │ ├── window-restore.svg │ │ │ │ ├── wine-glass-alt.svg │ │ │ │ ├── wine-glass.svg │ │ │ │ ├── won-sign.svg │ │ │ │ ├── wrench.svg │ │ │ │ ├── x-ray.svg │ │ │ │ └── yen-sign.svg │ │ └── webfonts │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.svg │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.svg │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.svg │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff │ │ │ └── fa-solid-900.woff2 │ │ ├── jquery-3.5.1.slim.min.js │ │ ├── jquery.min.js │ │ ├── leaflet │ │ ├── images │ │ │ ├── layers-2x.png │ │ │ ├── layers.png │ │ │ ├── marker-icon-2x.png │ │ │ ├── marker-icon.png │ │ │ ├── marker-shadow.png │ │ │ ├── spritesheet-2x.png │ │ │ ├── spritesheet.png │ │ │ └── spritesheet.svg │ │ ├── leaflet.css │ │ ├── leaflet.draw.css │ │ ├── leaflet.draw.js │ │ ├── leaflet.js │ │ └── leaflet.js.map │ │ ├── moment.min.js │ │ ├── multi-level-dropdowns-bootstrap │ │ ├── README.md │ │ ├── bootstrap4-dropdown-ml-hack-hover.css │ │ ├── bootstrap4-dropdown-ml-hack-hover.js │ │ └── bootstrap4-dropdown-ml-hack.js │ │ ├── popper.min.js │ │ ├── select2 │ │ ├── LICENSE │ │ ├── select2-bootstrap4.css │ │ ├── select2-spinner.gif │ │ ├── select2.css │ │ ├── select2.min.js │ │ ├── select2.png │ │ └── select2x2.png │ │ └── x-editable │ │ ├── css │ │ └── bootstrap4-editable.css │ │ ├── img │ │ ├── clear.png │ │ └── loading.gif │ │ └── js │ │ └── bootstrap4-editable.min.js ├── templates │ └── bootstrap4 │ │ └── admin │ │ ├── actions.html │ │ ├── base.html │ │ ├── file │ │ ├── form.html │ │ ├── list.html │ │ └── modals │ │ │ └── form.html │ │ ├── index.html │ │ ├── layout.html │ │ ├── lib.html │ │ ├── master.html │ │ ├── model │ │ ├── create.html │ │ ├── details.html │ │ ├── edit.html │ │ ├── inline_field_list.html │ │ ├── inline_form.html │ │ ├── inline_list_base.html │ │ ├── layout.html │ │ ├── list.html │ │ ├── modals │ │ │ ├── create.html │ │ │ ├── details.html │ │ │ └── edit.html │ │ └── row_actions.html │ │ ├── rediscli │ │ ├── console.html │ │ └── response.html │ │ └── static.html ├── tests │ ├── __init__.py │ ├── conftest.py │ ├── data │ │ ├── copyleft.gif │ │ ├── copyleft.jpeg │ │ ├── copyleft.jpg │ │ ├── copyleft.png │ │ └── copyleft.tiff │ ├── fileadmin │ │ ├── __init__.py │ │ ├── files │ │ │ └── dummy.txt │ │ ├── test_fileadmin.py │ │ ├── test_fileadmin_azure.py │ │ └── test_fileadmin_s3.py │ ├── geoa │ │ ├── __init__.py │ │ ├── conftest.py │ │ └── test_basic.py │ ├── mock.py │ ├── peeweemodel │ │ ├── __init__.py │ │ ├── conftest.py │ │ └── test_basic.py │ ├── pymongo │ │ ├── __init__.py │ │ ├── conftest.py │ │ └── test_basic.py │ ├── sqla │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── templates │ │ │ ├── another_macro.html │ │ │ └── macro.html │ │ ├── test_basic.py │ │ ├── test_form.py │ │ ├── test_form_rules.py │ │ ├── test_inlineform.py │ │ ├── test_multi_pk.py │ │ ├── test_postgres.py │ │ └── test_translation.py │ ├── templates │ │ ├── method.html │ │ └── mock.html │ ├── test_babel.py │ ├── test_base.py │ ├── test_csp.py │ ├── test_form_upload.py │ ├── test_helpers.py │ ├── test_host_matching.py │ ├── test_model.py │ └── test_tools.py ├── theme.py ├── tools.py └── translations │ ├── README.md │ ├── __init__.py │ ├── af │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ar │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── be │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ca_ES │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── cs │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── da │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── de │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── el │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── en │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── es │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── et │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── fa │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── fi │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── fr │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── he │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── hu │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── it │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ja │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ko │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── nl │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── no │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── pa │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── pl │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── pt │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── pt_BR │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ro │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── ru │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── sk │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── sr │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── sv │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── tr │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── uk │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── vi │ └── LC_MESSAGES │ │ ├── admin.mo │ │ └── admin.po │ ├── zh_Hans_CN │ └── LC_MESSAGES │ │ ├── adding_a_new_model_backend.po │ │ ├── admin.mo │ │ ├── admin.po │ │ ├── advanced.po │ │ ├── api.po │ │ ├── changelog.po │ │ ├── index.po │ │ └── introduction.po │ └── zh_Hant_TW │ └── LC_MESSAGES │ ├── admin.mo │ └── admin.po ├── projects.rst ├── pyproject.toml ├── requirements-skip ├── tests-min.in └── tests-min.txt ├── requirements ├── build.in ├── build.txt ├── dev.in ├── dev.txt ├── docs.in ├── docs.txt ├── tests.in ├── tests.txt ├── typing.in └── typing.txt ├── setup.cfg └── tox.ini /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json 2 | { 3 | "name": "flask-admin (Python 3.12)", 4 | "image": "mcr.microsoft.com/devcontainers/python:3.12-bullseye", 5 | 6 | // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. 7 | "remoteUser": "vscode" 8 | } 9 | -------------------------------------------------------------------------------- /.devcontainer/tests/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG IMAGE=bullseye 2 | FROM mcr.microsoft.com/devcontainers/${IMAGE} 3 | 4 | RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ 5 | && apt-get -y install --no-install-recommends postgresql-client \ 6 | && apt-get clean -y && rm -rf /var/lib/apt/lists/* 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | end_of_line = lf 9 | charset = utf-8 10 | max_line_length = 88 11 | 12 | [*.{css,html,js,json,jsx,scss,ts,tsx,yaml,yml}] 13 | indent_size = 2 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Questions on Discussions 4 | url: https://github.com/pallets-eco/flask-admin/discussions/ 5 | about: Ask questions about your own code on the Discussions tab. 6 | - name: Questions on Chat 7 | url: https://discord.gg/pallets 8 | about: Ask questions about your own code on our Discord chat. 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest a new feature for Flask-Admin 4 | --- 5 | 6 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: monthly 7 | groups: 8 | github-actions: 9 | patterns: 10 | - '*' 11 | - package-ecosystem: pip 12 | directory: /requirements/ 13 | schedule: 14 | interval: monthly 15 | groups: 16 | python-requirements: 17 | patterns: 18 | - '*' 19 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | # .github/release.yml 2 | 3 | changelog: 4 | exclude: 5 | labels: 6 | - ignore-for-release 7 | authors: 8 | - octocat 9 | categories: 10 | - title: Breaking changes 🛠 11 | labels: 12 | - Semver-Major 13 | - breaking-change 14 | - title: Exciting new features 🎉 15 | labels: 16 | - Semver-Minor 17 | - enhancement 18 | - title: Bug fixes 🐛 19 | labels: 20 | - Semver-Patch 21 | - bug 22 | - title: Other changes 23 | labels: 24 | - "*" 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swo 3 | *.pyc 4 | *.*~ 5 | *.rdb 6 | *.egg-info 7 | pyenv 8 | #*# 9 | build 10 | source/_static* 11 | source/_templates* 12 | flask_admin/tests/tmp 13 | dist/* 14 | make.bat 15 | venv 16 | .venv 17 | *.sublime-* 18 | .coverage 19 | __pycache__ 20 | examples/sqla-inline/static 21 | examples/file/files 22 | examples/forms/files 23 | .DS_Store 24 | .idea/ 25 | *.sqlite 26 | env 27 | *.egg 28 | .eggs 29 | .tox/ 30 | .env 31 | doc/_build 32 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | ci: 2 | autoupdate_schedule: monthly 3 | repos: 4 | - repo: https://github.com/astral-sh/ruff-pre-commit 5 | rev: v0.4.7 6 | hooks: 7 | - id: ruff 8 | - id: ruff-format 9 | - repo: https://github.com/pre-commit/pre-commit-hooks 10 | rev: v4.6.0 11 | hooks: 12 | - id: check-merge-conflict 13 | - id: debug-statements 14 | - id: fix-byte-order-marker 15 | - id: trailing-whitespace 16 | exclude: ^flask_admin/static/ 17 | - id: end-of-file-fixer 18 | exclude: ^flask_admin/static/ 19 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | build: 3 | os: ubuntu-22.04 4 | tools: 5 | python: '3.11' 6 | python: 7 | install: 8 | - requirements: requirements/docs.txt 9 | - method: pip 10 | path: .[all] 11 | sphinx: 12 | builder: dirhtml 13 | fail_on_warning: true 14 | configuration: doc/conf.py 15 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include README.md 3 | recursive-include flask_admin/static * 4 | recursive-include flask_admin/templates * 5 | recursive-include flask_admin/translations * 6 | recursive-include flask_admin/tests * 7 | recursive-exclude flask_admin *.pyc 8 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Flask-Admin includes some bundled software to ease installation. 2 | 3 | Select2 4 | ======= 5 | 6 | Distributed under `APLv2 `_. 7 | 8 | Bootstrap 9 | ================= 10 | 11 | v3.1.0 and subsequent versions distributed under `MIT `_. 12 | Versions prior to v3.1.0 distributed under `APLv2 `_. 13 | -------------------------------------------------------------------------------- /admin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/admin/__init__.py -------------------------------------------------------------------------------- /babel/README.md: -------------------------------------------------------------------------------- 1 | # Working with Babel translations 2 | 3 | ## As a developer who's changed some text in Flask-Admin 4 | 5 | Run `./babel.sh --update` 6 | 7 | ## As a translator who's updated some `.po`/`.mo` files 8 | 9 | Run `./babel.sh` 10 | -------------------------------------------------------------------------------- /babel/babel.bat: -------------------------------------------------------------------------------- 1 | pybabel extract -F babel.ini -k _gettext -k _ngettext -k lazy_gettext -o admin.pot --project Flask-Admin ..\flask_admin 2 | -------------------------------------------------------------------------------- /babel/babel.ini: -------------------------------------------------------------------------------- 1 | # Python 2 | [python: **.py] 3 | # Jinja2 4 | [jinja2: **/templates/**.html] 5 | encoding = utf-8 6 | -------------------------------------------------------------------------------- /babel/babel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pybabel extract -F babel.ini -k _gettext -k _ngettext -k lazy_gettext -o admin.pot --project Flask-Admin ../flask_admin 3 | 4 | if [ "$1" = '--update' ]; then 5 | pybabel update -i admin.pot -d ../flask_admin/translations -D admin -N 6 | fi 7 | 8 | pybabel compile -f -D admin -d ../flask_admin/translations/ 9 | 10 | # docs 11 | cd .. 12 | make gettext 13 | cp build/locale/*.pot babel/ 14 | sphinx-intl update -p build/locale/ -d flask_admin/translations/ 15 | -------------------------------------------------------------------------------- /babel/crowdin_push.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sh babel.sh 3 | curl -F "files[/admin.pot]=@admin.pot" http://api.crowdin.net/api/project/flask-admin/update-file?key=`cat ~/.crowdin.flaskadmin.key` 4 | -------------------------------------------------------------------------------- /doc/_static/flask-admin.css: -------------------------------------------------------------------------------- 1 | #flask-admin h1 { 2 | text-indent: -999999px; 3 | background: url('flask-admin.png') no-repeat center center; 4 | height: 140px; 5 | } 6 | -------------------------------------------------------------------------------- /doc/_static/flask-admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/doc/_static/flask-admin.png -------------------------------------------------------------------------------- /doc/_static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/doc/_static/logo.png -------------------------------------------------------------------------------- /doc/_static/logo_huge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/doc/_static/logo_huge.png -------------------------------------------------------------------------------- /doc/_templates/sidebarintro.html: -------------------------------------------------------------------------------- 1 |

Useful Links

2 | 6 | 7 | Fork me on GitHub 9 | -------------------------------------------------------------------------------- /doc/_templates/toc.html: -------------------------------------------------------------------------------- 1 | {%- if display_toc %} 2 |

{{ _('Table Of Contents') }}

3 | {{ toc }} 4 | {%- endif %} 5 | -------------------------------------------------------------------------------- /doc/api/i18n.rst: -------------------------------------------------------------------------------- 1 | Internalization 2 | =============== 3 | 4 | See WTForms' documentation on internationalisation: https://wtforms.readthedocs.io/en/main/i18n/. 5 | -------------------------------------------------------------------------------- /doc/api/index.rst: -------------------------------------------------------------------------------- 1 | API 2 | === 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | 7 | mod_base 8 | mod_helpers 9 | mod_model 10 | mod_form 11 | mod_form_rules 12 | mod_form_fields 13 | mod_form_upload 14 | mod_tools 15 | mod_actions 16 | 17 | mod_contrib_sqla 18 | mod_contrib_sqla_fields 19 | mod_contrib_peewee 20 | mod_contrib_pymongo 21 | mod_contrib_fileadmin 22 | 23 | mod_model_template 24 | -------------------------------------------------------------------------------- /doc/api/mod_actions.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.actions`` 2 | ======================= 3 | 4 | .. automodule:: flask_admin.actions 5 | 6 | .. autofunction:: action 7 | 8 | .. autoclass:: ActionsMixin 9 | :members: 10 | -------------------------------------------------------------------------------- /doc/api/mod_base.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.base`` 2 | ==================== 3 | 4 | .. automodule:: flask_admin.base 5 | 6 | Base View 7 | --------- 8 | 9 | .. autofunction:: expose 10 | .. autofunction:: expose_plugview 11 | 12 | .. autoclass:: BaseView 13 | :members: 14 | 15 | Default view 16 | ------------ 17 | 18 | .. autoclass:: AdminIndexView 19 | :members: 20 | 21 | Admin 22 | ----- 23 | 24 | .. autoclass:: Admin 25 | :members: 26 | -------------------------------------------------------------------------------- /doc/api/mod_contrib_pymongo.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.contrib.pymongo`` 2 | =============================== 3 | 4 | PyMongo model backend implementation. 5 | 6 | .. automodule:: flask_admin.contrib.pymongo 7 | 8 | .. autoclass:: ModelView 9 | :members: 10 | :inherited-members: 11 | :exclude-members: column_filters 12 | 13 | Class inherits configuration options from :class:`~flask_admin.model.BaseModelView` and they're not displayed here. 14 | 15 | .. autoattribute:: column_filters 16 | -------------------------------------------------------------------------------- /doc/api/mod_contrib_sqla_fields.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.contrib.sqla.fields`` 2 | =================================== 3 | 4 | .. automodule:: flask_admin.contrib.sqla.fields 5 | 6 | .. autoclass:: QuerySelectField 7 | :members: 8 | 9 | .. autoclass:: QuerySelectMultipleField 10 | :members: 11 | 12 | .. autoclass:: CheckboxListField 13 | :members: 14 | -------------------------------------------------------------------------------- /doc/api/mod_form.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.form`` 2 | ==================== 3 | 4 | .. automodule:: flask_admin.form 5 | 6 | .. autoclass:: BaseForm 7 | :members: 8 | -------------------------------------------------------------------------------- /doc/api/mod_form_fields.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.form.fields`` 2 | =========================== 3 | 4 | .. automodule:: flask_admin.form.fields 5 | 6 | .. autoclass:: TimeField 7 | :members: 8 | 9 | .. autoclass:: Select2Field 10 | :members: 11 | 12 | .. autoclass:: Select2TagsField 13 | :members: 14 | -------------------------------------------------------------------------------- /doc/api/mod_form_rules.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.form.rules`` 2 | ========================== 3 | 4 | .. automodule:: flask_admin.form.rules 5 | 6 | .. autoclass:: BaseRule 7 | 8 | .. autoclass:: NestedRule 9 | 10 | .. autoclass:: Text 11 | 12 | .. autoclass:: HTML 13 | 14 | .. autoclass:: Macro 15 | 16 | .. autoclass:: Container 17 | 18 | .. autoclass:: Field 19 | 20 | .. autoclass:: Header 21 | 22 | .. autoclass:: FieldSet 23 | -------------------------------------------------------------------------------- /doc/api/mod_form_upload.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.form.upload`` 2 | =========================== 3 | 4 | .. automodule:: flask_admin.form.upload 5 | 6 | .. autoclass:: FileUploadField 7 | :class-doc-from: class 8 | :members: __init__ 9 | 10 | .. autoclass:: ImageUploadField 11 | :class-doc-from: class 12 | :members: __init__ 13 | 14 | .. autoclass:: FileUploadInput 15 | 16 | .. autoclass:: ImageUploadInput 17 | -------------------------------------------------------------------------------- /doc/api/mod_helpers.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.helpers`` 2 | ======================= 3 | 4 | .. automodule:: flask_admin.helpers 5 | 6 | .. autofunction:: get_current_view 7 | 8 | Forms 9 | 10 | .. autofunction:: is_required_form_field 11 | .. autofunction:: is_form_submitted 12 | .. autofunction:: validate_form_on_submit 13 | .. autofunction:: get_form_data 14 | .. autofunction:: is_field_error 15 | 16 | Jinja2 helpers 17 | 18 | .. autofunction:: resolve_ctx 19 | .. autofunction:: get_render_ctx 20 | -------------------------------------------------------------------------------- /doc/api/mod_model_template.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.model.template`` 2 | ============================== 3 | 4 | .. automodule:: flask_admin.model.template 5 | 6 | .. autofunction:: macro 7 | -------------------------------------------------------------------------------- /doc/api/mod_tools.rst: -------------------------------------------------------------------------------- 1 | ``flask_admin.tools`` 2 | ===================== 3 | 4 | .. automodule:: flask_admin.tools 5 | 6 | .. autofunction:: import_module 7 | .. autofunction:: import_attribute 8 | .. autofunction:: module_not_found 9 | .. autofunction:: rec_getattr 10 | -------------------------------------------------------------------------------- /doc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/doc/favicon.ico -------------------------------------------------------------------------------- /examples/auth-flask-login/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/auth-flask-login/__init__.py -------------------------------------------------------------------------------- /examples/auth-flask-login/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy] 3 | 4 | Flask-Login>=0.3.0 5 | -------------------------------------------------------------------------------- /examples/auth-flask-login/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | Go to admin! 5 |
6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/auth/__init__.py -------------------------------------------------------------------------------- /examples/auth/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy-with-utils] 3 | 4 | flask-security-too 5 | -------------------------------------------------------------------------------- /examples/auth/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | Go to admin! 5 |
6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/auth/templates/security/_messages.html: -------------------------------------------------------------------------------- 1 | {%- with messages = get_flashed_messages(with_categories=true) -%} 2 | {% if messages %} 3 |
    4 | {% for category, message in messages %} 5 |
  • {{ message }}
  • 6 | {% endfor %} 7 |
8 | {% endif %} 9 | {%- endwith %} 10 | -------------------------------------------------------------------------------- /examples/azure-blob-storage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/azure-blob-storage/__init__.py -------------------------------------------------------------------------------- /examples/azure-blob-storage/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[azure-blob-storage] 2 | azure-identity 3 | -------------------------------------------------------------------------------- /examples/babel/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy,translation] 3 | -------------------------------------------------------------------------------- /examples/bootstrap4/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/bootstrap4/__init__.py -------------------------------------------------------------------------------- /examples/bootstrap4/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy] 3 | -------------------------------------------------------------------------------- /examples/csp-nonce/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/csp-nonce/__init__.py -------------------------------------------------------------------------------- /examples/csp-nonce/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask 2 | Flask-Admin 3 | 4 | flask-talisman 5 | -------------------------------------------------------------------------------- /examples/custom-layout/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/custom-layout/__init__.py -------------------------------------------------------------------------------- /examples/custom-layout/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy] 3 | -------------------------------------------------------------------------------- /examples/custom-layout/templates/admin/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | {{ super() }} 4 |
5 |

Flask-Admin example

6 |

7 | Customize the layout 8 |

9 |

10 | This example shows how you can customize the look & feel of the admin interface. 11 |

12 |

13 | This is done by overriding some of the built-in templates. 14 |

15 | Back 16 |
17 | {% endblock body %} 18 | -------------------------------------------------------------------------------- /examples/custom-layout/templates/create.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/create.html' %} 2 | 3 | {% block brand %} 4 |

Create {{ admin_view.name|capitalize }}

5 |
6 |
7 | {% endblock %} 8 | 9 | {% block body %} 10 | {% call lib.form_tag(form) %} 11 | {{ lib.render_form_fields(form, form_opts=form_opts) }} 12 |
13 | {{ lib.render_form_buttons(return_url, extra()) }} 14 |
15 | {% endcall %} 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /examples/custom-layout/templates/edit.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/edit.html' %} 2 | 3 | {% block brand %} 4 |

Edit {{ admin_view.name|capitalize }}

5 |
6 |
7 | {% endblock %} 8 | 9 | {% block body %} 10 | {% call lib.form_tag(form) %} 11 | {{ lib.render_form_fields(form, form_opts=form_opts) }} 12 |
13 | {{ lib.render_form_buttons(return_url) }} 14 |
15 | {% endcall %} 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /examples/datetime-timezone/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/datetime-timezone/__init__.py -------------------------------------------------------------------------------- /examples/datetime-timezone/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask-Admin 2 | flask-sqlalchemy 3 | -------------------------------------------------------------------------------- /examples/forms-files-images/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = "petrus" 2 | -------------------------------------------------------------------------------- /examples/forms-files-images/files/3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/3d364b7a-7ccf-4a08-b362-a9d2a3b8cf05_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/buffalo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/buffalo.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/buffalo_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/buffalo_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/elephant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/elephant.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/elephant_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/elephant_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/example_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/example_1.pdf -------------------------------------------------------------------------------- /examples/forms-files-images/files/example_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/example_2.pdf -------------------------------------------------------------------------------- /examples/forms-files-images/files/example_3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/example_3.pdf -------------------------------------------------------------------------------- /examples/forms-files-images/files/leopard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/leopard.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/leopard_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/leopard_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/lion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/lion.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/lion_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/lion_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/rhino.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/rhino.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/files/rhino_thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/forms-files-images/files/rhino_thumb.jpg -------------------------------------------------------------------------------- /examples/forms-files-images/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy,images,rediscli] 3 | -------------------------------------------------------------------------------- /examples/forms-files-images/templates/create_page.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/create.html' %} 2 | 3 | {% block tail %} 4 | {{ super() }} 5 | 6 | 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /examples/forms-files-images/templates/create_user.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/create.html' %} 2 | {% import 'macros.html' as rule_demo %} 3 | -------------------------------------------------------------------------------- /examples/forms-files-images/templates/edit_page.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/edit.html' %} 2 | 3 | {% block tail %} 4 | {{ super() }} 5 | 6 | 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /examples/forms-files-images/templates/edit_user.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/edit.html' %} 2 | {% import 'macros.html' as rule_demo %} 3 | -------------------------------------------------------------------------------- /examples/forms-files-images/templates/macros.html: -------------------------------------------------------------------------------- 1 | {% macro wrap() %} 2 |
3 | {{ caller() }} 4 |
5 | {% endmacro %} 6 | -------------------------------------------------------------------------------- /examples/geo_alchemy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/geo_alchemy/__init__.py -------------------------------------------------------------------------------- /examples/geo_alchemy/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy,geoalchemy] 3 | 4 | psycopg2 5 | -------------------------------------------------------------------------------- /examples/host-matching/requirements.txt: -------------------------------------------------------------------------------- 1 | ../.. 2 | -------------------------------------------------------------------------------- /examples/host-matching/templates/first.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | First admin view. 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/host-matching/templates/second.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Second admin view. 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/host-matching/templates/third.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Third admin view. 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/methodview/README.rst: -------------------------------------------------------------------------------- 1 | Example which shows how to integrate Flask `MethodView` with Flask-Admin. 2 | 3 | To run this example: 4 | 5 | 1. Clone the repository and navigate to this example:: 6 | 7 | git clone https://github.com/pallets-eco/flask-admin.git 8 | cd flask-admin/examples/methodview 9 | 10 | 2. Create and activate a virtual environment:: 11 | 12 | virtualenv env 13 | source env/bin/activate 14 | 15 | 3. Install requirements:: 16 | 17 | pip install -r requirements.txt 18 | 19 | 4. Run the application:: 20 | 21 | python app.py 22 | -------------------------------------------------------------------------------- /examples/methodview/requirements.txt: -------------------------------------------------------------------------------- 1 | ../.. 2 | -------------------------------------------------------------------------------- /examples/methodview/templates/methodtest.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Hello World from MethodTest!
4 |
5 | 6 | v1 via GET 7 |
8 |
9 | 10 | v2 via GET 11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /examples/methodview/templates/test.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | This view {{ name }} was accessed using {{ request.method }} request. 4 | 5 |
6 | Return 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /examples/multiple-admin-instances/requirements.txt: -------------------------------------------------------------------------------- 1 | ../.. 2 | -------------------------------------------------------------------------------- /examples/multiple-admin-instances/templates/first.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | First admin view. 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/multiple-admin-instances/templates/second.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Second admin view. 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/peewee/README.rst: -------------------------------------------------------------------------------- 1 | Peewee model backend integration example. 2 | 3 | To run this example: 4 | 5 | 1. Clone the repository and navigate to this example:: 6 | 7 | git clone https://github.com/pallets-eco/flask-admin.git 8 | cd flask-admin/examples/peewee 9 | 10 | 2. Create and activate a virtual environment:: 11 | 12 | virtualenv env 13 | source env/bin/activate 14 | 15 | 3. Install requirements:: 16 | 17 | pip install -r requirements.txt 18 | 19 | 4. Run the application:: 20 | 21 | python app.py 22 | -------------------------------------------------------------------------------- /examples/peewee/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[peewee] 2 | -------------------------------------------------------------------------------- /examples/pymongo/README.rst: -------------------------------------------------------------------------------- 1 | PyMongo model backend integration example. 2 | 3 | To run this example: 4 | 5 | 1. Clone the repository and navigate to this example:: 6 | 7 | git clone https://github.com/pallets-eco/flask-admin.git 8 | cd flask-admin/examples/pymongo 9 | 10 | 2. Create and activate a virtual environment:: 11 | 12 | virtualenv env 13 | source env/bin/activate 14 | 15 | 3. Install requirements:: 16 | 17 | pip install -r requirements.txt 18 | 19 | 4. Run the application:: 20 | 21 | python app.py 22 | -------------------------------------------------------------------------------- /examples/pymongo/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[pymongo] 2 | 3 | pymongo>=4,<5 4 | -------------------------------------------------------------------------------- /examples/s3/README.md: -------------------------------------------------------------------------------- 1 | # S3 Example 2 | 3 | Flask-Admin example for an S3 bucket. 4 | 5 | To run this example: 6 | 7 | 1. Clone the repository and navigate to this example:: 8 | 9 | git clone https://github.com/pallets-eco/flask-admin.git 10 | cd flask-admin/examples/s3 11 | 12 | 2. Create and activate a virtual environment:: 13 | 14 | python -m venv venv 15 | source venv/bin/activate 16 | 17 | 3. Install requirements:: 18 | 19 | pip install -r requirements.txt 20 | 21 | 4. Run the application:: 22 | 23 | python app.py 24 | -------------------------------------------------------------------------------- /examples/s3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/s3/__init__.py -------------------------------------------------------------------------------- /examples/s3/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[s3] 2 | testcontainers 3 | -------------------------------------------------------------------------------- /examples/simple/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/simple/__init__.py -------------------------------------------------------------------------------- /examples/simple/requirements.txt: -------------------------------------------------------------------------------- 1 | ../.. 2 | -------------------------------------------------------------------------------- /examples/simple/templates/anotheradmin.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Hello World from AnotherMyAdmin!
4 | Click me to go to test view 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /examples/simple/templates/myadmin.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | Hello World from MyAdmin! 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/simple/templates/test.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% block body %} 3 | This is TEST subitem from the AnotherAdminView! 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /examples/sqla-association_proxy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/sqla-association_proxy/__init__.py -------------------------------------------------------------------------------- /examples/sqla-association_proxy/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[sqlalchemy] 2 | -------------------------------------------------------------------------------- /examples/sqla-custom-inline-forms/README.rst: -------------------------------------------------------------------------------- 1 | This example shows how to use inline forms when working with related models. 2 | 3 | To run this example: 4 | 5 | 1. Clone the repository and navigate to this example:: 6 | 7 | git clone https://github.com/pallets-eco/flask-admin.git 8 | cd flask-admin/examples/sqla-custom-inline-forms 9 | 10 | 2. Create and activate a virtual environment:: 11 | 12 | virtualenv env 13 | source env/bin/activate 14 | 15 | 3. Install requirements:: 16 | 17 | pip install -r requirements.txt 18 | 19 | 4. Run the application:: 20 | 21 | python app.py 22 | -------------------------------------------------------------------------------- /examples/sqla-custom-inline-forms/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[sqlalchemy] 2 | -------------------------------------------------------------------------------- /examples/sqla-custom-inline-forms/static/7b1468ff-019a-44d1-b4bb-729e5a252899.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/sqla-custom-inline-forms/static/7b1468ff-019a-44d1-b4bb-729e5a252899.jpg -------------------------------------------------------------------------------- /examples/sqla-custom-inline-forms/templates/field_list.html: -------------------------------------------------------------------------------- 1 | {% import 'admin/model/inline_list_base.html' as base with context %} 2 | 3 | {% macro render_field(field) %} 4 | {% set model = field.object_data %} 5 | {% if model and model.path %} 6 | {{ field.form.id }} 7 | 8 | {% else %} 9 | {{ field }} 10 | {% endif %} 11 | {% endmacro %} 12 | 13 | {{ base.render_inline_fields(field, template, render_field) }} 14 | -------------------------------------------------------------------------------- /examples/sqla-custom-inline-forms/templates/locations.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% for loc in locations %} 4 |

{{ loc.name }}

5 | {% for img in loc.images %} 6 | {{ img.alt }} 7 | {% endfor %} 8 |
9 | {% endfor %} 10 | Open admin to upload some images. 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/sqla/admin/config.py: -------------------------------------------------------------------------------- 1 | # Create dummy secrey key so we can use sessions 2 | SECRET_KEY = "123456790" 3 | 4 | # Create in-memory database 5 | DATABASE_FILE = "sample_db.sqlite" 6 | SQLALCHEMY_DATABASE_URI = "sqlite:///" + DATABASE_FILE 7 | SQLALCHEMY_ECHO = True 8 | SQLALCHEMY_TRACK_MODIFICATIONS = False 9 | -------------------------------------------------------------------------------- /examples/sqla/admin/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/examples/sqla/admin/static/favicon.ico -------------------------------------------------------------------------------- /examples/sqla/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install Flask-Admin with required extras from the root of the repository 2 | ../..[sqlalchemy-with-utils,export,translation] 3 | -------------------------------------------------------------------------------- /examples/tinymongo/requirements.txt: -------------------------------------------------------------------------------- 1 | ../..[pymongo] 2 | 3 | git+https://github.com/schapman1974/tinymongo.git#egg=tinymongo 4 | -------------------------------------------------------------------------------- /flask_admin/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "2.0.0a4" 2 | __author__ = "Flask-Admin team" 3 | __email__ = "contact@palletsproject.com" 4 | 5 | 6 | from .base import Admin # noqa: F401 7 | from .base import AdminIndexView # noqa: F401 8 | from .base import BaseView # noqa: F401 9 | from .base import expose # noqa: F401 10 | from .base import expose_plugview # noqa: F401 11 | -------------------------------------------------------------------------------- /flask_admin/consts.py: -------------------------------------------------------------------------------- 1 | # bootstrap glyph icon 2 | ICON_TYPE_GLYPH = "glyph" 3 | # font awesome glyph icon 4 | ICON_TYPE_FONT_AWESOME = "fa" 5 | # image relative to Flask static folder 6 | ICON_TYPE_IMAGE = "image" 7 | # external image 8 | ICON_TYPE_IMAGE_URL = "image-url" 9 | 10 | 11 | ADMIN_ROUTES_HOST_VARIABLE = "" 12 | ADMIN_ROUTES_HOST_VARIABLE_NAME = "admin_routes_host" 13 | -------------------------------------------------------------------------------- /flask_admin/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | __path__ = __import__("pkgutil").extend_path(__path__, __name__) 3 | except ImportError: 4 | pass 5 | -------------------------------------------------------------------------------- /flask_admin/contrib/geoa/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | try: 3 | import geoalchemy2 4 | import shapely 5 | except ImportError: 6 | raise Exception( 7 | "Could not import `geoalchemy2` or `shapely`. " 8 | "Enable `geoalchemy` integration by installing `flask-admin[geoalchemy]`" 9 | ) 10 | 11 | from .view import ModelView 12 | -------------------------------------------------------------------------------- /flask_admin/contrib/geoa/view.py: -------------------------------------------------------------------------------- 1 | from flask_admin.contrib.geoa import form 2 | from flask_admin.contrib.geoa import typefmt 3 | from flask_admin.contrib.sqla import ModelView as SQLAModelView 4 | 5 | 6 | class ModelView(SQLAModelView): 7 | model_form_converter = form.AdminModelConverter 8 | column_type_formatters = typefmt.DEFAULT_FORMATTERS 9 | # tile_layer_url is prefixed with '//' in flask_admin/static/admin/js/form.js 10 | # Leave it as None or set it to a string starting with a hostname, NOT "http". 11 | tile_layer_url = None 12 | tile_layer_attribution = None 13 | -------------------------------------------------------------------------------- /flask_admin/contrib/peewee/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | try: 3 | import peewee 4 | import wtfpeewee 5 | except ImportError: 6 | raise Exception( 7 | "Could not import `peewee` or `wtfpeewee`. " 8 | "Enable `peewee` integration by installing `flask-admin[peewee]`" 9 | ) 10 | 11 | from .view import ModelView 12 | -------------------------------------------------------------------------------- /flask_admin/contrib/peeweemodel/__init__.py: -------------------------------------------------------------------------------- 1 | def setup() -> None: 2 | import warnings 3 | 4 | warnings.warn( 5 | "Flask-Admin peewee integration module was renamed as " 6 | "flask_admin.contrib.peewee, please use it instead.", 7 | stacklevel=1, 8 | ) 9 | 10 | from flask_admin._backwards import import_redirect 11 | 12 | import_redirect(__name__, "flask_admin.contrib.peewee") 13 | 14 | 15 | setup() 16 | del setup 17 | 18 | from ..peewee.view import ModelView # noqa: F401, E402 19 | -------------------------------------------------------------------------------- /flask_admin/contrib/pymongo/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | try: 3 | import pymongo 4 | except ImportError: 5 | raise Exception( 6 | "Could not import `pymongo`. " 7 | "Enable `pymongo` integration by installing `flask-admin[pymongo]`" 8 | ) 9 | 10 | from .view import ModelView 11 | -------------------------------------------------------------------------------- /flask_admin/contrib/pymongo/tools.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | 4 | def parse_like_term(term: str) -> str: 5 | """ 6 | Parse search term into (operation, term) tuple 7 | 8 | :param term: 9 | Search term 10 | """ 11 | if term.startswith("^"): 12 | return f"^{re.escape(term[1:])}" 13 | elif term.startswith("="): 14 | return f"^{re.escape(term[1:])}$" 15 | 16 | return re.escape(term) 17 | -------------------------------------------------------------------------------- /flask_admin/contrib/pymongo/typefmt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/contrib/pymongo/typefmt.py -------------------------------------------------------------------------------- /flask_admin/contrib/sqla/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | from .view import ModelView 3 | -------------------------------------------------------------------------------- /flask_admin/contrib/sqlamodel/__init__.py: -------------------------------------------------------------------------------- 1 | def setup() -> None: 2 | import warnings 3 | 4 | warnings.warn( 5 | "Flask-Admin sqlalchemy integration module was renamed as " 6 | "flask_admin.contrib.sqla, please use it instead.", 7 | stacklevel=1, 8 | ) 9 | 10 | from flask_admin._backwards import import_redirect 11 | 12 | import_redirect(__name__, "flask_admin.contrib.sqla") 13 | 14 | 15 | setup() 16 | del setup 17 | 18 | from ..sqla.view import ModelView # noqa: F401, E402 19 | -------------------------------------------------------------------------------- /flask_admin/model/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | from .base import BaseModelView 3 | from .form import InlineFormAdmin 4 | from flask_admin.actions import action 5 | -------------------------------------------------------------------------------- /flask_admin/static/admin/css/bootstrap4/submenu.css: -------------------------------------------------------------------------------- 1 | .nav li.dropdown ul.dropdown-menu li:hover ul { 2 | display:block; 3 | position:absolute; 4 | left:100%; 5 | -webkit-border-radius: 3px; 6 | -moz-border-radius: 3px; 7 | border-radius: 3px; 8 | } 9 | .nav li.dropdown ul.dropdown-menu ul { 10 | display: none; 11 | float:right; 12 | position: relative; 13 | top: auto; 14 | margin-top: -30px; 15 | } 16 | .nav li.dropdown a.dropdown-toggle .glyphicon { 17 | margin: 0 4px; 18 | } 19 | -------------------------------------------------------------------------------- /flask_admin/static/admin/js/bs4_modal.js: -------------------------------------------------------------------------------- 1 | // fixes "content does not load remote modal on clicked modal button" 2 | $('body').on('click.modal.data-api', '[data-toggle="modal"]', function () { 3 | $($(this).data("target") + ' .modal-content').load($(this).attr('href')); 4 | }); 5 | -------------------------------------------------------------------------------- /flask_admin/static/admin/js/details_filter.js: -------------------------------------------------------------------------------- 1 | // filters the details table based on input 2 | $(document).ready(function () { 3 | $('#fa_filter').keyup(function () { 4 | var rex = new RegExp($(this).val(), 'i'); 5 | $('.searchable tr').hide(); 6 | $('.searchable tr').filter(function () { 7 | return rex.test($(this).text()); 8 | }).show(); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /flask_admin/static/admin/js/helpers.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | window.faHelpers = { 3 | // A simple confirm() wrapper 4 | safeConfirm: function(msg) { 5 | try { 6 | return confirm(msg) ? true : false; 7 | } catch (e) { 8 | return false; 9 | } 10 | } 11 | }; 12 | })(); 13 | -------------------------------------------------------------------------------- /flask_admin/static/bootstrap/bootstrap4/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/bootstrap/bootstrap4/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/bootstrap/bootstrap4/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .@{fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 100% { 17 | transform: rotate(360deg); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | border-radius: .1em; 6 | border: solid .08em @fa-border-color; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 5 | -moz-osx-font-smoothing: grayscale; 6 | -webkit-font-smoothing: antialiased; 7 | display: inline-block; 8 | font-style: normal; 9 | font-variant: normal; 10 | text-rendering: auto; 11 | line-height: 1; 12 | } 13 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: @fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .@{fa-css-prefix}-li { 13 | left: -@fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: @fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/_screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/less/v4-shims.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'shims'; 7 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .#{$fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 17 | 100% { 18 | transform: rotate(360deg); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | border: solid .08em $fa-border-color; 6 | border-radius: .1em; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix}, 14 | .fas, 15 | .far, 16 | .fal, 17 | .fab { 18 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 19 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 20 | } 21 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}, 5 | .fas, 6 | .far, 7 | .fal, 8 | .fab { 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-font-smoothing: antialiased; 11 | display: inline-block; 12 | font-style: normal; 13 | font-variant: normal; 14 | text-rendering: auto; 15 | line-height: 1; 16 | } 17 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | // makes the font 33% larger relative to the icon container 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -.0667em; 9 | } 10 | 11 | .#{$fa-css-prefix}-xs { 12 | font-size: .75em; 13 | } 14 | 15 | .#{$fa-css-prefix}-sm { 16 | font-size: .875em; 17 | } 18 | 19 | @for $i from 1 through 10 { 20 | .#{$fa-css-prefix}-#{$i}x { 21 | font-size: $i * 1em; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: $fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .#{$fa-css-prefix}-li { 13 | left: -$fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: $fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only; } 5 | .sr-only-focusable { @include sr-only-focusable; } 6 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/fontawesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'mixins'; 7 | @import 'core'; 8 | @import 'larger'; 9 | @import 'fixed-width'; 10 | @import 'list'; 11 | @import 'bordered-pulled'; 12 | @import 'animated'; 13 | @import 'rotated-flipped'; 14 | @import 'stacked'; 15 | @import 'icons'; 16 | @import 'screen-reader'; 17 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/scss/v4-shims.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'shims'; 7 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/adn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/angular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/autoprefixer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/bandcamp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/bitbucket.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/black-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/buysellads.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/cloudsmith.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/css3-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/css3.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/cuttlefish.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/dashcube.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/deviantart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/discourse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/dochub.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/dropbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/dyalog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/elementor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/ethereum.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/facebook-f.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/facebook-messenger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/facebook-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/firstdraft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/flipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/gitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/google-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/google-play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/google.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/gratipay.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/hacker-news.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/hotjar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/houzz.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/html5.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/korvue.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/magento.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/maxcdn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/mix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/modx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/monero.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/npm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/openid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/patreon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/product-hunt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/rockrms.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/servicestack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/stack-exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/stack-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/telegram-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/uikit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/viacoin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/vuejs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/y-combinator.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/yandex-international.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/brands/yandex.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/regular/window-restore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/adjust.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/archive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-alt-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-alt-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-alt-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-alt-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/battery-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/battery-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/battery-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/battery-quarter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/battery-three-quarters.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/box.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/burn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/caret-square-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chalkboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chart-area.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chevron-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chevron-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chevron-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chevron-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/clone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/coffee.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/comment.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/compact-disc.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/desktop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/dice-one.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/dice-two.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/divide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/dot-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/ellipsis-h.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/ellipsis-v.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/equals.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/fast-backward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/fast-forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/gem.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/genderless.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/glass-martini-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/glass-martini.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/hockey-puck.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/hospital-symbol.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/industry.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/location-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/long-arrow-alt-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/long-arrow-alt-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/long-arrow-alt-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/long-arrow-alt-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/map-marker-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/map-marker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/map.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/meh-blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/meh.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/minus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/minus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/music.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/paper-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/pause-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/pen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/qrcode.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/seedling.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/shield-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/sign.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/square-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/step-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/suitcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/table.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/user-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/user-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/user.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/utensil-spoon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/video.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/volume-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/svgs/solid/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/fontawesome-free-5.1.0-web/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/layers.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/spritesheet-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/spritesheet-2x.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/leaflet/images/spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/leaflet/images/spritesheet.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/multi-level-dropdowns-bootstrap/bootstrap4-dropdown-ml-hack-hover.css: -------------------------------------------------------------------------------- 1 | .dropdown-hover-all .dropdown-menu, .dropdown-hover > .dropdown-menu { margin:0 } 2 | -------------------------------------------------------------------------------- /flask_admin/static/vendor/select2/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/select2/select2-spinner.gif -------------------------------------------------------------------------------- /flask_admin/static/vendor/select2/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/select2/select2.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/select2/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/select2/select2x2.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/x-editable/img/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/x-editable/img/clear.png -------------------------------------------------------------------------------- /flask_admin/static/vendor/x-editable/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/static/vendor/x-editable/img/loading.gif -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/file/form.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | {% import 'admin/lib.html' as lib with context %} 3 | 4 | {% block body %} 5 | {% block header %}

{{ header_text }}

{% endblock %} 6 | {% block fa_form %} 7 | {{ lib.render_form(form, dir_url) }} 8 | {% endblock %} 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/master.html' %} 2 | 3 | {% block body %} 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/master.html: -------------------------------------------------------------------------------- 1 | {% extends admin_base_template %} 2 | -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/model/inline_field_list.html: -------------------------------------------------------------------------------- 1 | {% import 'admin/model/inline_list_base.html' as base with context %} 2 | 3 | {% macro render_field(field) %} 4 | {{ field }} 5 | 6 | {% if h.is_field_error(field.errors) %} 7 |
    8 | {% for e in field.errors if e is string %} 9 |
  • {{ e }}
  • 10 | {% endfor %} 11 |
12 | {% endif %} 13 | {% endmacro %} 14 | 15 | {{ base.render_inline_fields(field, template, render_field, check) }} 16 | -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/model/inline_form.html: -------------------------------------------------------------------------------- 1 | {% import 'admin/lib.html' as lib with context %} 2 |
3 | {{ lib.render_form_fields(field.form, form_opts=form_opts) }} 4 |
5 | -------------------------------------------------------------------------------- /flask_admin/templates/bootstrap4/admin/static.html: -------------------------------------------------------------------------------- 1 | {% macro url() -%} 2 | {{ get_url('{admin_endpoint}.static'.format(admin_endpoint=admin_view.admin.endpoint), *varargs, **kwargs) }} 3 | {%- endmacro %} 4 | -------------------------------------------------------------------------------- /flask_admin/tests/data/copyleft.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/data/copyleft.gif -------------------------------------------------------------------------------- /flask_admin/tests/data/copyleft.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/data/copyleft.jpeg -------------------------------------------------------------------------------- /flask_admin/tests/data/copyleft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/data/copyleft.jpg -------------------------------------------------------------------------------- /flask_admin/tests/data/copyleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/data/copyleft.png -------------------------------------------------------------------------------- /flask_admin/tests/data/copyleft.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/data/copyleft.tiff -------------------------------------------------------------------------------- /flask_admin/tests/fileadmin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/fileadmin/__init__.py -------------------------------------------------------------------------------- /flask_admin/tests/fileadmin/files/dummy.txt: -------------------------------------------------------------------------------- 1 | new_string 2 | -------------------------------------------------------------------------------- /flask_admin/tests/geoa/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/geoa/__init__.py -------------------------------------------------------------------------------- /flask_admin/tests/mock.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/mock.py -------------------------------------------------------------------------------- /flask_admin/tests/peeweemodel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/peeweemodel/__init__.py -------------------------------------------------------------------------------- /flask_admin/tests/peeweemodel/conftest.py: -------------------------------------------------------------------------------- 1 | import peewee 2 | import pytest 3 | 4 | from flask_admin import Admin 5 | 6 | 7 | @pytest.fixture 8 | def db(): 9 | db = peewee.SqliteDatabase(":memory:") 10 | yield db 11 | 12 | 13 | @pytest.fixture 14 | def admin(app, babel, db): 15 | app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" 16 | 17 | admin = Admin(app) 18 | yield admin 19 | -------------------------------------------------------------------------------- /flask_admin/tests/pymongo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/pymongo/__init__.py -------------------------------------------------------------------------------- /flask_admin/tests/pymongo/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from pymongo import MongoClient 3 | 4 | from flask_admin import Admin 5 | 6 | 7 | @pytest.fixture 8 | def db(): 9 | client = MongoClient() 10 | db = client.tests 11 | yield db 12 | client.close() 13 | 14 | 15 | @pytest.fixture 16 | def admin(app, babel, db): 17 | admin = Admin(app) 18 | yield admin 19 | -------------------------------------------------------------------------------- /flask_admin/tests/sqla/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/tests/sqla/__init__.py -------------------------------------------------------------------------------- /flask_admin/tests/sqla/templates/another_macro.html: -------------------------------------------------------------------------------- 1 | {% macro another_test() %} 2 | Hello another_test 3 | {% endmacro %} 4 | -------------------------------------------------------------------------------- /flask_admin/tests/sqla/templates/macro.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/create.html' %} 2 | {% import 'another_macro.html' as test_lib %} 3 | 4 | {% macro test(arg) %} 5 | Value = {{ arg }} 6 | {% endmacro %} 7 | 8 | {% macro wrap() %} 9 | 10 | {{ caller() }} 11 | 12 | {% endmacro %} 13 | -------------------------------------------------------------------------------- /flask_admin/tests/templates/method.html: -------------------------------------------------------------------------------- 1 | {{ request.method }} - {{ name }} 2 | -------------------------------------------------------------------------------- /flask_admin/tests/templates/mock.html: -------------------------------------------------------------------------------- 1 | {% if admin_view %}Success!{% else %}Failure{% endif %} 2 | -------------------------------------------------------------------------------- /flask_admin/theme.py: -------------------------------------------------------------------------------- 1 | import typing 2 | from dataclasses import dataclass 3 | from functools import partial 4 | 5 | 6 | @dataclass 7 | class Theme: 8 | folder: str # The templates folder name to use 9 | base_template: str 10 | 11 | 12 | @dataclass 13 | class BootstrapTheme(Theme): 14 | folder: typing.Literal["bootstrap4"] 15 | base_template: str = "admin/base.html" 16 | swatch: str = "default" 17 | fluid: bool = False 18 | 19 | 20 | Bootstrap4Theme = partial(BootstrapTheme, folder="bootstrap4") 21 | -------------------------------------------------------------------------------- /flask_admin/translations/README.md: -------------------------------------------------------------------------------- 1 | Translations are ONLY handled through Crowdin! 2 | https://crowdin.com/project/flask-admin 3 | -------------------------------------------------------------------------------- /flask_admin/translations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/__init__.py -------------------------------------------------------------------------------- /flask_admin/translations/af/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/af/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ar/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ar/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/be/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/be/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ca_ES/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ca_ES/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/cs/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/cs/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/da/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/da/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/de/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/de/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/el/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/el/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/en/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/en/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/es/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/es/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/et/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/et/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/fa/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/fa/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/fi/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/fi/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/fr/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/fr/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/he/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/he/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/hu/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/hu/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/it/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/it/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ja/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ja/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ko/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ko/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/nl/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/nl/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/no/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/no/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/pa/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/pa/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/pl/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/pl/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/pt/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/pt/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/pt_BR/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/pt_BR/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ro/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ro/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/ru/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/ru/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/sk/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/sk/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/sr/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/sr/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/sv/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/sv/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/tr/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/tr/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/uk/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/uk/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/vi/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/vi/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/zh_Hans_CN/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/zh_Hans_CN/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /flask_admin/translations/zh_Hant_TW/LC_MESSAGES/admin.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/flask_admin/translations/zh_Hant_TW/LC_MESSAGES/admin.mo -------------------------------------------------------------------------------- /projects.rst: -------------------------------------------------------------------------------- 1 | Notable projects using Flask-Admin 2 | ---------------------------------- 3 | 4 | * `Inventory Checkin `_ 5 | * `Parliamentary Monitoring Group (South Africa) `_ 6 | 7 | If you have open source project that uses Flask-Admin, send me a link and I will add it to the list. 8 | -------------------------------------------------------------------------------- /requirements/build.in: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /requirements/build.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.8 3 | # by the following command: 4 | # 5 | # pip-compile build.in 6 | # 7 | build==1.2.2.post1 8 | # via -r build.in 9 | importlib-metadata==8.4.0 10 | # via build 11 | packaging==24.1 12 | # via build 13 | pyproject-hooks==1.1.0 14 | # via build 15 | tomli==2.0.1 16 | # via build 17 | zipp==3.20.1 18 | # via importlib-metadata 19 | -------------------------------------------------------------------------------- /requirements/dev.in: -------------------------------------------------------------------------------- 1 | -r docs.txt 2 | -r tests.in 3 | -r typing.txt 4 | 5 | pre-commit 6 | tox 7 | -------------------------------------------------------------------------------- /requirements/docs.in: -------------------------------------------------------------------------------- 1 | -r tests.in 2 | 3 | pallets-sphinx-themes 4 | sphinx 5 | sphinxcontrib-log-cabinet 6 | -------------------------------------------------------------------------------- /requirements/tests.in: -------------------------------------------------------------------------------- 1 | flake8 2 | pylint 3 | pytest 4 | pytest-cov 5 | moto 6 | botocore>=1.35 7 | 8 | psycopg2 9 | beautifulsoup4 10 | -------------------------------------------------------------------------------- /requirements/typing.in: -------------------------------------------------------------------------------- 1 | -r tests.in 2 | 3 | mypy 4 | pyright 5 | pytest 6 | types-Flask-SQLAlchemy 7 | types-Pillow 8 | types-beautifulsoup4 9 | types-boto3 10 | types-peewee 11 | types-Flask 12 | types-WTForms 13 | types-shapely 14 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallets-eco/flask-admin/3f1e56b96d7db20ddcaa289320f14df16eb33d07/setup.cfg --------------------------------------------------------------------------------