├── djadmin2 ├── tests │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── urls.py │ ├── test_views.py │ ├── test_actions.py │ ├── models.py │ ├── templates │ │ └── djadmin2theme_bootstrap3 │ │ │ └── custom_login_template.html │ ├── test_auth_admin.py │ ├── test_core.py │ ├── test_admin2tags.py │ ├── test_types.py │ └── test_renderers.py ├── themes │ ├── __init__.py │ └── djadmin2theme_bootstrap3 │ │ ├── __init__.py │ │ ├── static │ │ └── djadmin2theme_bootstrap3 │ │ │ ├── less │ │ │ ├── sb-admin2 │ │ │ │ ├── mixins.less │ │ │ │ └── variables.less │ │ │ └── base.less │ │ │ ├── scss │ │ │ ├── sb-admin2 │ │ │ │ ├── mixins │ │ │ │ │ ├── btn-outline.scss │ │ │ │ │ └── panel.scss │ │ │ │ └── _variables.scss │ │ │ ├── _variables.scss │ │ │ └── base.scss │ │ │ ├── libs │ │ │ ├── font-awesome │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── bootstrap │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── html5shiv.js │ │ │ └── js │ │ │ ├── base.js │ │ │ ├── actions.js │ │ │ └── sb-admin-2.js │ │ └── templates │ │ └── djadmin2theme_bootstrap3 │ │ ├── renderers │ │ └── boolean.html │ │ ├── edit_inlines │ │ ├── stacked.html │ │ └── tabular.html │ │ ├── auth │ │ ├── logout.html │ │ ├── password_change_done.html │ │ ├── password_change_form.html │ │ └── login.html │ │ ├── includes │ │ ├── history.html │ │ ├── save_buttons.html │ │ ├── pagination.html │ │ ├── list_actions.html │ │ └── app_model_list.html │ │ ├── model_detail.html │ │ ├── app_index.html │ │ ├── index.html │ │ ├── actions │ │ └── delete_selected_confirmation.html │ │ ├── model_confirm_delete.html │ │ ├── model_history.html │ │ └── model_update_form.html ├── migrations │ ├── __init__.py │ └── 0001_initial.py ├── templatetags │ └── __init__.py ├── site.py ├── locale │ ├── bs │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── ca │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── de │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── en │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── es │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── fr │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── it │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── nl │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── sk │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── zh │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── pl_PL │ │ └── LC_MESSAGES │ │ │ └── django.mo │ └── pt_BR │ │ └── LC_MESSAGES │ │ └── django.mo ├── __init__.py ├── apps.py ├── settings.py ├── admin2.py ├── renderers.py ├── forms.py └── models.py ├── example ├── blog │ ├── __init__.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_filters.py │ │ ├── test_builtin_api_resources.py │ │ └── test_nestedobjects.py │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── locale │ │ ├── de │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── en │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── fr │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── it │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── nl │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── sk │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── zh │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ ├── pl_PL │ │ │ └── LC_MESSAGES │ │ │ │ └── django.mo │ │ └── pt_BR │ │ │ └── LC_MESSAGES │ │ │ └── django.mo │ ├── views.py │ ├── admin.py │ ├── templates │ │ ├── blog │ │ │ ├── blog_detail.html │ │ │ ├── blog_list.html │ │ │ └── home.html │ │ ├── djadmin2 │ │ │ └── bootstrap │ │ │ │ └── actions │ │ │ │ └── publish_selected_items.html │ │ └── base.html │ ├── admin2.py │ ├── models.py │ └── actions.py ├── example │ ├── __init__.py │ ├── wsgi.py │ └── urls.py ├── files │ ├── __init__.py │ ├── tests │ │ ├── __init__.py │ │ ├── fixtures │ │ │ └── pubtest.txt │ │ └── test_models.py │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── views.py │ ├── locale │ │ ├── de │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── en │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── fr │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── it │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── nl │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── sk │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── zh │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── pl_PL │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── pt_BR │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ └── tl_PH │ │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── admin.py │ ├── admin2.py │ ├── templates │ │ └── home.html │ └── models.py ├── polls │ ├── __init__.py │ ├── tests │ │ ├── __init__.py │ │ └── test_models.py │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── views.py │ ├── locale │ │ ├── de │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── en │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── fr │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── it │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── nl │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── sk │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── zh │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── pl_PL │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ ├── pt_BR │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── django.po │ │ └── tl_PH │ │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ ├── templates │ │ └── home.html │ ├── admin.py │ ├── admin2.py │ └── models.py ├── static │ └── img │ │ ├── admin.png │ │ └── admin2.png └── manage.py ├── docs ├── _static │ ├── README │ ├── join_team.png │ ├── translate_now.png │ └── request_language.png ├── tutorial.rst ├── ref │ ├── api.rst │ ├── built-in-views.rst │ ├── modeladmin.rst │ ├── renderers.rst │ ├── views.rst │ ├── forms.rst │ └── actions.rst ├── README ├── faq.rst ├── index.rst ├── _ext │ └── djangodocs.py ├── installation.rst └── design.rst ├── requirements_test.txt ├── screenshots ├── Change_user.png ├── Select_user.png └── Site_administration.png ├── requirements.txt ├── MANIFEST.in ├── .coveragerc ├── CONTRIBUTING.rst ├── tox.ini ├── .gitignore ├── fabfile.py ├── .github └── workflows │ ├── test.yml │ └── release.yml ├── LICENSE ├── CODE_OF_CONDUCT.md └── AUTHORS.rst /djadmin2/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djadmin2/themes/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/blog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/example/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/files/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/polls/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djadmin2/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djadmin2/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/blog/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/files/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/polls/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djadmin2/tests/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/blog/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/files/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/polls/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/files/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /example/polls/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /example/files/tests/fixtures/pubtest.txt: -------------------------------------------------------------------------------- 1 | Hello World 2 | -------------------------------------------------------------------------------- /docs/_static/README: -------------------------------------------------------------------------------- 1 | Put static files for Sphinx in here. 2 | -------------------------------------------------------------------------------- /djadmin2/site.py: -------------------------------------------------------------------------------- 1 | from . import core 2 | 3 | djadmin2_site = core.Admin2() 4 | -------------------------------------------------------------------------------- /requirements_test.txt: -------------------------------------------------------------------------------- 1 | -rrequirements.txt 2 | flake8>=2.5.4 3 | pytest 4 | pytest-django 5 | pytest-cov 6 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/less/sb-admin2/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | -------------------------------------------------------------------------------- /docs/_static/join_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/docs/_static/join_team.png -------------------------------------------------------------------------------- /screenshots/Change_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/screenshots/Change_user.png -------------------------------------------------------------------------------- /screenshots/Select_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/screenshots/Select_user.png -------------------------------------------------------------------------------- /docs/_static/translate_now.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/docs/_static/translate_now.png -------------------------------------------------------------------------------- /example/static/img/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/static/img/admin.png -------------------------------------------------------------------------------- /example/static/img/admin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/static/img/admin2.png -------------------------------------------------------------------------------- /docs/_static/request_language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/docs/_static/request_language.png -------------------------------------------------------------------------------- /screenshots/Site_administration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/screenshots/Site_administration.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | django-extra-views 2 | django-braces 3 | djangorestframework 4 | django-filter 5 | django-debug-toolbar 6 | pytz 7 | -------------------------------------------------------------------------------- /djadmin2/locale/bs/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/bs/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/ca/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/ca/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/es/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/es/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/sk/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/sk/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/zh/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/zh/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/pl_PL/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/pl_PL/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /djadmin2/locale/pt_BR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/locale/pt_BR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/sk/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/sk/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/zh/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/zh/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/sk/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/sk/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/zh/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/zh/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/sk/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/sk/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/zh/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/zh/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/pl_PL/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/pl_PL/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/blog/locale/pt_BR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/blog/locale/pt_BR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/pl_PL/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/pl_PL/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/pt_BR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/pt_BR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/files/locale/tl_PH/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/files/locale/tl_PH/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/pl_PL/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/pl_PL/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/pt_BR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/pt_BR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /example/polls/locale/tl_PH/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/example/polls/locale/tl_PH/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | include LICENSE 3 | include AUTHORS.rst 4 | include HISTORY.rst 5 | include MANIFEST.in 6 | recursive-include djadmin2 *.html *.css *.js *.png 7 | -------------------------------------------------------------------------------- /docs/tutorial.rst: -------------------------------------------------------------------------------- 1 | =============== 2 | Tutorial 3 | =============== 4 | 5 | This is where the django-admin2 tutorial is in the process of being written. It will be analogous with Page 2 of the Django tutorial. 6 | -------------------------------------------------------------------------------- /example/files/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import CaptionedFile, UncaptionedFile 4 | 5 | 6 | admin.site.register(CaptionedFile) 7 | admin.site.register(UncaptionedFile) 8 | -------------------------------------------------------------------------------- /example/files/admin2.py: -------------------------------------------------------------------------------- 1 | from djadmin2.site import djadmin2_site 2 | from .models import CaptionedFile, UncaptionedFile 3 | 4 | 5 | djadmin2_site.register(CaptionedFile) 6 | djadmin2_site.register(UncaptionedFile) 7 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/scss/sb-admin2/mixins/btn-outline.scss: -------------------------------------------------------------------------------- 1 | @mixin btn-outline($color, $hover-color: #FFF) { 2 | color: $color; 3 | &:hover { 4 | color: $hover-color; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/templates/djadmin2theme_bootstrap3/renderers/boolean.html: -------------------------------------------------------------------------------- 1 | {% if value %} 2 | 3 | {% else %} 4 | 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /djadmin2/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '0.7.1' 2 | 3 | __author__ = 'Daniel Greenfeld & Contributors' 4 | 5 | VERSION = __version__ # synonym 6 | 7 | # Default datetime input and output formats 8 | ISO_8601 = 'iso-8601' 9 | 10 | default_app_config = "djadmin2.apps.Djadmin2Config" 11 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jazzband/django-admin2/main/djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/libs/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /example/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /example/blog/views.py: -------------------------------------------------------------------------------- 1 | from django.views.generic import ListView, DetailView 2 | 3 | from .models import Post 4 | 5 | 6 | class BlogListView(ListView): 7 | model = Post 8 | template_name = 'blog_list.html' 9 | paginate_by = 10 10 | 11 | 12 | class BlogDetailView(DetailView): 13 | model = Post 14 | template_name = 'blog_detail.html' 15 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/static/djadmin2theme_bootstrap3/scss/sb-admin2/mixins/panel.scss: -------------------------------------------------------------------------------- 1 | @mixin panel-color($color) { 2 | border-color: $color; 3 | .panel-heading { 4 | border-color: $color; 5 | color: white; 6 | background-color: $color; 7 | } 8 | a { 9 | color: $color; 10 | &:hover { 11 | color: darken($color, 15%); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /example/files/templates/home.html: -------------------------------------------------------------------------------- 1 | {% extends "djadmin2theme_bootstrap3/base.html" %} 2 | {% load i18n %} 3 | 4 | {% block content %} 5 |
8 | {% trans "This form doesn't have visible fields. This doesn't mean there are no hidden fields." %} 9 |
10 | {% endif %} 11 |{% trans "Thanks for spending some quality time with the Web site today." %}
13 | 14 | {% endblock content %} 15 | -------------------------------------------------------------------------------- /example/polls/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import Poll, Choice 4 | 5 | 6 | class ChoiceInline(admin.TabularInline): 7 | model = Choice 8 | extra = 3 9 | 10 | 11 | class PollAdmin(admin.ModelAdmin): 12 | fieldsets = [ 13 | (None, {'fields': ['question']}), 14 | ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), 15 | ] 16 | inlines = [ChoiceInline] 17 | list_display = ('question', 'pub_date', 'was_published_recently') 18 | list_filter = ['pub_date'] 19 | search_fields = ['question'] 20 | date_hierarchy = 'pub_date' 21 | 22 | 23 | admin.site.register(Poll, PollAdmin) 24 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/templates/djadmin2theme_bootstrap3/includes/history.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | 3 | {% if actions %} 4 |{% trans "None available" %}
17 | {% endif %} 18 | 19 | -------------------------------------------------------------------------------- /docs/ref/api.rst: -------------------------------------------------------------------------------- 1 | RESTful API 2 | ============= 3 | 4 | **django-admin2** comes with a builtin REST-API for accessing all the 5 | resources you can get from the frontend via JSON. 6 | 7 | The API can be found at the URL you choose for the admin2 and then append 8 | ``api/v0/``. 9 | 10 | If the API has changed in a backwards-incompatible way we will increase the 11 | API version to the next number. So you can be sure that you're frontend code 12 | should keep working even between updates to more recent django-admin2 13 | versions. 14 | 15 | However currently we are still in heavy development, so we are using ``v0`` 16 | for the API, which means is subject to change and being broken at any time. 17 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/templates/djadmin2theme_bootstrap3/auth/password_change_done.html: -------------------------------------------------------------------------------- 1 | {% extends "djadmin2theme_bootstrap3/base.html" %} 2 | {% load i18n admin2_tags %} 3 | 4 | {% block title %}{% trans 'Password change successful' %}{% endblock title %} 5 | {% block page_title %}{% trans 'Password change successful' %}{% endblock page_title %} 6 | 7 | {% block breadcrumbs %} 8 |{% trans 'Your password was changed.' %}
16 | {% endblock content %} 17 | -------------------------------------------------------------------------------- /example/polls/admin2.py: -------------------------------------------------------------------------------- 1 | from djadmin2.site import djadmin2_site 2 | from djadmin2.types import Admin2TabularInline, ModelAdmin2 3 | from .models import Poll, Choice 4 | 5 | 6 | class ChoiceInline(Admin2TabularInline): 7 | model = Choice 8 | fields = '__all__' 9 | 10 | 11 | class PollAdmin(ModelAdmin2): 12 | fieldsets = [ 13 | (None, {'fields': ['question']}), 14 | ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), 15 | ] 16 | inlines = [ChoiceInline] 17 | list_display = ('question', 'pub_date', 'was_published_recently') 18 | list_filter = ['pub_date'] 19 | search_fields = ['question'] 20 | date_hierarchy = 'pub_date' 21 | 22 | 23 | djadmin2_site.register(Poll, PollAdmin) 24 | -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | .. image:: https://jazzband.co/static/img/jazzband.svg 5 | :target: https://jazzband.co/ 6 | :alt: Jazzband 7 | 8 | This is a `Jazzband{% trans "My Actions" %}
20 | {% action_history %} 21 |16 | {{ post.body }} 17 |
18 |27 | {% url 'home' as home_url %} 28 | {% blocktrans %} Unpublished - Choose an admin tool and publish it.{% endblocktrans %} 29 |
30 | {% endif %} 31 |17 | {{ post.body }} 18 |
19 | {% else %} 20 | {% url 'home' as home_url %} 21 |22 | {% blocktrans %}Unpublished - Choose an admin tool and publish it.{% endblocktrans %} 23 |
24 | {% endif %} 25 | {% empty %} 26 |28 | {% url 'home' as home_url %} 29 | {% blocktrans %}Choose an admin tool and add content.{% endblocktrans %} 30 |
31 | {% endfor %} 32 |{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}
17 | 18 | {% if form.errors %} 19 |20 | {% blocktrans count counter=form.errors.items|length %}Please correct the error below.{% plural %} 21 | Please correct the errors below.{% endblocktrans %} 22 |
23 | {% endif %} 24 | 25 | 30 || {{ field }} | 8 | {% endfor %} 9 |||
|---|---|---|
| 16 | {% if forloop.first %} 17 | {% for hidden_field in inline_form.hidden_fields %} 18 | {{ hidden_field }} 19 | {% endfor %} 20 | {% endif %} 21 | {{ field }} 22 | | 23 | {% endfor %} 24 | {% if not inline_form.visible_fields %} 25 |
26 | 27 | {% trans "This form doesn't have visible fields. This doesn't mean there are no hidden fields." %} 28 | 29 | |
30 | {% endif %}
31 | |
|
35 |
36 |
37 | {% trans "Add another comment" %}
38 |
39 |
40 | |
41 | ||
26 | {% blocktrans with objects_name=objects_name count counter=deletable_objects|length %}Are you sure you want to publish the selected {{ objects_name }}? 27 | The following item will be published: 28 | {% plural %}Are you sure you want to publish the selected {{ objects_name }}? 29 | The following items will be published: 30 | {% endblocktrans %} 31 |
32 | 33 |23 | {% blocktrans with objects_name=objects_name count counter=deletable_objects|length %}Are you sure you want to delete the selected {{ objects_name }}? The following item will be deleted: 24 | {% plural %}Are you sure you want to delete the selected {{ objects_name }}? The following items will be deleted: 25 | {% endblocktrans %} 26 |
27 | 28 |26 | {# Translators : this is singular, example : delete the post "My Title" #} 27 | {% blocktrans with model_name=model_name object=object %} 28 | Are you sure you want to delete the {{ model_name }} "{{ object }}"? 29 | {% endblocktrans %} 30 | 31 | {% blocktrans count counter=deletable_objects|length %} 32 | The following item will be deleted: 33 | {% plural %} 34 | All of the following items will be deleted: 35 | {% endblocktrans %} 36 |
37 | 38 |{% trans "Pretend that this is the homepage of a big Django site." %}
12 | 13 |{% trans "Imagine lots of things are here:" %}
14 |{% trans "In other words, these are items that we can introspect through the Django admin." %}
21 | 22 |{% trans "Now, explore the Django admin for example.com. Click on either of the following:" %}
25 |
34 |
35 |
36 | {% trans "Powered by django.contrib.admin. This is just here for reference." %}
37 |26 | {% blocktrans with object=object %}History for {{ object }}{% endblocktrans %} 27 | 28 | {% if object_list %} 29 |
| {% trans "Date/Time" %} | 33 |{% trans "User" %} | 34 |{% trans "Action" %} | 35 |{% trans "Message" %} | 36 |
|---|---|---|---|
| {{ log.action_time }} | 42 |{{ log.user }} | 43 |{{ log.action_type|capfirst }} | 44 |{{ log.change_message }} | 45 |
{% trans "No history for this object." %}
51 | {% endif %} 52 | {% endblock content %} 53 | -------------------------------------------------------------------------------- /docs/ref/renderers.rst: -------------------------------------------------------------------------------- 1 | ================ 2 | Custom Renderers 3 | ================ 4 | 5 | It is possible to create custom renderers for specific fields. Currently they 6 | are only used in the object list view, for example to render boolean values 7 | using icons. Another example would be to customize the rendering of dates. 8 | 9 | 10 | Renderers 11 | --------- 12 | 13 | A renderer is a function that accepts a value and the field and returns a HTML 14 | representation of it. For example, the very simple builtin datetime renderer 15 | works like this: 16 | 17 | .. code-block:: python 18 | 19 | def title_renderer(value, field): 20 | """Render a string in title case (capitalize every word).""" 21 | return unicode(value).title() 22 | 23 | In this case the ``field`` argument is not used. Sometimes it useful though: 24 | 25 | .. code-block:: python 26 | 27 | def number_renderer(value, field): 28 | """Format a number.""" 29 | if isinstance(field, models.DecimalField): 30 | return formats.number_format(value, field.decimal_places) 31 | return formats.number_format(value) 32 | 33 | You can create your renderers anywhere in your code, but it is recommended to 34 | put them in a file called ``renderers.py`` in your project. 35 | 36 | 37 | Using Renderers 38 | --------------- 39 | 40 | The renderers can be specified in the Admin2 class using the 41 | ``field_renderers`` attribute. The attribute contains a dictionary that maps a 42 | field name to a renderer function. 43 | 44 | By default, some renderers are automatically applied, for example the boolean 45 | renderer when processing boolean values. If you want to suppress that renderer, 46 | you can assign ``None`` to the field in the ``field_renderers`` dictionary. 47 | 48 | .. code-block:: python 49 | 50 | class PostAdmin(djadmin2.ModelAdmin2): 51 | list_display = ('title', 'body', 'published') 52 | field_renderers = { 53 | 'title': renderers.title_renderer, 54 | 'published': None, 55 | } 56 | 57 | 58 | Builtin Renderers 59 | ----------------- 60 | 61 | .. automodule:: djadmin2.renderers 62 | :members: 63 | -------------------------------------------------------------------------------- /djadmin2/themes/djadmin2theme_bootstrap3/templates/djadmin2theme_bootstrap3/includes/app_model_list.html: -------------------------------------------------------------------------------- 1 | {% load i18n admin2_tags %} 2 | 3 || 7 | 8 | {% with app_verbose_names|verbose_name_for:app_label as verbose_name %} 9 | {% firstof verbose_name app_label|title %} 10 | {% endwith %} 11 | 12 | | 13 |||
|---|---|---|
| 21 | {% if permissions.has_view_permission %} 22 | 23 | {% endif %} 24 | {{ model_admin.verbose_name_plural|title }} 25 | {% if permissions.has_view_permission %}{% endif %} 26 | | 27 |28 | {% if permissions.has_add_permission %} 29 | 30 | {% trans "Add" %} 31 | 32 | {% endif %} 33 | | 34 |35 | {% if permissions.has_change_permission %} 36 | 37 | {% trans "Change" %} 38 | 39 | {% endif %} 40 | | 41 |