├── wildewidgets ├── settings.py ├── templatetags │ ├── __init__.py │ └── wildewidgets.py ├── admin.py ├── templates │ └── wildewidgets │ │ ├── list_model_widget.html │ │ ├── html_widget.html │ │ ├── markdown_widget.html │ │ ├── link_button.html │ │ ├── crispy_form_modal.html │ │ ├── crispy_form_widget.html │ │ ├── widget_stream.html │ │ ├── header_with_widget.html │ │ ├── header_with_link_button.html │ │ ├── header_with_modal_button.html │ │ ├── header_with_collapse_button.html │ │ ├── button--form.html │ │ ├── widget-list.html │ │ ├── widget_index.html │ │ ├── apex_json.html │ │ ├── initials_avatar.html │ │ ├── apex_chart.html │ │ ├── header_with_controls.html │ │ ├── block--simple.html │ │ ├── widget-list--main.html │ │ ├── widget-list--sidebar.html │ │ ├── block.html │ │ ├── card_block.html │ │ ├── altairchart.html │ │ ├── modal.html │ │ ├── page_tab_block.html │ │ ├── tab_block.html │ │ ├── doughnutchart_json.html │ │ ├── paged_model_widget.html │ │ ├── doughnutchart.html │ │ ├── stackedbarchart_json.html │ │ ├── stackedbarchart.html │ │ ├── barchart.html │ │ ├── menu.html │ │ └── categorychart.html ├── tests.py ├── static │ └── wildewidgets │ │ ├── css │ │ ├── _widget-list.scss │ │ ├── wildewidgets.scss │ │ ├── _widget-index.scss │ │ ├── table_extra.css │ │ ├── _toggleablemanytomanyfieldblock.scss │ │ ├── _navbar.scss │ │ └── highlighting.css │ │ ├── images │ │ └── placeholder.png │ │ └── js │ │ └── wildewidgets.js ├── apps.py ├── widgets │ ├── charts │ │ ├── __init__.py │ │ └── altair.py │ ├── tables │ │ ├── __init__.py │ │ └── components.py │ ├── __init__.py │ ├── icons.py │ └── modals.py ├── views │ ├── __init__.py │ ├── tables.py │ └── json.py └── __init__.py ├── demo ├── demo │ ├── core │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ ├── 0001_initial.py │ │ │ └── 0002_initial_data.py │ │ ├── templatetags │ │ │ └── __init__.py │ │ ├── __init__.py │ │ ├── tests.py │ │ ├── forms.py │ │ ├── static │ │ │ └── core │ │ │ │ └── images │ │ │ │ └── dark_logo.png │ │ ├── apps.py │ │ ├── jobs.py │ │ ├── admin.py │ │ ├── models.py │ │ ├── urls.py │ │ ├── templates │ │ │ └── core │ │ │ │ └── intermediate.html │ │ ├── fixtures │ │ │ └── users.json │ │ └── views.py │ ├── users │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ ├── 0002_load_fixture.py │ │ │ └── 0001_initial.py │ │ ├── __init__.py │ │ ├── tests.py │ │ ├── apps.py │ │ ├── models.py │ │ ├── templates │ │ │ ├── users │ │ │ │ └── intermediate.html │ │ │ └── registration │ │ │ │ └── login.html │ │ └── fixtures │ │ │ └── users.json │ ├── __init__.py │ ├── urls.py │ ├── settings_docker.py │ ├── gunicorn_config.py │ └── wsgi.py ├── .dockerignore ├── bin │ ├── restart-gunicorn.sh │ ├── collectstatic.sh │ └── wait-for-it.sh ├── etc │ ├── ipython_config.py │ ├── gunicorn_logging.conf │ ├── supervisord.conf │ ├── environment.txt │ └── nginx.conf ├── sql │ └── docker │ │ ├── init.sql │ │ └── my.cnf ├── setup.py ├── setup.cfg ├── manage.py ├── docker-compose.yml ├── Makefile ├── .gitignore ├── Dockerfile ├── README.md └── requirements.txt ├── .autoenv ├── docs ├── favicon.ico ├── demo_ss_home.png ├── _static │ ├── favicon.ico │ ├── wildewidgets.png │ ├── wildewidgets_logo.png │ ├── wildewidgets_logo.pxd │ ├── wildewidgets_dark_mode_logo.png │ └── wildewidgets_dark_mode_logo.pxd ├── demo_ss_simple_table.png ├── api_icons.rst ├── api_base.rst ├── api_grid.rst ├── api_misc.rst ├── api_text.rst ├── api_layout.rst ├── api_modals.rst ├── api_buttons.rst ├── api_headers.rst ├── api_datagrid.rst ├── api_forms.rst ├── api_structure.rst ├── charts.rst ├── guide.rst ├── api_navigation.rst ├── api.rst ├── requirements.txt ├── api_charts.rst ├── api_tables.rst ├── Makefile ├── make.bat ├── index.rst ├── scientific_charts.rst ├── api_views.rst ├── widgets.rst ├── install.rst ├── conf.py └── business_charts.rst ├── .autoenv.leave ├── MANIFEST.in ├── .readthedocs.yaml ├── .bumpversion.cfg ├── Makefile ├── bin └── release.sh ├── LICENSE.txt ├── .gitignore ├── README.md └── requirements.txt /wildewidgets/settings.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demo/demo/core/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demo/demo/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wildewidgets/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demo/demo/core/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demo/demo/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "1.2.4" 2 | -------------------------------------------------------------------------------- /wildewidgets/admin.py: -------------------------------------------------------------------------------- 1 | # Register your models here. 2 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/list_model_widget.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demo/.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .idea 3 | 4 | 5 | /*.sql 6 | 7 | tags 8 | -------------------------------------------------------------------------------- /demo/bin/restart-gunicorn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | killall -HUP gunicorn 3 | -------------------------------------------------------------------------------- /demo/demo/core/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'demo.core.apps.CoreConfig' 2 | -------------------------------------------------------------------------------- /demo/demo/users/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'demo.users.apps.UsersConfig' 2 | -------------------------------------------------------------------------------- /.autoenv: -------------------------------------------------------------------------------- 1 | if [[ -f .venv/bin/activate ]]; then 2 | source .venv/bin/activate 3 | fi 4 | -------------------------------------------------------------------------------- /wildewidgets/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /demo/demo/core/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /demo/demo/users/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/favicon.ico -------------------------------------------------------------------------------- /.autoenv.leave: -------------------------------------------------------------------------------- 1 | CWD=$(pwd) 2 | if [[ ! $CWD == *"$VIRTUAL_ENV_PROMPT"* ]]; then 3 | deactivate 4 | fi 5 | -------------------------------------------------------------------------------- /docs/demo_ss_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/demo_ss_home.png -------------------------------------------------------------------------------- /docs/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/favicon.ico -------------------------------------------------------------------------------- /docs/_static/wildewidgets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/wildewidgets.png -------------------------------------------------------------------------------- /docs/demo_ss_simple_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/demo_ss_simple_table.png -------------------------------------------------------------------------------- /docs/api_icons.rst: -------------------------------------------------------------------------------- 1 | Icons 2 | ===== 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.icons 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/_static/wildewidgets_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/wildewidgets_logo.png -------------------------------------------------------------------------------- /docs/_static/wildewidgets_logo.pxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/wildewidgets_logo.pxd -------------------------------------------------------------------------------- /wildewidgets/static/wildewidgets/css/_widget-list.scss: -------------------------------------------------------------------------------- 1 | .widget-list { 2 | &__sidebar { 3 | font-size: 1.2rem; 4 | } 5 | } 6 | 7 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE.txt 2 | include README.md 3 | recursive-include wildewidgets/static * 4 | recursive-include wildewidgets/templates * 5 | -------------------------------------------------------------------------------- /demo/demo/core/forms.py: -------------------------------------------------------------------------------- 1 | #################################### 2 | # Define your core app's forms here. 3 | #################################### 4 | -------------------------------------------------------------------------------- /docs/api_base.rst: -------------------------------------------------------------------------------- 1 | Base Widgets 2 | ============ 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.base 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_grid.rst: -------------------------------------------------------------------------------- 1 | Boostrap Grid 2 | ============= 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.grid 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_misc.rst: -------------------------------------------------------------------------------- 1 | Misc Widgets 2 | ============ 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.misc 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_text.rst: -------------------------------------------------------------------------------- 1 | Text Widgets 2 | ============ 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.text 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_layout.rst: -------------------------------------------------------------------------------- 1 | Layout Widget 2 | ============= 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.layout 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_modals.rst: -------------------------------------------------------------------------------- 1 | Modal Widgets 2 | ============= 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.modals 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /demo/demo/users/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UsersConfig(AppConfig): 5 | name = 'demo.users' 6 | label = 'users' 7 | -------------------------------------------------------------------------------- /docs/_static/wildewidgets_dark_mode_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/wildewidgets_dark_mode_logo.png -------------------------------------------------------------------------------- /docs/_static/wildewidgets_dark_mode_logo.pxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/docs/_static/wildewidgets_dark_mode_logo.pxd -------------------------------------------------------------------------------- /docs/api_buttons.rst: -------------------------------------------------------------------------------- 1 | Button Widgets 2 | ============== 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.buttons 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_headers.rst: -------------------------------------------------------------------------------- 1 | Header Widgets 2 | ============== 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.headers 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /wildewidgets/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class WildewidgetsConfig(AppConfig): # noqa: D101 5 | name: str = "wildewidgets" 6 | -------------------------------------------------------------------------------- /wildewidgets/widgets/charts/__init__.py: -------------------------------------------------------------------------------- 1 | from .altair import * # noqa: F403 2 | from .apex import * # noqa: F403 3 | from .chartjs import * # noqa: F403 4 | -------------------------------------------------------------------------------- /demo/demo/core/static/core/images/dark_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/demo/demo/core/static/core/images/dark_logo.png -------------------------------------------------------------------------------- /docs/api_datagrid.rst: -------------------------------------------------------------------------------- 1 | Tabler Datagrid 2 | =============== 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.datagrid 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/api_forms.rst: -------------------------------------------------------------------------------- 1 | Form related widgets 2 | ==================== 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.forms 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /demo/demo/core/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CoreConfig(AppConfig): # noqa: D101 5 | name = "demo.core" 6 | label = "core" 7 | -------------------------------------------------------------------------------- /docs/api_structure.rst: -------------------------------------------------------------------------------- 1 | Structure Widgets 2 | ================= 3 | 4 | 5 | .. automodule:: wildewidgets.widgets.structure 6 | :members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /wildewidgets/views/__init__.py: -------------------------------------------------------------------------------- 1 | from .json import * # noqa: F403,F401 2 | from .mixins import * # noqa: F403,F401 3 | from .tables import * # noqa: F403,F401 4 | 5 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/html_widget.html: -------------------------------------------------------------------------------- 1 | 2 |
-------------------------------------------------------------------------------- /wildewidgets/static/wildewidgets/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caltechads/django-wildewidgets/HEAD/wildewidgets/static/wildewidgets/images/placeholder.png -------------------------------------------------------------------------------- /docs/charts.rst: -------------------------------------------------------------------------------- 1 | Charts 2 | ------ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: Contents: 7 | 8 | business_charts 9 | scientific_charts 10 | 11 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/markdown_widget.html: -------------------------------------------------------------------------------- 1 | {% load markdownify %} 2 | 3 | -------------------------------------------------------------------------------- /docs/guide.rst: -------------------------------------------------------------------------------- 1 | User Guide 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: Contents: 7 | 8 | install 9 | charts 10 | tables 11 | widgets 12 | 13 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/link_button.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /wildewidgets/static/wildewidgets/css/wildewidgets.scss: -------------------------------------------------------------------------------- 1 | @import '_navbar.scss'; 2 | @import '_toggleablemanytomanyfieldblock.scss'; 3 | @import '_widget-index.scss'; 4 | @import '_widget-list.scss'; 5 | -------------------------------------------------------------------------------- /wildewidgets/widgets/tables/__init__.py: -------------------------------------------------------------------------------- 1 | from .actions import * # noqa: F403 2 | from .components import * # noqa: F403 3 | from .tables import * # noqa: F403 4 | from .views import * # noqa: F403 5 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/crispy_form_modal.html: -------------------------------------------------------------------------------- 1 | {% extends 'wildewidgets/modal.html' %} 2 | {% load crispy_forms_tags %} 3 | 4 | {% block modal_body %} 5 | {% crispy form %} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/crispy_form_widget.html: -------------------------------------------------------------------------------- 1 | {% extends 'wildewidgets/block.html' %} 2 | {% load crispy_forms_tags %} 3 | 4 | {% block block_content %} 5 | {% crispy form %} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /demo/bin/collectstatic.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # This script exists to simplify the repeated task of re-running collectstatic while developing css/js. 3 | python /demo/manage.py collectstatic --no-input -v0 --link 4 | -------------------------------------------------------------------------------- /demo/demo/users/models.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import AbstractUser 2 | 3 | 4 | class User(AbstractUser): 5 | 6 | class Meta: 7 | verbose_name = 'user' 8 | verbose_name_plural = 'users' 9 | -------------------------------------------------------------------------------- /wildewidgets/static/wildewidgets/css/_widget-index.scss: -------------------------------------------------------------------------------- 1 | .widget-index { 2 | &__item { 3 | font-size: 1.13rem; 4 | a, a:visited {color: black !important;} 5 | a:hover {text-decoration: underline;} 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docs/api_navigation.rst: -------------------------------------------------------------------------------- 1 | Navigation 2 | ========== 3 | 4 | .. automodule:: wildewidgets.menus 5 | :members: 6 | :show-inheritance: 7 | 8 | .. automodule:: wildewidgets.widgets.navigation 9 | :members: 10 | :show-inheritance: -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/widget_stream.html: -------------------------------------------------------------------------------- 1 | {% extends 'wildewidgets/block.html' %} 2 | {% load wildewidgets %} 3 | 4 | {% block block_content %} 5 | {% for item in widgets %} 6 | {% wildewidgets item %} 7 | {% endfor %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/header_with_widget.html: -------------------------------------------------------------------------------- 1 | {% extends 'wildewidgets/header_with_controls.html' %} 2 | {% load wildewidgets %} 3 | 4 | {% block controls %} 5 | {% if widget %} 6 | {% wildewidgets widget %} 7 | {% endif %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /demo/etc/ipython_config.py: -------------------------------------------------------------------------------- 1 | print("--------->>>>>>>> ENABLE AUTORELOAD <<<<<<<<<------------") 2 | 3 | c = get_config() 4 | c.InteractiveShellApp.exec_lines = [] 5 | c.InteractiveShellApp.exec_lines.append('%load_ext autoreload') 6 | c.InteractiveShellApp.exec_lines.append('%autoreload 2') 7 | -------------------------------------------------------------------------------- /wildewidgets/templates/wildewidgets/header_with_link_button.html: -------------------------------------------------------------------------------- 1 | {% extends 'wildewidgets/header_with_controls.html' %} 2 | 3 | {% block controls %} 4 |
44 |