├── __init__.py ├── djfrontend ├── templatetags │ ├── __init__.py │ └── settings.py ├── models.py ├── __init__.py ├── tests │ ├── __init__.py │ └── urls.py ├── static │ └── djfrontend │ │ ├── fonts │ │ ├── fontawesome │ │ │ └── 4.6.3 │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ └── twbs │ │ │ └── 3.3.7 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── img │ │ └── jquery │ │ │ └── jquery.dataTables │ │ │ └── 1.10.12 │ │ │ ├── sort_asc.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ ├── sort_asc_disabled.png │ │ │ └── sort_desc_disabled.png │ │ ├── js │ │ ├── twbs │ │ │ └── 3.3.7 │ │ │ │ ├── transition.js │ │ │ │ ├── alert.js │ │ │ │ ├── popover.js │ │ │ │ ├── button.js │ │ │ │ ├── tab.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── scrollspy.js │ │ │ │ ├── affix.js │ │ │ │ ├── collapse.js │ │ │ │ └── carousel.js │ │ └── jquery │ │ │ ├── jquery.scrollTo │ │ │ └── 2.1.2 │ │ │ │ ├── jquery.scrollTo.min.js │ │ │ │ └── jquery.scrollTo.js │ │ │ ├── jquery.formset │ │ │ └── 1.2.2 │ │ │ │ └── jquery.formset.min.js │ │ │ └── jquery.smooth-scroll │ │ │ └── 1.7.2 │ │ │ └── jquery.smooth-scroll.min.js │ │ └── css │ │ └── h5bp │ │ └── 5.3.0 │ │ └── h5bp.css ├── apps.py └── templates │ └── djfrontend │ └── base.html ├── setup.cfg ├── docs ├── source │ ├── road_map.rst │ ├── getting_started.rst │ ├── license.rst │ ├── template_blocks.rst │ ├── index.rst │ ├── optional_settings.rst │ ├── changelog.rst │ ├── granularity.rst │ └── conf.py ├── build │ ├── html │ │ ├── _sources │ │ │ ├── road_map.txt │ │ │ ├── getting_started.txt │ │ │ ├── license.txt │ │ │ ├── template_blocks.txt │ │ │ ├── index.txt │ │ │ ├── optional_settings.txt │ │ │ ├── changelog.txt │ │ │ └── granularity.txt │ │ ├── objects.inv │ │ ├── _static │ │ │ ├── up.png │ │ │ ├── down.png │ │ │ ├── file.png │ │ │ ├── plus.png │ │ │ ├── comment.png │ │ │ ├── minus.png │ │ │ ├── ajax-loader.gif │ │ │ ├── down-pressed.png │ │ │ ├── up-pressed.png │ │ │ ├── comment-bright.png │ │ │ ├── comment-close.png │ │ │ ├── pygments.css │ │ │ ├── default.css │ │ │ ├── sidebar.js │ │ │ └── doctools.js │ │ ├── .buildinfo │ │ ├── genindex.html │ │ ├── search.html │ │ ├── road_map.html │ │ ├── searchindex.js │ │ ├── license.html │ │ ├── getting_started.html │ │ ├── template_blocks.html │ │ └── granularity.html │ └── doctrees │ │ ├── index.doctree │ │ ├── license.doctree │ │ ├── changelog.doctree │ │ ├── road_map.doctree │ │ ├── environment.pickle │ │ ├── granularity.doctree │ │ ├── template_tags.doctree │ │ ├── getting_started.doctree │ │ ├── optional_settings.doctree │ │ └── template_blocks.doctree └── Makefile ├── MANIFEST.in ├── .gitignore ├── LICENSE ├── lib ├── modernizr │ └── LICENSE-MIT └── jquery │ ├── jquery.smooth-scroll │ └── LICENSE-MIT │ ├── MIT-LICENSE │ ├── jqueryui │ └── MIT-LICENSE │ └── jquery.dataTables │ └── LICENSE-BSD.txt ├── .travis.yml ├── setup.py ├── run_tests.py └── README.rst /__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djfrontend/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /djfrontend/models.py: -------------------------------------------------------------------------------- 1 | # Intentionally left blank. -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal = 1 3 | -------------------------------------------------------------------------------- /docs/source/road_map.rst: -------------------------------------------------------------------------------- 1 | Road Map 2 | ============== -------------------------------------------------------------------------------- /docs/build/html/_sources/road_map.txt: -------------------------------------------------------------------------------- 1 | Road Map 2 | ============== -------------------------------------------------------------------------------- /djfrontend/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'djfrontend.apps.DjangoFrontendConfig' 2 | -------------------------------------------------------------------------------- /docs/build/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/objects.inv -------------------------------------------------------------------------------- /docs/build/html/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/up.png -------------------------------------------------------------------------------- /djfrontend/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from djfrontend.templatetags import * 2 | from djfrontend.tests.tests_templatetags import * 3 | -------------------------------------------------------------------------------- /docs/build/html/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/down.png -------------------------------------------------------------------------------- /docs/build/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/file.png -------------------------------------------------------------------------------- /docs/build/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/plus.png -------------------------------------------------------------------------------- /docs/build/doctrees/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/index.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/license.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/license.doctree -------------------------------------------------------------------------------- /docs/build/html/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/comment.png -------------------------------------------------------------------------------- /docs/build/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/minus.png -------------------------------------------------------------------------------- /docs/build/doctrees/changelog.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/changelog.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/road_map.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/road_map.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/environment.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/environment.pickle -------------------------------------------------------------------------------- /docs/build/doctrees/granularity.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/granularity.doctree -------------------------------------------------------------------------------- /docs/build/html/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/ajax-loader.gif -------------------------------------------------------------------------------- /docs/build/html/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/down-pressed.png -------------------------------------------------------------------------------- /docs/build/html/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/up-pressed.png -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include README.rst 3 | recursive-include djfrontend * 4 | recursive-include docs * 5 | recursive-include lib * 6 | -------------------------------------------------------------------------------- /docs/build/doctrees/template_tags.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/template_tags.doctree -------------------------------------------------------------------------------- /docs/build/html/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/comment-bright.png -------------------------------------------------------------------------------- /docs/build/html/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/html/_static/comment-close.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # System files 2 | .DS_Store 3 | build/ 4 | dist/ 5 | django_frontend.egg-info/ 6 | 7 | # Python 8 | *.pyc 9 | 10 | /.idea 11 | -------------------------------------------------------------------------------- /docs/build/doctrees/getting_started.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/getting_started.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/optional_settings.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/optional_settings.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/template_blocks.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/docs/build/doctrees/template_blocks.doctree -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/FontAwesome.otf -------------------------------------------------------------------------------- /djfrontend/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DjangoFrontendConfig(AppConfig): 5 | name = 'djfrontend' 6 | label = 'djfrontend' 7 | verbose_name = 'Django Frontend' 8 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.eot -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.woff -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/fontawesome/4.6.3/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/fonts/twbs/3.3.7/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_asc.png -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_both.png -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_desc.png -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_asc_disabled.png -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonfaustman/django-frontend/HEAD/djfrontend/static/djfrontend/img/jquery/jquery.dataTables/1.10.12/sort_desc_disabled.png -------------------------------------------------------------------------------- /docs/build/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: b6096eb604a142a2c21aaa7d813edaae 4 | tags: a205e9ed8462ae86fdd2f73488852ba9 5 | -------------------------------------------------------------------------------- /djfrontend/tests/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import patterns, url 2 | from django.views.generic import TemplateView 3 | from django.contrib.staticfiles.urls import staticfiles_urlpatterns 4 | 5 | urlpatterns = patterns('', 6 | url(r'^$', TemplateView.as_view(template_name="djfrontend/base.html")), 7 | ) 8 | 9 | urlpatterns += staticfiles_urlpatterns() -------------------------------------------------------------------------------- /djfrontend/templatetags/settings.py: -------------------------------------------------------------------------------- 1 | # Current defaults 2 | DJFRONTEND_H5BP_HTML_DEFAULT = 'en' 3 | DJFRONTEND_H5BP_CSS_DEFAULT = '5.3.0' 4 | DJFRONTEND_NORMALIZE_DEFAULT = '4.2.0' 5 | DJFRONTEND_FONTAWESOME_DEFAULT = '4.6.3' 6 | DJFRONTEND_MODERNIZR_DEFAULT = '2.8.3' 7 | DJFRONTEND_JQUERY_DEFAULT = '1.12.4' 8 | DJFRONTEND_JQUERYUI_DEFAULT = '1.11.4' 9 | DJFRONTEND_JQUERY_DATATABLES_VERSION_DEFAULT = '1.10.12' 10 | DJFRONTEND_JQUERY_FORMSET_DEFAULT = '1.2.2' 11 | DJFRONTEND_JQUERY_SCROLLTO_DEFAULT = '2.1.2' 12 | DJFRONTEND_JQUERY_SMOOTHSCROLL_DEFAULT = '1.7.2' 13 | DJFRONTEND_TWBS_VERSION_DEFAULT = '3.3.7' 14 | -------------------------------------------------------------------------------- /docs/source/getting_started.rst: -------------------------------------------------------------------------------- 1 | Getting Started 2 | ================ 3 | 4 | Install 5 | -------- 6 | 1. install `django-frontend` (pip install, add to your requirements files, etc.) 7 | 2. add `'djfrontend'` to your INSTALLED_APPS 8 | 3. make sure `'django.contrib.staticfiles'` is also in your INSTALLED_APPS 9 | 10 | Extend 11 | ------- 12 | Extend djfrontend's base template in your template(s) 13 | :: 14 | 15 | {% extends 'djfrontend/base.html' %} 16 | 17 | Load 18 | ----- 19 | Load all the djfrontend tags if you want to add or change the template's defaults. 20 | :: 21 | 22 | {% load djfrontend %} -------------------------------------------------------------------------------- /docs/build/html/_sources/getting_started.txt: -------------------------------------------------------------------------------- 1 | Getting Started 2 | ================ 3 | 4 | Install 5 | -------- 6 | 1. install `django-frontend` (pip install, add to your requirements files, etc.) 7 | 2. add `'djfrontend'` to your INSTALLED_APPS 8 | 3. make sure `'django.contrib.staticfiles'` is also in your INSTALLED_APPS 9 | 10 | Extend 11 | ------- 12 | Extend djfrontend's base template in your template(s) 13 | :: 14 | 15 | {% extends 'djfrontend/base.html' %} 16 | 17 | Load 18 | ----- 19 | Load all the djfrontend tags if you want to add or change the template's defaults. 20 | :: 21 | 22 | {% load djfrontend %} -------------------------------------------------------------------------------- /docs/source/license.rst: -------------------------------------------------------------------------------- 1 | License 2 | ========= 3 | MIT License 4 | 5 | Component Specific Licenses 6 | ---------------------------- 7 | * HTML5 Boilerplate: MIT License 8 | * Modernizr: MIT License 9 | * normalize.css: MIT License 10 | * jQuery: MIT License 11 | * jQuery UI: MIT License 12 | * jQuery DataTables: Dual GPL v2.0 and BSD License 13 | * jQuery Dynamic Formset: BSD New License 14 | * jQuery ScrollTo: Dual MIT and GPL License 15 | * jQuery Smooth Scroll: MIT License 16 | * Twitter Bootstrap: Apache License, Version 2.0 17 | * iOS-Orientationchange-Fix: MIT/GPL v2.0 License 18 | * Font Awesome: SIL OFL 1.1, MIT License -------------------------------------------------------------------------------- /docs/build/html/_sources/license.txt: -------------------------------------------------------------------------------- 1 | License 2 | ========= 3 | MIT License 4 | 5 | Component Specific Licenses 6 | ---------------------------- 7 | * HTML5 Boilerplate: MIT License 8 | * Modernizr: MIT License 9 | * normalize.css: MIT License 10 | * jQuery: MIT License 11 | * jQuery UI: MIT License 12 | * jQuery DataTables: Dual GPL v2.0 and BSD License 13 | * jQuery Dynamic Formset: BSD New License 14 | * jQuery ScrollTo: Dual MIT and GPL License 15 | * jQuery Smooth Scroll: MIT License 16 | * Twitter Bootstrap: Apache License, Version 2.0 17 | * iOS-Orientationchange-Fix: MIT/GPL v2.0 License 18 | * Font Awesome: SIL OFL 1.1, MIT License -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Jon Faustman 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE -------------------------------------------------------------------------------- /lib/modernizr/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009–2013 2 | Permission is hereby granted, free of charge, to any person obtaining a copy 3 | of this software and associated documentation files (the "Software"), to deal 4 | in the Software without restriction, including without limitation the rights 5 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 | copies of the Software, and to permit persons to whom the Software is 7 | furnished to do so, subject to the following conditions: 8 | The above copyright notice and this permission notice shall be included in 9 | all copies or substantial portions of the Software. 10 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 11 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 12 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 13 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 14 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 15 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 16 | THE SOFTWARE -------------------------------------------------------------------------------- /lib/jquery/jquery.smooth-scroll/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person 2 | obtaining a copy of this software and associated documentation 3 | files (the "Software"), to deal in the Software without 4 | restriction, including without limitation the rights to use, 5 | copy, modify, merge, publish, distribute, sublicense, and/or sell 6 | copies of the Software, and to permit persons to whom the 7 | Software is furnished to do so, subject to the following 8 | conditions: 9 | 10 | The above copyright notice and this permission notice shall be 11 | included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 15 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 16 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 17 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 18 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 | OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | 3 | python: 4 | - "2.6" 5 | - "2.7" 6 | - "3.3" 7 | - "3.4" 8 | 9 | env: 10 | - DJANGO=1.9.8 11 | - DJANGO=1.9.7 12 | - DJANGO=1.8.14 13 | - DJANGO=1.8.13 14 | - DJANGO=1.7.11 15 | - DJANGO=1.7.10 16 | - DJANGO=1.6.11 17 | - DJANGO=1.6.10 18 | 19 | matrix: 20 | exclude: 21 | - python: "3.3" 22 | env: DJANGO=1.9.8 23 | - python: "3.3" 24 | env: DJANGO=1.9.7 25 | - python: "2.6" 26 | env: DJANGO=1.9.8 27 | - python: "2.6" 28 | env: DJANGO=1.9.7 29 | - python: "2.6" 30 | env: DJANGO=1.8.14 31 | - python: "2.6" 32 | env: DJANGO=1.8.13 33 | - python: "2.6" 34 | env: DJANGO=1.7.11 35 | - python: "2.6" 36 | env: DJANGO=1.7.10 37 | 38 | install: 39 | - pip install Django==$DJANGO 40 | - pip install -e . 41 | 42 | script: 43 | - python run_tests.py 44 | 45 | notifications: 46 | email: 47 | recipients: 48 | - jon@faustman.org 49 | on_success: never 50 | on_failure: always 51 | -------------------------------------------------------------------------------- /lib/jquery/MIT-LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013 jQuery Foundation and other contributors 2 | http://jquery.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /docs/source/template_blocks.rst: -------------------------------------------------------------------------------- 1 | Template blocks 2 | ================ 3 | Use the included template blocks to suit your needs. 4 | 5 | html 6 | ----- 7 | Override the HTML doctype, or use in conjunction with {% djfrontend_h5bp_html '' %} to change the HTML lang attribute. 8 | 9 | title 10 | ------ 11 | Add your application specific title to the title tag. 12 | 13 | meta_viewport 14 | -------------- 15 | Override the default meta viewport's content attribute. 16 | 17 | meta_description 18 | ------------------ 19 | Add your application specific information to the meta description. 20 | 21 | head_css 22 | ---------- 23 | Parent CSS block to override or extend the included CSS files. 24 | 25 | head_js 26 | --------- 27 | Override or extend with JavaScript files that need to loaded in the head. 28 | 29 | body_id 30 | -------- 31 | Add an id to the body if needed. 32 | 33 | body_class 34 | ------------ 35 | Add class(es) to the body if needed. 36 | 37 | body_content 38 | -------------- 39 | Override the Internet Explorer warning, and/or extend with the main content from your application. 40 | 41 | body_js 42 | --------- 43 | Override or extend the included JavaScript files with any file that does not need to be loaded in the head. -------------------------------------------------------------------------------- /docs/build/html/_sources/template_blocks.txt: -------------------------------------------------------------------------------- 1 | Template blocks 2 | ================ 3 | Use the included template blocks to suit your needs. 4 | 5 | html 6 | ----- 7 | Override the HTML doctype, or use in conjunction with {% djfrontend_h5bp_html '' %} to change the HTML lang attribute. 8 | 9 | title 10 | ------ 11 | Add your application specific title to the title tag. 12 | 13 | meta_viewport 14 | -------------- 15 | Override the default meta viewport's content attribute. 16 | 17 | meta_description 18 | ------------------ 19 | Add your application specific information to the meta description. 20 | 21 | head_css 22 | ---------- 23 | Parent CSS block to override or extend the included CSS files. 24 | 25 | head_js 26 | --------- 27 | Override or extend with JavaScript files that need to loaded in the head. 28 | 29 | body_id 30 | -------- 31 | Add an id to the body if needed. 32 | 33 | body_class 34 | ------------ 35 | Add class(es) to the body if needed. 36 | 37 | body_content 38 | -------------- 39 | Override the Internet Explorer warning, and/or extend with the main content from your application. 40 | 41 | body_js 42 | --------- 43 | Override or extend the included JavaScript files with any file that does not need to be loaded in the head. -------------------------------------------------------------------------------- /djfrontend/templates/djfrontend/base.html: -------------------------------------------------------------------------------- 1 | {% load djfrontend %} 2 | {% block html %} 3 | 4 | {% djfrontend_h5bp_html %} 5 | {% endblock html %} 6 | 7 | {% block meta %} 8 | 9 | 10 | {% block title %}{% endblock title %} 11 | 12 | 13 | {% endblock meta %} 14 | {% block head_css %} 15 | {% endblock head_css %} 16 | {% block head_js %} 17 | {% djfrontend_modernizr %} 18 | {% endblock head_js %} 19 | 20 | 21 | {% block body_content %} 22 | 27 | {% endblock body_content %} 28 | {% block body_js %} 29 | {% djfrontend_jquery %} 30 | {% endblock body_js %} 31 | 32 | 33 | -------------------------------------------------------------------------------- /lib/jquery/jqueryui/MIT-LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013 jQuery Foundation and other contributors, 2 | http://jqueryui.com/ 3 | 4 | This software consists of voluntary contributions made by many 5 | individuals (AUTHORS.txt, http://jqueryui.com/about) For exact 6 | contribution history, see the revision history and logs, available 7 | at http://jquery-ui.googlecode.com/svn/ 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining 10 | a copy of this software and associated documentation files (the 11 | "Software"), to deal in the Software without restriction, including 12 | without limitation the rights to use, copy, modify, merge, publish, 13 | distribute, sublicense, and/or sell copies of the Software, and to 14 | permit persons to whom the Software is furnished to do so, subject to 15 | the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 24 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 26 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /lib/jquery/jquery.dataTables/LICENSE-BSD.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2010, Allan Jardine 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | * Neither the name of Allan Jardine nor SpryMedia UK may be used to endorse or promote products derived from this software without specific prior written permission. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | version = '1.8.0' 4 | 5 | setup(name='django-frontend', 6 | version=version, 7 | description="Django Frontend is a collection of static files and templates to jumpstart Django front-end development.", 8 | long_description=open("README.rst", "r").read(), 9 | classifiers=[ 10 | "Development Status :: 5 - Production/Stable", 11 | "Environment :: Web Environment", 12 | "Intended Audience :: End Users/Desktop", 13 | "Natural Language :: English", 14 | "Operating System :: OS Independent", 15 | "Framework :: Django", 16 | "Framework :: Django :: 1.6", 17 | "Framework :: Django :: 1.7", 18 | "Framework :: Django :: 1.8", 19 | "Framework :: Django :: 1.9", 20 | "Programming Language :: Python :: 2", 21 | "Programming Language :: Python :: 3", 22 | "Programming Language :: Python", 23 | "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", 24 | "Topic :: Utilities", 25 | "License :: OSI Approved :: MIT License", 26 | ], 27 | keywords='', 28 | author='Jon Faustman', 29 | author_email='jon@faustman.org', 30 | url='http://github.com/jonfaustman/django-frontend', 31 | license='MIT', 32 | packages=find_packages(), 33 | install_requires = [], 34 | include_package_data=True, 35 | zip_safe=False, 36 | ) 37 | -------------------------------------------------------------------------------- /run_tests.py: -------------------------------------------------------------------------------- 1 | import os, sys 2 | from django.conf import settings 3 | import django 4 | 5 | DIRNAME = os.path.dirname(__file__) 6 | 7 | if django.VERSION[1] < 4: 8 | # If the version is NOT django 4 or greater 9 | # then remove the TZ setting. 10 | 11 | settings.configure( 12 | DATABASES={ 13 | 'default': { 14 | 'ENGINE': 'django.db.backends.sqlite3', 15 | } 16 | }, 17 | ROOT_URLCONF = 'djfrontend.tests.urls', 18 | STATIC_URL = '/static/', 19 | INSTALLED_APPS = ( 20 | 'django.contrib.staticfiles', 21 | 'djfrontend', 22 | ) 23 | ) 24 | else: 25 | settings.configure(DATABASES={ 26 | 'default': { 27 | 'ENGINE': 'django.db.backends.sqlite3', 28 | } 29 | }, 30 | ROOT_URLCONF = 'djfrontend.tests.urls', 31 | STATIC_URL = '/static/', 32 | INSTALLED_APPS = ( 33 | 'django.contrib.staticfiles', 34 | 'djfrontend', 35 | ), 36 | USE_TZ=True) 37 | 38 | 39 | try: 40 | # Django 1.7 needs this, but other versions dont. 41 | django.setup() 42 | except AttributeError: 43 | pass 44 | 45 | 46 | from django.test.runner import DiscoverRunner 47 | test_runner = DiscoverRunner(verbosity=1) 48 | failures = test_runner.run_tests(['djfrontend', ]) 49 | if failures: 50 | sys.exit(failures) 51 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | Django Frontend 2 | =============== 3 | 4 | .. image:: https://travis-ci.org/jonfaustman/django-frontend.png?branch=master 5 | :target: https://travis-ci.org/jonfaustman/django-frontend 6 | 7 | Django Frontend is a collection of static files and templates to jumpstart Django front-end development. 8 | 9 | With the convenience of an installable Django application, easily add some of the most widely used static files and create custom templates built on top of one of the most well-known, widespread templates (`HTML5 Boilerplate `_ .) 10 | 11 | :Package: `https://pypi.python.org/pypi/django-frontend `_ 12 | :Source: `https://github.com/jonfaustman/django-frontend `_ 13 | 14 | Starring 15 | --------- 16 | * `HTML5 Boilerplate (5.3.0) `_ 17 | * `Modernizr (2.8.3) `_ 18 | * `normalize.css (4.2.0) `_ 19 | * `jQuery (1.12.4), (2.2.4) and (3.1.0) `_ 20 | * `jQuery UI (1.11.4) `_ 21 | * `jQuery DataTables (1.10.12) `_ 22 | * `jQuery Dynamic Formset (1.2.2) `_ 23 | * `jQuery ScrollTo (2.1.2) `_ 24 | * `jQuery Smooth Scroll (1.7.2) `_ 25 | * `Twitter Bootstrap (3.3.7) `_ 26 | * `Font Awesome (4.6.3) `_ 27 | 28 | Contents 29 | --------- 30 | 31 | .. toctree:: 32 | :maxdepth: 2 33 | 34 | getting_started 35 | granularity 36 | template_tags 37 | template_blocks 38 | optional_settings 39 | license 40 | changelog 41 | road_map 42 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | =============== 2 | Django Frontend 3 | =============== 4 | 5 | .. image:: https://travis-ci.org/jonfaustman/django-frontend.png?branch=master 6 | :target: https://travis-ci.org/jonfaustman/django-frontend 7 | 8 | Django Frontend is a collection of static files and templates to jumpstart Django front-end development. 9 | 10 | With the convenience of an installable Django application, easily add some of the most widely used static files and create custom templates built on top of one of the most well-known, widespread templates (`HTML5 Boilerplate `_ .) 11 | 12 | :Package: `https://pypi.python.org/pypi/django-frontend `_ 13 | :Source: `https://github.com/jonfaustman/django-frontend `_ 14 | 15 | --------- 16 | Starring 17 | --------- 18 | * `HTML5 Boilerplate (5.3.0) `_ 19 | * `Modernizr (2.8.3) `_ 20 | * `normalize.css (4.2.0) `_ 21 | * `jQuery (1.12.4), (2.2.4) and (3.1.0) `_ 22 | * `jQuery UI (1.11.4) `_ 23 | * `jQuery DataTables (1.10.12) `_ 24 | * `jQuery Dynamic Formset (1.2.2) `_ 25 | * `jQuery ScrollTo (2.1.2) `_ 26 | * `jQuery Smooth Scroll (1.7.2) `_ 27 | * `Twitter Bootstrap (3.3.7) `_ 28 | * `Font Awesome (4.6.3) `_ 29 | 30 | ----------------- 31 | More Information 32 | ----------------- 33 | 34 | For more information, instructions on how to get started, a changelog and a roadmap `read the documentation `_. 35 | -------------------------------------------------------------------------------- /docs/build/html/_sources/index.txt: -------------------------------------------------------------------------------- 1 | Django Frontend 2 | =============== 3 | 4 | .. image:: https://travis-ci.org/jonfaustman/django-frontend.png?branch=master 5 | :target: https://travis-ci.org/jonfaustman/django-frontend 6 | 7 | Django Frontend is a collection of static files and templates to jumpstart Django front-end development. 8 | 9 | With the convenience of an installable Django application, easily add some of the most widely used static files and create custom templates built on top of one of the most well-known, widespread templates (`HTML5 Boilerplate `_ .) 10 | 11 | :Package: `https://pypi.python.org/pypi/django-frontend `_ 12 | :Source: `https://github.com/jonfaustman/django-frontend `_ 13 | 14 | Starring 15 | --------- 16 | * `HTML5 Boilerplate (5.3.0) `_ 17 | * `Modernizr (2.8.3) `_ 18 | * `normalize.css (4.2.0) `_ 19 | * `jQuery (1.12.4), (2.2.4) and (3.1.0) `_ 20 | * `jQuery UI (1.11.4) `_ 21 | * `jQuery DataTables (1.10.12) `_ 22 | * `jQuery Dynamic Formset (1.2.2) `_ 23 | * `jQuery ScrollTo (2.1.2) `_ 24 | * `jQuery Smooth Scroll (1.7.2) `_ 25 | * `Twitter Bootstrap (3.3.7) `_ 26 | * `Font Awesome (4.6.3) `_ 27 | 28 | Contents 29 | --------- 30 | 31 | .. toctree:: 32 | :maxdepth: 2 33 | 34 | getting_started 35 | granularity 36 | template_tags 37 | template_blocks 38 | optional_settings 39 | license 40 | changelog 41 | road_map 42 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/transition.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: transition.js v3.3.7 3 | * http://getbootstrap.com/javascript/#transitions 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) 14 | // ============================================================ 15 | 16 | function transitionEnd() { 17 | var el = document.createElement('bootstrap') 18 | 19 | var transEndEventNames = { 20 | WebkitTransition : 'webkitTransitionEnd', 21 | MozTransition : 'transitionend', 22 | OTransition : 'oTransitionEnd otransitionend', 23 | transition : 'transitionend' 24 | } 25 | 26 | for (var name in transEndEventNames) { 27 | if (el.style[name] !== undefined) { 28 | return { end: transEndEventNames[name] } 29 | } 30 | } 31 | 32 | return false // explicit for ie8 ( ._.) 33 | } 34 | 35 | // http://blog.alexmaccaw.com/css-transitions 36 | $.fn.emulateTransitionEnd = function (duration) { 37 | var called = false 38 | var $el = this 39 | $(this).one('bsTransitionEnd', function () { called = true }) 40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) } 41 | setTimeout(callback, duration) 42 | return this 43 | } 44 | 45 | $(function () { 46 | $.support.transition = transitionEnd() 47 | 48 | if (!$.support.transition) return 49 | 50 | $.event.special.bsTransitionEnd = { 51 | bindType: $.support.transition.end, 52 | delegateType: $.support.transition.end, 53 | handle: function (e) { 54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) 55 | } 56 | } 57 | }) 58 | 59 | }(jQuery); 60 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/jquery/jquery.scrollTo/2.1.2/jquery.scrollTo.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com 3 | * Licensed under MIT 4 | * @author Ariel Flesler 5 | * @version 2.1.2 6 | */ 7 | ;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&10},i=function(t){t.is("TR")?t.children(":last").append(''+a.deleteText+""):t.is("UL")||t.is("OL")?t.append('
  • '+a.deleteText+"
  • "):t.append(''+a.deleteText+""),t.find("a."+a.deleteCssClass).click(function(){var t=e(this).parents("."+a.formCssClass),s=t.find('input:hidden[id $= "-DELETE"]');if(s.length)s.val("on"),t.hide();else{t.remove();var r=e("."+a.formCssClass).not(".formset-custom-template");e("#id_"+a.prefix+"-TOTAL_FORMS").val(r.length);for(var n=0,i=r.length;i>n;n++)l(r.eq(n),n),r.eq(n).find("input,select,textarea,label").each(function(){d(e(this),a.prefix,n)})}return a.removed&&a.removed(t),!1})};if(r.each(function(t){var s=e(this),r=s.find('input:checkbox[id $= "-DELETE"]');r.length&&(r.before(''),r.remove()),n(s)&&(i(s),s.addClass(a.formCssClass),l(s,t))}),r.length){var f,o;if(a.formTemplate?(o=a.formTemplate instanceof e?a.formTemplate:e(a.formTemplate),o.removeAttr("id").addClass(a.formCssClass).addClass("formset-custom-template"),o.find("input,select,textarea,label").each(function(){d(e(this),a.prefix,2012)}),i(o)):(o=e("."+a.formCssClass+":last").clone(!0).removeAttr("id"),o.find('input:hidden[id $= "-DELETE"]').remove(),o.find("input,select,textarea,label").each(function(){var t=e(this);t.is("input:checkbox")||t.is("input:radio")?t.attr("checked",!1):t.val("")})),a.formTemplate=o,"TR"==r.attr("tagName")){var c=r.eq(0).children().length;r.parent().append(''+a.addText+""),f=r.parent().find("tr:last a"),f.parents("tr").addClass(a.formCssClass+"-add")}else r.filter(":last").after(''+a.addText+""),f=r.filter(":last").next();f.click(function(){var t=parseInt(e("#id_"+a.prefix+"-TOTAL_FORMS").val()),s=a.formTemplate.clone(!0).removeClass("formset-custom-template"),r=e(this).parents("tr."+a.formCssClass+"-add").get(0)||this;return l(s,t),s.insertBefore(e(r)).show(),s.find("input,select,textarea,label").each(function(){d(e(this),a.prefix,t)}),e("#id_"+a.prefix+"-TOTAL_FORMS").val(t+1),a.added&&a.added(s),!1})}return r},e.fn.formset.defaults={prefix:"form",formTemplate:null,addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",formCssClass:"dynamic-form",extraClasses:[],added:null,removed:null}}(jQuery); 2 | -------------------------------------------------------------------------------- /docs/build/html/genindex.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Index — django-frontend 1.8.0 documentation 11 | 12 | 13 | 14 | 15 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 39 | 40 |
    41 |
    42 |
    43 |
    44 | 45 | 46 |

    Index

    47 | 48 |
    49 | 50 |
    51 | 52 | 53 |
    54 |
    55 |
    56 |
    57 |
    58 | 59 | 60 | 61 | 73 | 74 |
    75 |
    76 |
    77 |
    78 | 87 | 91 | 92 | -------------------------------------------------------------------------------- /docs/source/optional_settings.rst: -------------------------------------------------------------------------------- 1 | Optional Settings 2 | ================== 3 | For greater granularity, you can optionally set versions of included files through your settings. 4 | 5 | Settings are overridden if also set within a template. 6 | 7 | DJFRONTEND_STATIC_URL 8 | ---------------------- 9 | Set a dedicated static server or CDN for serving static files. 10 | 11 | DJFRONTEND_H5BP_HTML 12 | --------------------- 13 | Sets the lang attribute value. 14 | 15 | DJFRONTEND_H5BP_CSS 16 | --------------------- 17 | Sets the version of the HTML5 Boilerplate CSS file. 18 | 19 | DJFRONTEND_NORMALIZE 20 | --------------------- 21 | Sets the version of the Normalize CSS file. 22 | 23 | DJFRONTEND_FONTAWESOME 24 | ----------------------- 25 | Sets the version of the Font Awesome CSS file. 26 | 27 | DJFRONTEND_MODERNIZR 28 | --------------------- 29 | Sets the version of the Modernizr JavaScript file. 30 | 31 | DJFRONTEND_JQUERY 32 | ------------------- 33 | Sets the version of the jQuery JavaScript file. 34 | 35 | DJFRONTEND_JQUERYUI 36 | --------------------- 37 | Sets the version of the jQuery UI file. 38 | 39 | DJFRONTEND_JQUERY_DATATABLES_VERSION 40 | -------------------------------------- 41 | Sets the version of the jQuery DataTables JavaScript and CSS file. Can be overridden by 'DJFRONTEND_JQUERY_DATATABLES' or 'DJFRONTEND_JQUERY_DATATABLES_CSS'. 42 | 43 | DJFRONTEND_JQUERY_DATATABLES 44 | ------------------------------ 45 | Sets the version of the jQuery DataTables JavaScript file. 46 | 47 | DJFRONTEND_JQUERY_DATATABLES_CSS 48 | ---------------------------------- 49 | Sets the version of the jQuery DataTables CSS file. 50 | 51 | DJFRONTEND_JQUERY_FORMSET 52 | -------------------------- 53 | Sets the version of the jQuery Dynamic Formset JavaScript file. 54 | 55 | DJFRONTEND_JQUERY_SCROLLTO 56 | --------------------------- 57 | Sets the version of the jQuery ScrollTo JavaScript file. 58 | 59 | DJFRONTEND_JQUERY_SMOOTHSCROLL 60 | ------------------------------- 61 | Sets the version of the jQuery SmoothScroll JavaScript file. 62 | 63 | DJFRONTEND_TWBS_VERSION 64 | ------------------------ 65 | Sets the version of Twitter Bootstrap's JavaScript and CSS file(s). Can be overridden by 'DJFRONTEND_TWBS_CSS', 'DJFRONTEND_TWBS_THEME_CSS' or 'DJFRONTEND_TWBS_JS_VERSION'. 66 | 67 | DJFRONTEND_TWBS_CSS 68 | --------------------- 69 | Sets the version of the Twitter Bootstrap CSS file. 70 | 71 | DJFRONTEND_TWBS_THEME_CSS 72 | -------------------------- 73 | Sets the version of the Twitter Bootstrap Theme CSS file. 74 | 75 | DJFRONTEND_TWBS_JS_VERSION 76 | --------------------------- 77 | Sets the version of the Twitter Bootstrap JavaScript file(s). 78 | 79 | DJFRONTEND_TWBS_JS_FILES 80 | ------------------------- 81 | Sets the Twitter Bootstrap JavaScript file(s). 82 | 83 | DJFRONTEND_GA 84 | -------------- 85 | Sets the Google Analtyics account. 86 | 87 | DJFRONTEND_GA_SETDOMAINNAME 88 | ---------------------------- 89 | Set domain for multiple, or cross-domain tracking with Google Analytics. 90 | 91 | DJFRONTEND_GA_SETALLOWLINKER 92 | ----------------------------- 93 | To use _setAllowLinker method on target site for cross-domain tracking with Google Analytics. Set to 'True' to enable. Requires H5BP_GA_SETDOMAINNAME to be set. 94 | -------------------------------------------------------------------------------- /docs/build/html/_sources/optional_settings.txt: -------------------------------------------------------------------------------- 1 | Optional Settings 2 | ================== 3 | For greater granularity, you can optionally set versions of included files through your settings. 4 | 5 | Settings are overridden if also set within a template. 6 | 7 | DJFRONTEND_STATIC_URL 8 | ---------------------- 9 | Set a dedicated static server or CDN for serving static files. 10 | 11 | DJFRONTEND_H5BP_HTML 12 | --------------------- 13 | Sets the lang attribute value. 14 | 15 | DJFRONTEND_H5BP_CSS 16 | --------------------- 17 | Sets the version of the HTML5 Boilerplate CSS file. 18 | 19 | DJFRONTEND_NORMALIZE 20 | --------------------- 21 | Sets the version of the Normalize CSS file. 22 | 23 | DJFRONTEND_FONTAWESOME 24 | ----------------------- 25 | Sets the version of the Font Awesome CSS file. 26 | 27 | DJFRONTEND_MODERNIZR 28 | --------------------- 29 | Sets the version of the Modernizr JavaScript file. 30 | 31 | DJFRONTEND_JQUERY 32 | ------------------- 33 | Sets the version of the jQuery JavaScript file. 34 | 35 | DJFRONTEND_JQUERYUI 36 | --------------------- 37 | Sets the version of the jQuery UI file. 38 | 39 | DJFRONTEND_JQUERY_DATATABLES_VERSION 40 | -------------------------------------- 41 | Sets the version of the jQuery DataTables JavaScript and CSS file. Can be overridden by 'DJFRONTEND_JQUERY_DATATABLES' or 'DJFRONTEND_JQUERY_DATATABLES_CSS'. 42 | 43 | DJFRONTEND_JQUERY_DATATABLES 44 | ------------------------------ 45 | Sets the version of the jQuery DataTables JavaScript file. 46 | 47 | DJFRONTEND_JQUERY_DATATABLES_CSS 48 | ---------------------------------- 49 | Sets the version of the jQuery DataTables CSS file. 50 | 51 | DJFRONTEND_JQUERY_FORMSET 52 | -------------------------- 53 | Sets the version of the jQuery Dynamic Formset JavaScript file. 54 | 55 | DJFRONTEND_JQUERY_SCROLLTO 56 | --------------------------- 57 | Sets the version of the jQuery ScrollTo JavaScript file. 58 | 59 | DJFRONTEND_JQUERY_SMOOTHSCROLL 60 | ------------------------------- 61 | Sets the version of the jQuery SmoothScroll JavaScript file. 62 | 63 | DJFRONTEND_TWBS_VERSION 64 | ------------------------ 65 | Sets the version of Twitter Bootstrap's JavaScript and CSS file(s). Can be overridden by 'DJFRONTEND_TWBS_CSS', 'DJFRONTEND_TWBS_THEME_CSS' or 'DJFRONTEND_TWBS_JS_VERSION'. 66 | 67 | DJFRONTEND_TWBS_CSS 68 | --------------------- 69 | Sets the version of the Twitter Bootstrap CSS file. 70 | 71 | DJFRONTEND_TWBS_THEME_CSS 72 | -------------------------- 73 | Sets the version of the Twitter Bootstrap Theme CSS file. 74 | 75 | DJFRONTEND_TWBS_JS_VERSION 76 | --------------------------- 77 | Sets the version of the Twitter Bootstrap JavaScript file(s). 78 | 79 | DJFRONTEND_TWBS_JS_FILES 80 | ------------------------- 81 | Sets the Twitter Bootstrap JavaScript file(s). 82 | 83 | DJFRONTEND_GA 84 | -------------- 85 | Sets the Google Analtyics account. 86 | 87 | DJFRONTEND_GA_SETDOMAINNAME 88 | ---------------------------- 89 | Set domain for multiple, or cross-domain tracking with Google Analytics. 90 | 91 | DJFRONTEND_GA_SETALLOWLINKER 92 | ----------------------------- 93 | To use _setAllowLinker method on target site for cross-domain tracking with Google Analytics. Set to 'True' to enable. Requires H5BP_GA_SETDOMAINNAME to be set. 94 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/jquery/jquery.smooth-scroll/1.7.2/jquery.smooth-scroll.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Smooth Scroll - v1.7.2 - 2016-01-23 3 | * https://github.com/kswedberg/jquery-smooth-scroll 4 | * Copyright (c) 2016 Karl Swedberg 5 | * Licensed MIT 6 | */ 7 | 8 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(a){var b="1.7.2",c={},d={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},e=function(b){var c=[],d=!1,e=b.dir&&"left"===b.dir?"scrollLeft":"scrollTop";return this.each(function(){var b=a(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(b[e]()>0?c.push(this):(b[e](1),d=b[e]()>0,d&&c.push(this),b[e](0))):(c.push(document.scrollingElement),!1)}),c.length||this.each(function(){this===document.documentElement&&"smooth"===a(this).css("scrollBehavior")&&(c=[this]),c.length||"BODY"!==this.nodeName||(c=[this])}),"first"===b.el&&c.length>1&&(c=[c[0]]),c};a.fn.extend({scrollable:function(a){var b=e.call(this,{dir:a});return this.pushStack(b)},firstScrollable:function(a){var b=e.call(this,{el:"first",dir:a});return this.pushStack(b)},smoothScroll:function(b,c){if(b=b||{},"options"===b)return c?this.each(function(){var b=a(this),d=a.extend(b.data("ssOpts")||{},c);a(this).data("ssOpts",d)}):this.first().data("ssOpts");var d=a.extend({},a.fn.smoothScroll.defaults,b),e=function(b){var c=function(a){return a.replace(/(:|\.|\/)/g,"\\$1")},e=this,f=a(this),g=a.extend({},d,f.data("ssOpts")||{}),h=d.exclude,i=g.excludeWithin,j=0,k=0,l=!0,m={},n=a.smoothScroll.filterPath(location.pathname),o=a.smoothScroll.filterPath(e.pathname),p=location.hostname===e.hostname||!e.hostname,q=g.scrollTarget||o===n,r=c(e.hash);if(r&&!a(r).length&&(l=!1),g.scrollTarget||p&&q&&r){for(;l&&j 3 | 4 | 5 | 6 | 7 | 8 | 9 | Search — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 46 | 47 |
    48 |
    49 |
    50 |
    51 | 52 |

    Search

    53 |
    54 | 55 |

    56 | Please activate JavaScript to enable the search 57 | functionality. 58 |

    59 |
    60 |

    61 | From here you can search these documents. Enter your search 62 | words into the box below and click "search". Note that the search 63 | function will automatically search for all of the words. Pages 64 | containing fewer words won't appear in the result list. 65 |

    66 |
    67 | 68 | 69 | 70 |
    71 | 72 |
    73 | 74 |
    75 | 76 |
    77 |
    78 |
    79 |
    80 |
    81 |
    82 |
    83 |
    84 |
    85 | 94 | 98 | 99 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/popover.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: popover.js v3.3.7 3 | * http://getbootstrap.com/javascript/#popovers 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // POPOVER PUBLIC CLASS DEFINITION 14 | // =============================== 15 | 16 | var Popover = function (element, options) { 17 | this.init('popover', element, options) 18 | } 19 | 20 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') 21 | 22 | Popover.VERSION = '3.3.7' 23 | 24 | Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { 25 | placement: 'right', 26 | trigger: 'click', 27 | content: '', 28 | template: '' 29 | }) 30 | 31 | 32 | // NOTE: POPOVER EXTENDS tooltip.js 33 | // ================================ 34 | 35 | Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) 36 | 37 | Popover.prototype.constructor = Popover 38 | 39 | Popover.prototype.getDefaults = function () { 40 | return Popover.DEFAULTS 41 | } 42 | 43 | Popover.prototype.setContent = function () { 44 | var $tip = this.tip() 45 | var title = this.getTitle() 46 | var content = this.getContent() 47 | 48 | $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) 49 | $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events 50 | this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' 51 | ](content) 52 | 53 | $tip.removeClass('fade top bottom left right in') 54 | 55 | // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do 56 | // this manually by checking the contents. 57 | if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() 58 | } 59 | 60 | Popover.prototype.hasContent = function () { 61 | return this.getTitle() || this.getContent() 62 | } 63 | 64 | Popover.prototype.getContent = function () { 65 | var $e = this.$element 66 | var o = this.options 67 | 68 | return $e.attr('data-content') 69 | || (typeof o.content == 'function' ? 70 | o.content.call($e[0]) : 71 | o.content) 72 | } 73 | 74 | Popover.prototype.arrow = function () { 75 | return (this.$arrow = this.$arrow || this.tip().find('.arrow')) 76 | } 77 | 78 | 79 | // POPOVER PLUGIN DEFINITION 80 | // ========================= 81 | 82 | function Plugin(option) { 83 | return this.each(function () { 84 | var $this = $(this) 85 | var data = $this.data('bs.popover') 86 | var options = typeof option == 'object' && option 87 | 88 | if (!data && /destroy|hide/.test(option)) return 89 | if (!data) $this.data('bs.popover', (data = new Popover(this, options))) 90 | if (typeof option == 'string') data[option]() 91 | }) 92 | } 93 | 94 | var old = $.fn.popover 95 | 96 | $.fn.popover = Plugin 97 | $.fn.popover.Constructor = Popover 98 | 99 | 100 | // POPOVER NO CONFLICT 101 | // =================== 102 | 103 | $.fn.popover.noConflict = function () { 104 | $.fn.popover = old 105 | return this 106 | } 107 | 108 | }(jQuery); 109 | -------------------------------------------------------------------------------- /docs/build/html/road_map.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Road Map — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 42 | 43 |
    44 |
    45 |
    46 |
    47 | 48 |
    49 |

    Road Map

    50 |
    51 | 52 | 53 |
    54 |
    55 |
    56 |
    57 |
    58 |

    Previous topic

    59 |

    Changelog

    61 |

    This Page

    62 | 66 | 78 | 79 |
    80 |
    81 |
    82 |
    83 | 95 | 99 | 100 | -------------------------------------------------------------------------------- /docs/build/html/_static/pygments.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #eeffcc; } 3 | .highlight .c { color: #408090; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #333333 } /* Generic.Output */ 17 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #902000 } /* Keyword.Type */ 27 | .highlight .m { color: #208050 } /* Literal.Number */ 28 | .highlight .s { color: #4070a0 } /* Literal.String */ 29 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 30 | .highlight .nb { color: #007020 } /* Name.Builtin */ 31 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #60add5 } /* Name.Constant */ 33 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 34 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #007020 } /* Name.Exception */ 36 | .highlight .nf { color: #06287e } /* Name.Function */ 37 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 38 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 41 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #208050 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 49 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 51 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 55 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 57 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 60 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 61 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 62 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/button.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: button.js v3.3.7 3 | * http://getbootstrap.com/javascript/#buttons 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // BUTTON PUBLIC CLASS DEFINITION 14 | // ============================== 15 | 16 | var Button = function (element, options) { 17 | this.$element = $(element) 18 | this.options = $.extend({}, Button.DEFAULTS, options) 19 | this.isLoading = false 20 | } 21 | 22 | Button.VERSION = '3.3.7' 23 | 24 | Button.DEFAULTS = { 25 | loadingText: 'loading...' 26 | } 27 | 28 | Button.prototype.setState = function (state) { 29 | var d = 'disabled' 30 | var $el = this.$element 31 | var val = $el.is('input') ? 'val' : 'html' 32 | var data = $el.data() 33 | 34 | state += 'Text' 35 | 36 | if (data.resetText == null) $el.data('resetText', $el[val]()) 37 | 38 | // push to event loop to allow forms to submit 39 | setTimeout($.proxy(function () { 40 | $el[val](data[state] == null ? this.options[state] : data[state]) 41 | 42 | if (state == 'loadingText') { 43 | this.isLoading = true 44 | $el.addClass(d).attr(d, d).prop(d, true) 45 | } else if (this.isLoading) { 46 | this.isLoading = false 47 | $el.removeClass(d).removeAttr(d).prop(d, false) 48 | } 49 | }, this), 0) 50 | } 51 | 52 | Button.prototype.toggle = function () { 53 | var changed = true 54 | var $parent = this.$element.closest('[data-toggle="buttons"]') 55 | 56 | if ($parent.length) { 57 | var $input = this.$element.find('input') 58 | if ($input.prop('type') == 'radio') { 59 | if ($input.prop('checked')) changed = false 60 | $parent.find('.active').removeClass('active') 61 | this.$element.addClass('active') 62 | } else if ($input.prop('type') == 'checkbox') { 63 | if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false 64 | this.$element.toggleClass('active') 65 | } 66 | $input.prop('checked', this.$element.hasClass('active')) 67 | if (changed) $input.trigger('change') 68 | } else { 69 | this.$element.attr('aria-pressed', !this.$element.hasClass('active')) 70 | this.$element.toggleClass('active') 71 | } 72 | } 73 | 74 | 75 | // BUTTON PLUGIN DEFINITION 76 | // ======================== 77 | 78 | function Plugin(option) { 79 | return this.each(function () { 80 | var $this = $(this) 81 | var data = $this.data('bs.button') 82 | var options = typeof option == 'object' && option 83 | 84 | if (!data) $this.data('bs.button', (data = new Button(this, options))) 85 | 86 | if (option == 'toggle') data.toggle() 87 | else if (option) data.setState(option) 88 | }) 89 | } 90 | 91 | var old = $.fn.button 92 | 93 | $.fn.button = Plugin 94 | $.fn.button.Constructor = Button 95 | 96 | 97 | // BUTTON NO CONFLICT 98 | // ================== 99 | 100 | $.fn.button.noConflict = function () { 101 | $.fn.button = old 102 | return this 103 | } 104 | 105 | 106 | // BUTTON DATA-API 107 | // =============== 108 | 109 | $(document) 110 | .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { 111 | var $btn = $(e.target).closest('.btn') 112 | Plugin.call($btn, 'toggle') 113 | if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { 114 | // Prevent double click on radios, and the double selections (so cancellation) on checkboxes 115 | e.preventDefault() 116 | // The target component still receive the focus 117 | if ($btn.is('input,button')) $btn.trigger('focus') 118 | else $btn.find('input:visible,button:visible').first().trigger('focus') 119 | } 120 | }) 121 | .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { 122 | $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) 123 | }) 124 | 125 | }(jQuery); 126 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/tab.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: tab.js v3.3.7 3 | * http://getbootstrap.com/javascript/#tabs 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // TAB CLASS DEFINITION 14 | // ==================== 15 | 16 | var Tab = function (element) { 17 | // jscs:disable requireDollarBeforejQueryAssignment 18 | this.element = $(element) 19 | // jscs:enable requireDollarBeforejQueryAssignment 20 | } 21 | 22 | Tab.VERSION = '3.3.7' 23 | 24 | Tab.TRANSITION_DURATION = 150 25 | 26 | Tab.prototype.show = function () { 27 | var $this = this.element 28 | var $ul = $this.closest('ul:not(.dropdown-menu)') 29 | var selector = $this.data('target') 30 | 31 | if (!selector) { 32 | selector = $this.attr('href') 33 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 34 | } 35 | 36 | if ($this.parent('li').hasClass('active')) return 37 | 38 | var $previous = $ul.find('.active:last a') 39 | var hideEvent = $.Event('hide.bs.tab', { 40 | relatedTarget: $this[0] 41 | }) 42 | var showEvent = $.Event('show.bs.tab', { 43 | relatedTarget: $previous[0] 44 | }) 45 | 46 | $previous.trigger(hideEvent) 47 | $this.trigger(showEvent) 48 | 49 | if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return 50 | 51 | var $target = $(selector) 52 | 53 | this.activate($this.closest('li'), $ul) 54 | this.activate($target, $target.parent(), function () { 55 | $previous.trigger({ 56 | type: 'hidden.bs.tab', 57 | relatedTarget: $this[0] 58 | }) 59 | $this.trigger({ 60 | type: 'shown.bs.tab', 61 | relatedTarget: $previous[0] 62 | }) 63 | }) 64 | } 65 | 66 | Tab.prototype.activate = function (element, container, callback) { 67 | var $active = container.find('> .active') 68 | var transition = callback 69 | && $.support.transition 70 | && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) 71 | 72 | function next() { 73 | $active 74 | .removeClass('active') 75 | .find('> .dropdown-menu > .active') 76 | .removeClass('active') 77 | .end() 78 | .find('[data-toggle="tab"]') 79 | .attr('aria-expanded', false) 80 | 81 | element 82 | .addClass('active') 83 | .find('[data-toggle="tab"]') 84 | .attr('aria-expanded', true) 85 | 86 | if (transition) { 87 | element[0].offsetWidth // reflow for transition 88 | element.addClass('in') 89 | } else { 90 | element.removeClass('fade') 91 | } 92 | 93 | if (element.parent('.dropdown-menu').length) { 94 | element 95 | .closest('li.dropdown') 96 | .addClass('active') 97 | .end() 98 | .find('[data-toggle="tab"]') 99 | .attr('aria-expanded', true) 100 | } 101 | 102 | callback && callback() 103 | } 104 | 105 | $active.length && transition ? 106 | $active 107 | .one('bsTransitionEnd', next) 108 | .emulateTransitionEnd(Tab.TRANSITION_DURATION) : 109 | next() 110 | 111 | $active.removeClass('in') 112 | } 113 | 114 | 115 | // TAB PLUGIN DEFINITION 116 | // ===================== 117 | 118 | function Plugin(option) { 119 | return this.each(function () { 120 | var $this = $(this) 121 | var data = $this.data('bs.tab') 122 | 123 | if (!data) $this.data('bs.tab', (data = new Tab(this))) 124 | if (typeof option == 'string') data[option]() 125 | }) 126 | } 127 | 128 | var old = $.fn.tab 129 | 130 | $.fn.tab = Plugin 131 | $.fn.tab.Constructor = Tab 132 | 133 | 134 | // TAB NO CONFLICT 135 | // =============== 136 | 137 | $.fn.tab.noConflict = function () { 138 | $.fn.tab = old 139 | return this 140 | } 141 | 142 | 143 | // TAB DATA-API 144 | // ============ 145 | 146 | var clickHandler = function (e) { 147 | e.preventDefault() 148 | Plugin.call($(this), 'show') 149 | } 150 | 151 | $(document) 152 | .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) 153 | .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) 154 | 155 | }(jQuery); 156 | -------------------------------------------------------------------------------- /docs/build/html/searchindex.js: -------------------------------------------------------------------------------- 1 | Search.setIndex({envversion:42,terms:{all:[6,7,8,2],code:[7,6],frontend:[],meta_descript:[],thi:6,cdn:[7,5,2],head_j:[],djfrontend_jquery_datat:[],googleapi:7,djfrontend_norm:[],smoothscrol:[7,5],through:5,tooltip:[7,6],font:[0,7,5,1,2],callback:7,dynam:[0,7,5,1,2],write:7,conjunct:4,now:7,thank:2,doe:4,chosen:7,fix:[1,2],apach:1,descript:4,send:7,than:6,djfrontend_jquery_datatables_css:[],theme:[7,5,2],other:6,cdnj:[7,2],templat:[],djfrontend_fontawesome_i:2,awesom:[0,7,5,1,2],main:4,local:[7,2],djfrontend_jqueryui:[],introduc:6,applic:[0,4],non:2,sourc:0,"return":7,greater:5,head_css:[],concaten:7,python:[0,2],auto:7,end:0,pypi:0,initi:[7,2],templatetag:2,rc2:2,have:6,"new":[7,1,6],front:0,djfrontend_twbs_glyphicon:2,silk:2,"class":[7,4,2],widespread:0,requir:[7,5,8],name:7,glyphicon:2,djfrontend_jquery_formset:[],djfrontend:[],enabl:5,specif:[],level:6,button:[7,6],popov:[7,6],list:6,ie7:2,server:5,collect:0,exampl:7,integr:2,frame:2,each:7,async:7,sil:1,domain:[7,5],set:[],createel:7,twitter:[0,7,5,1,2],modernizr:[0,7,5,1,2],some:0,meta:[4,2],"static":[0,7,5],staticfil:8,pass:6,xxxxx:7,out:7,serv:5,allowlink:7,djfront_fontawesome_i:2,develop:0,ryan:7,per:2,content:[],version:[7,5,1,6],meta_viewport:[],rel:7,internet:4,inspir:7,condit:2,djfrontend_twbs_vers:[],method:[7,5],attribut:[4,5,2],gpl:1,accord:7,djfrontend_jquery_datatables_vers:[],parent:4,dropdown:[7,6],minifi:[7,2],javascript:[7,4,5,2],onli:7,bodi:4,ajax:7,base:8,html5:[0,7,5,1,2],same:6,releas:2,org:0,body_cont:[],valu:[6,7,5,2],src:7,plugin:7,djfrontend_twbs_theme_css:[],h5bp_ga_setdomainnam:5,djfrontend_h5bp_html:[],turn:6,body_id:[],iso:6,modal:[7,6],overriden:6,cloudflar:7,chang:[8,6,4,7,2],getelementsbytagnam:7,com:[0,7],licens:[],road:[],load:[],djfrontend_static_url:[],lang:[7,4,5],render:7,transit:[7,6],within:[5,6],djfrontend_h5bp_css:[],number:7,insertbefor:7,date:7,href:7,djfrontend_modernizr:[],djfrontend_ga_setdomainnam:[],contrib:8,stabl:2,updat:2,installed_app:8,your:[7,4,5,8],djfrontend_twbs_js_vers:[],twb:[7,2],pageview:7,djfrontend_jquery_scrollto:[],creat:[0,7],script:[7,2],chrome:2,"_setallowlink":[7,5],top:0,univers:[7,2],add:[0,7,4,8,6],jonfaustman:0,compon:[],stylesheet:7,window:7,master:2,includ:[7,6,4,5,2],carousel:[7,6],suit:[7,4],fontawesom:[7,2],conveni:0,dstegelman:2,djfrontend_twbs_js_fil:[],want:8,"function":7,autolink:7,head:4,doctyp:[4,2],option:[],etc:8,travi:2,djfrontend_jquery_datatables_themerol:2,site:[7,5],warn:[4,2],parentnod:7,from:[7,4,2],link:7,analty:5,known:0,"true":[7,5],djfrontend_twbs_responsive_css:2,viewport:4,"case":2,wide:0,account:5,analyt:[7,5,2],word:6,target:[7,5],full:7,avm:2,"default":[8,6,4,7,2],wish:7,remov:2,scroll:[0,7,1,2],smooth:[0,7,1,2],rc1:2,structur:6,"final":6,jqueri:[0,7,5,1,2],directori:6,"while":6,googleanalyticsobject:7,languag:7,can:[5,6],www:7,djfrontend_jquery_smoothscrol:[],otherwis:7,boilerpl:[0,7,5,1,2],overrid:[4,2],djfrontend_fontawesom:[],explor:4,individu:7,give:6,djfrontend_twbs_j:[],linker:7,bradi:7,argument:[6,7,2],ani:4,djfront_fontawesom:2,packag:0,typeahead:2,tag:[],body_j:[],file:[0,4,5,6,7,8],pip:8,jqueryui:7,dedic:5,djfrontend_ga:[],template_debug:7,tab:[7,6],shout:7,multipl:[7,5],built:0,lib:7,min:[7,2],titl:[],make:8,custom:0,body_class:[],cross:[7,5],classifi:2,snippet:[7,2],also:[5,8],need:[7,4],html:[],which:6,ttemplate_debug:7,test:2,h5bp:[7,2],you:[8,7,5,6],document:7,mit:1,css:[0,1,2,4,5,7],collaps:[7,6],dual:1,map:[],scrollspi:[7,6],sure:8,http:0,djfrontend_jqueri:[],overridden:[5,6],normal:[0,7,5,1,2],track:[7,5],bootstrap_j:7,alert:[7,6],most:0,url:2,easili:0,bsd:1,jumpstart:0,formset:[0,7,5,1,2],googl:[7,5,2],djfrontend_twbs_css:[],lower:2,github:0,orientationchang:[1,2],scrollto:[0,7,5,1,2],djfrontend_ga_setallowlink:[],bootstrap:[0,7,5,1,2],well:0,ofl:1,django:[],affix:[7,6],inform:4,without:7,block:[],allow:[6,2],anoth:7,push:7,datat:[0,7,5,1,2],fallback:7,famfamfam:2,icon:2,latest:2},objtypes:{},objnames:{},filenames:["index","license","changelog","road_map","template_blocks","optional_settings","granularity","template_tags","getting_started"],titles:["Django Frontend","License","Changelog","Road Map","Template blocks","Optional Settings","Granularity","Template tags","Getting Started"],objects:{},titleterms:{load:8,block:4,set:5,frontend:0,meta_descript:4,djfrontend_twbs_j:7,djfrontend_jqueryui:[7,5],head_j:4,djfrontend_jquery_datat:[7,5],templat:[7,4],djfrontend_norm:[7,5],tag:7,djfrontend_modernizr:[7,5],djfrontend_ga_setdomainnam:5,instal:8,compon:1,djfrontend_jquery_scrollto:[7,5],head_css:4,djfrontend_twbs_js_vers:5,titl:4,licens:1,djfrontend_static_url:5,djfrontend_jquery_datatables_css:[7,5],html:4,meta_viewport:4,content:0,djfrontend_twbs_vers:5,start:8,djfrontend_fontawesom:[7,5],map:3,body_class:4,star:0,option:5,extend:8,get:8,body_id:4,djfrontend_jquery_datatables_vers:5,djfrontend_ga:[7,5],body_cont:4,djfrontend_twbs_css:[7,5],djfrontend_jquery_formset:[7,5],djfrontend:7,specif:1,granular:6,djfrontend_twbs_theme_css:[7,5],djfrontend_ga_setallowlink:5,djfrontend_h5bp_html:[7,5],changelog:2,django:0,djfrontend_twbs_js_fil:5,djfrontend_jqueri:[7,5],djfrontend_jquery_smoothscrol:[7,5],djfrontend_h5bp_css:[7,5],road:3,body_j:4}}) -------------------------------------------------------------------------------- /docs/source/changelog.rst: -------------------------------------------------------------------------------- 1 | Changelog 2 | ============== 3 | 4 | 1.8.0 5 | ------ 6 | * Templatetag updated for Django 1.9 - thanks `avm `_/ 7 | * Updated normalize.css to v4.2.0. 8 | * Updated jQuery to v1.12.4 and v2.2.4. 9 | * Added jQuery v3.1.0. 10 | * Updated jQuery DataTables to v1.10.12. 11 | * Updated jQuery Dynamic Formset to v1.2.2. 12 | * Updated jQuery ScrollTo to v2.1.2. 13 | * Updated Twitter Bootstrap to v3.3.7. 14 | * Updated jQuery Smooth Scroll to v1.7.2. 15 | * Updated Font Awesome to v4.6.3. 16 | * Updated HTML5 Boilerplate CSS to v5.3.0. 17 | 18 | 1.7.0 19 | ------ 20 | * Updated HTML5 Boilerplate CSS to v5.2.0. 21 | * Removed iOS-Orientationchange-Fix. 22 | * Updated Twitter Bootstrap to v3.3.5. 23 | * Updated jQuery ScrollTo to v2.1.1. 24 | * Updated jQuery DataTables to v1.10.7. 25 | * Updated jQuery to v1.11.3 and v2.1.4. 26 | * Updated normalize.css to v3.0.3 27 | 28 | 1.6.1 29 | ------ 30 | * Updated classifiers to include Python 3 - thanks `dstegelman `_. 31 | 32 | 1.6.0 33 | ------ 34 | * Updated HTML5 Boilerplate CSS to v5.0.0. 35 | * Lower-case doctype per H5BP v5.0.0. 36 | * Updated normalize.css to v3.0.2. 37 | * Updated Font Awesome to v4.3.0. 38 | * Updated jQuery to v1.11.2 and v2.1.3. 39 | * Updated jQuery UI to v1.11.4. 40 | * Updated jQuery DataTables to v1.10.5. 41 | * Updated jQuery ScrollTo to v2.1.0. 42 | * Updated jQuery Smooth Scroll to v1.5.5. 43 | * Updated Twitter Bootstrap to v3.3.4. 44 | * Updated tests to latest 10 stable Django releases. 45 | 46 | 1.5.0 47 | ------ 48 | * Updated jQuery UI to v1.11.1. 49 | * Updated jquery.dataTables to v1.10.2. 50 | * Updated jquery.scrollTo to v1.4.13. 51 | * Updated jquery.smooth-scroll to v.1.5.0. 52 | * Updated Font Awesome to v4.2.0. 53 | 54 | 1.4.0 55 | ------ 56 | * Updated Modernizr to v2.8.3. 57 | * Updated jquery.dataTables to v1.10.1. 58 | * Added jquery.dataTables minified CSS. 59 | * Added djfrontend_jquery_datatables_themeroller template tag. 60 | 61 | 1.3.0 62 | ------ 63 | * Updated jQuery UI to v1.11.0 64 | * Updated TWBS to v3.2.0 65 | 66 | 1.2.0 67 | ------ 68 | * Fixed jquery.dataTables CSS loading as a script. 69 | * Fixed URL to TWBS Glyphicons. 70 | * Added TWBS CSS maps. 71 | * Updated Modernizr to v2.8.2 72 | * Updated Normalize.css to v3.0.1 73 | * Updated jQuery to v1.11.1 and 2.1.1 74 | * Added jQuery map. 75 | * Updated jquery.dataTables to v1.10.0 76 | * Updated jquery.scrollTo to v1.4.12 77 | * Updated FontAwesome to v4.1.0 78 | 79 | 80 | 1.1.0 81 | ------ 82 | * Updated Twitter Bootstrap to v3.1.1 83 | * Updated Normalize.css to v3.0.0 84 | * Updated jquery.scrollTo to v1.4.11 85 | 86 | 1.0.0 87 | ------ 88 | * Removed famfamfam Silk Icons. 89 | * Updated Fontawesome to v4.0.3. 90 | * Removed Fontawesome's IE7 CSS. 91 | * Removed djfrontend_fontawesome_ie template tag. 92 | * Updated Twitter Bootstrap to v3.0.3. 93 | * Updated Modernizr to v2.7.1. 94 | * Updated jQuery.ScrollTo to v1.4.9. 95 | * Updated jQuery.smooth-scroll to v1.4.13. 96 | * Updated jQuery to v1.11.0. 97 | * Updated jQuery to v2.1.0. 98 | * Updated jQuery UI v1.10.3 to v1.10.4. 99 | * Changed template arguments to optional arguments. 100 | * Allow settings to override defaults. 101 | * Load CDN for all non-local JavaScript 102 | * Included tests and Travis CI integration. 103 | * Removed conditional HTML classes. 104 | * Updated IE warning and added ie-warning class. 105 | * Added meta_viewport block. 106 | * Updated H5BP CSS to master. 107 | * Updated Normalize.css to v2.1.3. 108 | * Updated Google Analytics snippets to Universal Analytics. 109 | 110 | 0.4.0 111 | ------ 112 | * Updated jQuery Smooth Scroll to v1.4.12. 113 | * Updated h5bp.css to v4.3.0. 114 | * Updated Normalize.css to v1.1.3. 115 | * Removed Chrome Frame value from meta content attribute. 116 | * Added initial CDNJS load for jQuery Dynamic Formset, jQuery ScrollTo and jQuery Smooth Scroll. 117 | * Added Font Awesome (3.2.1). 118 | * Added djfront_fontawesome template tag. 119 | * Added djfront_fontawesome_ie template tag. 120 | * Fixed jQuery UI initial load. 121 | 122 | 0.3.1 123 | ------ 124 | * Fixed URL to TWBS Glyphicons in bootstrap.min.css 125 | 126 | 0.3.0 127 | ------ 128 | * Updated Twitter Bootstrap to v3.0.0 129 | * Added djfrontend_twbs_theme_css template tag 130 | * Added bootstrap-theme.css and bootstrap-theme.min.css 131 | * Added djfrontend_jquery_scrollto template tag 132 | * Added jquery.scrollTo.js and jquery.scrollTo.min.js 133 | * Removed djfrontend_twbs_glyphicons template tag 134 | * Removed bootstrap-glyphicons.css 135 | 136 | 0.2.1 137 | ------ 138 | * Updated Twitter Bootstrap to v3.0.0 RC2 139 | 140 | 0.2.0 141 | ------ 142 | * Updated jQuery to v1.10.2 and v2.0.3 143 | * Updated Twitter Bootstrap to v3.0.0 RC1 144 | * Added djfrontend_twbs_glyphicons template tag 145 | * Added cdnjs initial loading for Modernizr and jQuery DataTables 146 | * Removed djfrontend_twbs_responsive_css template tag 147 | * Removed bootstrap-typeahead.js 148 | 149 | 0.1.0 150 | ------ 151 | * Initial release 152 | -------------------------------------------------------------------------------- /docs/build/html/_sources/changelog.txt: -------------------------------------------------------------------------------- 1 | Changelog 2 | ============== 3 | 4 | 1.8.0 5 | ------ 6 | * Templatetag updated for Django 1.9 - thanks `avm `_/ 7 | * Updated normalize.css to v4.2.0. 8 | * Updated jQuery to v1.12.4 and v2.2.4. 9 | * Added jQuery v3.1.0. 10 | * Updated jQuery DataTables to v1.10.12. 11 | * Updated jQuery Dynamic Formset to v1.2.2. 12 | * Updated jQuery ScrollTo to v2.1.2. 13 | * Updated Twitter Bootstrap to v3.3.7. 14 | * Updated jQuery Smooth Scroll to v1.7.2. 15 | * Updated Font Awesome to v4.6.3. 16 | * Updated HTML5 Boilerplate CSS to v5.3.0. 17 | 18 | 1.7.0 19 | ------ 20 | * Updated HTML5 Boilerplate CSS to v5.2.0. 21 | * Removed iOS-Orientationchange-Fix. 22 | * Updated Twitter Bootstrap to v3.3.5. 23 | * Updated jQuery ScrollTo to v2.1.1. 24 | * Updated jQuery DataTables to v1.10.7. 25 | * Updated jQuery to v1.11.3 and v2.1.4. 26 | * Updated normalize.css to v3.0.3 27 | 28 | 1.6.1 29 | ------ 30 | * Updated classifiers to include Python 3 - thanks `dstegelman `_. 31 | 32 | 1.6.0 33 | ------ 34 | * Updated HTML5 Boilerplate CSS to v5.0.0. 35 | * Lower-case doctype per H5BP v5.0.0. 36 | * Updated normalize.css to v3.0.2. 37 | * Updated Font Awesome to v4.3.0. 38 | * Updated jQuery to v1.11.2 and v2.1.3. 39 | * Updated jQuery UI to v1.11.4. 40 | * Updated jQuery DataTables to v1.10.5. 41 | * Updated jQuery ScrollTo to v2.1.0. 42 | * Updated jQuery Smooth Scroll to v1.5.5. 43 | * Updated Twitter Bootstrap to v3.3.4. 44 | * Updated tests to latest 10 stable Django releases. 45 | 46 | 1.5.0 47 | ------ 48 | * Updated jQuery UI to v1.11.1. 49 | * Updated jquery.dataTables to v1.10.2. 50 | * Updated jquery.scrollTo to v1.4.13. 51 | * Updated jquery.smooth-scroll to v.1.5.0. 52 | * Updated Font Awesome to v4.2.0. 53 | 54 | 1.4.0 55 | ------ 56 | * Updated Modernizr to v2.8.3. 57 | * Updated jquery.dataTables to v1.10.1. 58 | * Added jquery.dataTables minified CSS. 59 | * Added djfrontend_jquery_datatables_themeroller template tag. 60 | 61 | 1.3.0 62 | ------ 63 | * Updated jQuery UI to v1.11.0 64 | * Updated TWBS to v3.2.0 65 | 66 | 1.2.0 67 | ------ 68 | * Fixed jquery.dataTables CSS loading as a script. 69 | * Fixed URL to TWBS Glyphicons. 70 | * Added TWBS CSS maps. 71 | * Updated Modernizr to v2.8.2 72 | * Updated Normalize.css to v3.0.1 73 | * Updated jQuery to v1.11.1 and 2.1.1 74 | * Added jQuery map. 75 | * Updated jquery.dataTables to v1.10.0 76 | * Updated jquery.scrollTo to v1.4.12 77 | * Updated FontAwesome to v4.1.0 78 | 79 | 80 | 1.1.0 81 | ------ 82 | * Updated Twitter Bootstrap to v3.1.1 83 | * Updated Normalize.css to v3.0.0 84 | * Updated jquery.scrollTo to v1.4.11 85 | 86 | 1.0.0 87 | ------ 88 | * Removed famfamfam Silk Icons. 89 | * Updated Fontawesome to v4.0.3. 90 | * Removed Fontawesome's IE7 CSS. 91 | * Removed djfrontend_fontawesome_ie template tag. 92 | * Updated Twitter Bootstrap to v3.0.3. 93 | * Updated Modernizr to v2.7.1. 94 | * Updated jQuery.ScrollTo to v1.4.9. 95 | * Updated jQuery.smooth-scroll to v1.4.13. 96 | * Updated jQuery to v1.11.0. 97 | * Updated jQuery to v2.1.0. 98 | * Updated jQuery UI v1.10.3 to v1.10.4. 99 | * Changed template arguments to optional arguments. 100 | * Allow settings to override defaults. 101 | * Load CDN for all non-local JavaScript 102 | * Included tests and Travis CI integration. 103 | * Removed conditional HTML classes. 104 | * Updated IE warning and added ie-warning class. 105 | * Added meta_viewport block. 106 | * Updated H5BP CSS to master. 107 | * Updated Normalize.css to v2.1.3. 108 | * Updated Google Analytics snippets to Universal Analytics. 109 | 110 | 0.4.0 111 | ------ 112 | * Updated jQuery Smooth Scroll to v1.4.12. 113 | * Updated h5bp.css to v4.3.0. 114 | * Updated Normalize.css to v1.1.3. 115 | * Removed Chrome Frame value from meta content attribute. 116 | * Added initial CDNJS load for jQuery Dynamic Formset, jQuery ScrollTo and jQuery Smooth Scroll. 117 | * Added Font Awesome (3.2.1). 118 | * Added djfront_fontawesome template tag. 119 | * Added djfront_fontawesome_ie template tag. 120 | * Fixed jQuery UI initial load. 121 | 122 | 0.3.1 123 | ------ 124 | * Fixed URL to TWBS Glyphicons in bootstrap.min.css 125 | 126 | 0.3.0 127 | ------ 128 | * Updated Twitter Bootstrap to v3.0.0 129 | * Added djfrontend_twbs_theme_css template tag 130 | * Added bootstrap-theme.css and bootstrap-theme.min.css 131 | * Added djfrontend_jquery_scrollto template tag 132 | * Added jquery.scrollTo.js and jquery.scrollTo.min.js 133 | * Removed djfrontend_twbs_glyphicons template tag 134 | * Removed bootstrap-glyphicons.css 135 | 136 | 0.2.1 137 | ------ 138 | * Updated Twitter Bootstrap to v3.0.0 RC2 139 | 140 | 0.2.0 141 | ------ 142 | * Updated jQuery to v1.10.2 and v2.0.3 143 | * Updated Twitter Bootstrap to v3.0.0 RC1 144 | * Added djfrontend_twbs_glyphicons template tag 145 | * Added cdnjs initial loading for Modernizr and jQuery DataTables 146 | * Removed djfrontend_twbs_responsive_css template tag 147 | * Removed bootstrap-typeahead.js 148 | 149 | 0.1.0 150 | ------ 151 | * Initial release 152 | -------------------------------------------------------------------------------- /docs/build/html/_static/default.css: -------------------------------------------------------------------------------- 1 | /* 2 | * default.css_t 3 | * ~~~~~~~~~~~~~ 4 | * 5 | * Sphinx stylesheet -- default theme. 6 | * 7 | * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | @import url("basic.css"); 13 | 14 | /* -- page layout ----------------------------------------------------------- */ 15 | 16 | body { 17 | font-family: sans-serif; 18 | font-size: 100%; 19 | background-color: #11303d; 20 | color: #000; 21 | margin: 0; 22 | padding: 0; 23 | } 24 | 25 | div.document { 26 | background-color: #1c4e63; 27 | } 28 | 29 | div.documentwrapper { 30 | float: left; 31 | width: 100%; 32 | } 33 | 34 | div.bodywrapper { 35 | margin: 0 0 0 230px; 36 | } 37 | 38 | div.body { 39 | background-color: #ffffff; 40 | color: #000000; 41 | padding: 0 20px 30px 20px; 42 | } 43 | 44 | div.footer { 45 | color: #ffffff; 46 | width: 100%; 47 | padding: 9px 0 9px 0; 48 | text-align: center; 49 | font-size: 75%; 50 | } 51 | 52 | div.footer a { 53 | color: #ffffff; 54 | text-decoration: underline; 55 | } 56 | 57 | div.related { 58 | background-color: #133f52; 59 | line-height: 30px; 60 | color: #ffffff; 61 | } 62 | 63 | div.related a { 64 | color: #ffffff; 65 | } 66 | 67 | div.sphinxsidebar { 68 | } 69 | 70 | div.sphinxsidebar h3 { 71 | font-family: 'Trebuchet MS', sans-serif; 72 | color: #ffffff; 73 | font-size: 1.4em; 74 | font-weight: normal; 75 | margin: 0; 76 | padding: 0; 77 | } 78 | 79 | div.sphinxsidebar h3 a { 80 | color: #ffffff; 81 | } 82 | 83 | div.sphinxsidebar h4 { 84 | font-family: 'Trebuchet MS', sans-serif; 85 | color: #ffffff; 86 | font-size: 1.3em; 87 | font-weight: normal; 88 | margin: 5px 0 0 0; 89 | padding: 0; 90 | } 91 | 92 | div.sphinxsidebar p { 93 | color: #ffffff; 94 | } 95 | 96 | div.sphinxsidebar p.topless { 97 | margin: 5px 10px 10px 10px; 98 | } 99 | 100 | div.sphinxsidebar ul { 101 | margin: 10px; 102 | padding: 0; 103 | color: #ffffff; 104 | } 105 | 106 | div.sphinxsidebar a { 107 | color: #98dbcc; 108 | } 109 | 110 | div.sphinxsidebar input { 111 | border: 1px solid #98dbcc; 112 | font-family: sans-serif; 113 | font-size: 1em; 114 | } 115 | 116 | 117 | 118 | /* -- hyperlink styles ------------------------------------------------------ */ 119 | 120 | a { 121 | color: #355f7c; 122 | text-decoration: none; 123 | } 124 | 125 | a:visited { 126 | color: #355f7c; 127 | text-decoration: none; 128 | } 129 | 130 | a:hover { 131 | text-decoration: underline; 132 | } 133 | 134 | 135 | 136 | /* -- body styles ----------------------------------------------------------- */ 137 | 138 | div.body h1, 139 | div.body h2, 140 | div.body h3, 141 | div.body h4, 142 | div.body h5, 143 | div.body h6 { 144 | font-family: 'Trebuchet MS', sans-serif; 145 | background-color: #f2f2f2; 146 | font-weight: normal; 147 | color: #20435c; 148 | border-bottom: 1px solid #ccc; 149 | margin: 20px -20px 10px -20px; 150 | padding: 3px 0 3px 10px; 151 | } 152 | 153 | div.body h1 { margin-top: 0; font-size: 200%; } 154 | div.body h2 { font-size: 160%; } 155 | div.body h3 { font-size: 140%; } 156 | div.body h4 { font-size: 120%; } 157 | div.body h5 { font-size: 110%; } 158 | div.body h6 { font-size: 100%; } 159 | 160 | a.headerlink { 161 | color: #c60f0f; 162 | font-size: 0.8em; 163 | padding: 0 4px 0 4px; 164 | text-decoration: none; 165 | } 166 | 167 | a.headerlink:hover { 168 | background-color: #c60f0f; 169 | color: white; 170 | } 171 | 172 | div.body p, div.body dd, div.body li { 173 | text-align: justify; 174 | line-height: 130%; 175 | } 176 | 177 | div.admonition p.admonition-title + p { 178 | display: inline; 179 | } 180 | 181 | div.admonition p { 182 | margin-bottom: 5px; 183 | } 184 | 185 | div.admonition pre { 186 | margin-bottom: 5px; 187 | } 188 | 189 | div.admonition ul, div.admonition ol { 190 | margin-bottom: 5px; 191 | } 192 | 193 | div.note { 194 | background-color: #eee; 195 | border: 1px solid #ccc; 196 | } 197 | 198 | div.seealso { 199 | background-color: #ffc; 200 | border: 1px solid #ff6; 201 | } 202 | 203 | div.topic { 204 | background-color: #eee; 205 | } 206 | 207 | div.warning { 208 | background-color: #ffe4e4; 209 | border: 1px solid #f66; 210 | } 211 | 212 | p.admonition-title { 213 | display: inline; 214 | } 215 | 216 | p.admonition-title:after { 217 | content: ":"; 218 | } 219 | 220 | pre { 221 | padding: 5px; 222 | background-color: #eeffcc; 223 | color: #333333; 224 | line-height: 120%; 225 | border: 1px solid #ac9; 226 | border-left: none; 227 | border-right: none; 228 | } 229 | 230 | tt { 231 | background-color: #ecf0f3; 232 | padding: 0 1px 0 1px; 233 | font-size: 0.95em; 234 | } 235 | 236 | th { 237 | background-color: #ede; 238 | } 239 | 240 | .warning tt { 241 | background: #efc2c2; 242 | } 243 | 244 | .note tt { 245 | background: #d6d6d6; 246 | } 247 | 248 | .viewcode-back { 249 | font-family: sans-serif; 250 | } 251 | 252 | div.viewcode-block:target { 253 | background-color: #f4debf; 254 | border-top: 1px solid #ac9; 255 | border-bottom: 1px solid #ac9; 256 | } -------------------------------------------------------------------------------- /docs/build/html/_static/sidebar.js: -------------------------------------------------------------------------------- 1 | /* 2 | * sidebar.js 3 | * ~~~~~~~~~~ 4 | * 5 | * This script makes the Sphinx sidebar collapsible. 6 | * 7 | * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds 8 | * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton 9 | * used to collapse and expand the sidebar. 10 | * 11 | * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden 12 | * and the width of the sidebar and the margin-left of the document 13 | * are decreased. When the sidebar is expanded the opposite happens. 14 | * This script saves a per-browser/per-session cookie used to 15 | * remember the position of the sidebar among the pages. 16 | * Once the browser is closed the cookie is deleted and the position 17 | * reset to the default (expanded). 18 | * 19 | * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. 20 | * :license: BSD, see LICENSE for details. 21 | * 22 | */ 23 | 24 | $(function() { 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | // global elements used by the functions. 34 | // the 'sidebarbutton' element is defined as global after its 35 | // creation, in the add_sidebar_button function 36 | var bodywrapper = $('.bodywrapper'); 37 | var sidebar = $('.sphinxsidebar'); 38 | var sidebarwrapper = $('.sphinxsidebarwrapper'); 39 | 40 | // for some reason, the document has no sidebar; do not run into errors 41 | if (!sidebar.length) return; 42 | 43 | // original margin-left of the bodywrapper and width of the sidebar 44 | // with the sidebar expanded 45 | var bw_margin_expanded = bodywrapper.css('margin-left'); 46 | var ssb_width_expanded = sidebar.width(); 47 | 48 | // margin-left of the bodywrapper and width of the sidebar 49 | // with the sidebar collapsed 50 | var bw_margin_collapsed = '.8em'; 51 | var ssb_width_collapsed = '.8em'; 52 | 53 | // colors used by the current theme 54 | var dark_color = $('.related').css('background-color'); 55 | var light_color = $('.document').css('background-color'); 56 | 57 | function sidebar_is_collapsed() { 58 | return sidebarwrapper.is(':not(:visible)'); 59 | } 60 | 61 | function toggle_sidebar() { 62 | if (sidebar_is_collapsed()) 63 | expand_sidebar(); 64 | else 65 | collapse_sidebar(); 66 | } 67 | 68 | function collapse_sidebar() { 69 | sidebarwrapper.hide(); 70 | sidebar.css('width', ssb_width_collapsed); 71 | bodywrapper.css('margin-left', bw_margin_collapsed); 72 | sidebarbutton.css({ 73 | 'margin-left': '0', 74 | 'height': bodywrapper.height() 75 | }); 76 | sidebarbutton.find('span').text('»'); 77 | sidebarbutton.attr('title', _('Expand sidebar')); 78 | document.cookie = 'sidebar=collapsed'; 79 | } 80 | 81 | function expand_sidebar() { 82 | bodywrapper.css('margin-left', bw_margin_expanded); 83 | sidebar.css('width', ssb_width_expanded); 84 | sidebarwrapper.show(); 85 | sidebarbutton.css({ 86 | 'margin-left': ssb_width_expanded-12, 87 | 'height': bodywrapper.height() 88 | }); 89 | sidebarbutton.find('span').text('«'); 90 | sidebarbutton.attr('title', _('Collapse sidebar')); 91 | document.cookie = 'sidebar=expanded'; 92 | } 93 | 94 | function add_sidebar_button() { 95 | sidebarwrapper.css({ 96 | 'float': 'left', 97 | 'margin-right': '0', 98 | 'width': ssb_width_expanded - 28 99 | }); 100 | // create the button 101 | sidebar.append( 102 | '
    «
    ' 103 | ); 104 | var sidebarbutton = $('#sidebarbutton'); 105 | light_color = sidebarbutton.css('background-color'); 106 | // find the height of the viewport to center the '<<' in the page 107 | var viewport_height; 108 | if (window.innerHeight) 109 | viewport_height = window.innerHeight; 110 | else 111 | viewport_height = $(window).height(); 112 | sidebarbutton.find('span').css({ 113 | 'display': 'block', 114 | 'margin-top': (viewport_height - sidebar.position().top - 20) / 2 115 | }); 116 | 117 | sidebarbutton.click(toggle_sidebar); 118 | sidebarbutton.attr('title', _('Collapse sidebar')); 119 | sidebarbutton.css({ 120 | 'color': '#FFFFFF', 121 | 'border-left': '1px solid ' + dark_color, 122 | 'font-size': '1.2em', 123 | 'cursor': 'pointer', 124 | 'height': bodywrapper.height(), 125 | 'padding-top': '1px', 126 | 'margin-left': ssb_width_expanded - 12 127 | }); 128 | 129 | sidebarbutton.hover( 130 | function () { 131 | $(this).css('background-color', dark_color); 132 | }, 133 | function () { 134 | $(this).css('background-color', light_color); 135 | } 136 | ); 137 | } 138 | 139 | function set_position_from_cookie() { 140 | if (!document.cookie) 141 | return; 142 | var items = document.cookie.split(';'); 143 | for(var k=0; k 0) index-- // up 120 | if (e.which == 40 && index < $items.length - 1) index++ // down 121 | if (!~index) index = 0 122 | 123 | $items.eq(index).trigger('focus') 124 | } 125 | 126 | 127 | // DROPDOWN PLUGIN DEFINITION 128 | // ========================== 129 | 130 | function Plugin(option) { 131 | return this.each(function () { 132 | var $this = $(this) 133 | var data = $this.data('bs.dropdown') 134 | 135 | if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) 136 | if (typeof option == 'string') data[option].call($this) 137 | }) 138 | } 139 | 140 | var old = $.fn.dropdown 141 | 142 | $.fn.dropdown = Plugin 143 | $.fn.dropdown.Constructor = Dropdown 144 | 145 | 146 | // DROPDOWN NO CONFLICT 147 | // ==================== 148 | 149 | $.fn.dropdown.noConflict = function () { 150 | $.fn.dropdown = old 151 | return this 152 | } 153 | 154 | 155 | // APPLY TO STANDARD DROPDOWN ELEMENTS 156 | // =================================== 157 | 158 | $(document) 159 | .on('click.bs.dropdown.data-api', clearMenus) 160 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) 161 | .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) 162 | .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) 163 | .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) 164 | 165 | }(jQuery); 166 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/scrollspy.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: scrollspy.js v3.3.7 3 | * http://getbootstrap.com/javascript/#scrollspy 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // SCROLLSPY CLASS DEFINITION 14 | // ========================== 15 | 16 | function ScrollSpy(element, options) { 17 | this.$body = $(document.body) 18 | this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) 19 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options) 20 | this.selector = (this.options.target || '') + ' .nav li > a' 21 | this.offsets = [] 22 | this.targets = [] 23 | this.activeTarget = null 24 | this.scrollHeight = 0 25 | 26 | this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) 27 | this.refresh() 28 | this.process() 29 | } 30 | 31 | ScrollSpy.VERSION = '3.3.7' 32 | 33 | ScrollSpy.DEFAULTS = { 34 | offset: 10 35 | } 36 | 37 | ScrollSpy.prototype.getScrollHeight = function () { 38 | return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) 39 | } 40 | 41 | ScrollSpy.prototype.refresh = function () { 42 | var that = this 43 | var offsetMethod = 'offset' 44 | var offsetBase = 0 45 | 46 | this.offsets = [] 47 | this.targets = [] 48 | this.scrollHeight = this.getScrollHeight() 49 | 50 | if (!$.isWindow(this.$scrollElement[0])) { 51 | offsetMethod = 'position' 52 | offsetBase = this.$scrollElement.scrollTop() 53 | } 54 | 55 | this.$body 56 | .find(this.selector) 57 | .map(function () { 58 | var $el = $(this) 59 | var href = $el.data('target') || $el.attr('href') 60 | var $href = /^#./.test(href) && $(href) 61 | 62 | return ($href 63 | && $href.length 64 | && $href.is(':visible') 65 | && [[$href[offsetMethod]().top + offsetBase, href]]) || null 66 | }) 67 | .sort(function (a, b) { return a[0] - b[0] }) 68 | .each(function () { 69 | that.offsets.push(this[0]) 70 | that.targets.push(this[1]) 71 | }) 72 | } 73 | 74 | ScrollSpy.prototype.process = function () { 75 | var scrollTop = this.$scrollElement.scrollTop() + this.options.offset 76 | var scrollHeight = this.getScrollHeight() 77 | var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() 78 | var offsets = this.offsets 79 | var targets = this.targets 80 | var activeTarget = this.activeTarget 81 | var i 82 | 83 | if (this.scrollHeight != scrollHeight) { 84 | this.refresh() 85 | } 86 | 87 | if (scrollTop >= maxScroll) { 88 | return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) 89 | } 90 | 91 | if (activeTarget && scrollTop < offsets[0]) { 92 | this.activeTarget = null 93 | return this.clear() 94 | } 95 | 96 | for (i = offsets.length; i--;) { 97 | activeTarget != targets[i] 98 | && scrollTop >= offsets[i] 99 | && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) 100 | && this.activate(targets[i]) 101 | } 102 | } 103 | 104 | ScrollSpy.prototype.activate = function (target) { 105 | this.activeTarget = target 106 | 107 | this.clear() 108 | 109 | var selector = this.selector + 110 | '[data-target="' + target + '"],' + 111 | this.selector + '[href="' + target + '"]' 112 | 113 | var active = $(selector) 114 | .parents('li') 115 | .addClass('active') 116 | 117 | if (active.parent('.dropdown-menu').length) { 118 | active = active 119 | .closest('li.dropdown') 120 | .addClass('active') 121 | } 122 | 123 | active.trigger('activate.bs.scrollspy') 124 | } 125 | 126 | ScrollSpy.prototype.clear = function () { 127 | $(this.selector) 128 | .parentsUntil(this.options.target, '.active') 129 | .removeClass('active') 130 | } 131 | 132 | 133 | // SCROLLSPY PLUGIN DEFINITION 134 | // =========================== 135 | 136 | function Plugin(option) { 137 | return this.each(function () { 138 | var $this = $(this) 139 | var data = $this.data('bs.scrollspy') 140 | var options = typeof option == 'object' && option 141 | 142 | if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) 143 | if (typeof option == 'string') data[option]() 144 | }) 145 | } 146 | 147 | var old = $.fn.scrollspy 148 | 149 | $.fn.scrollspy = Plugin 150 | $.fn.scrollspy.Constructor = ScrollSpy 151 | 152 | 153 | // SCROLLSPY NO CONFLICT 154 | // ===================== 155 | 156 | $.fn.scrollspy.noConflict = function () { 157 | $.fn.scrollspy = old 158 | return this 159 | } 160 | 161 | 162 | // SCROLLSPY DATA-API 163 | // ================== 164 | 165 | $(window).on('load.bs.scrollspy.data-api', function () { 166 | $('[data-spy="scroll"]').each(function () { 167 | var $spy = $(this) 168 | Plugin.call($spy, $spy.data()) 169 | }) 170 | }) 171 | 172 | }(jQuery); 173 | -------------------------------------------------------------------------------- /docs/build/html/license.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | License — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 46 | 47 |
    48 |
    49 |
    50 |
    51 | 52 |
    53 |

    License

    54 |

    MIT License

    55 |
    56 |

    Component Specific Licenses

    57 |
      58 |
    • HTML5 Boilerplate: MIT License
    • 59 |
    • Modernizr: MIT License
    • 60 |
    • normalize.css: MIT License
    • 61 |
    • jQuery: MIT License
    • 62 |
    • jQuery UI: MIT License
    • 63 |
    • jQuery DataTables: Dual GPL v2.0 and BSD License
    • 64 |
    • jQuery Dynamic Formset: BSD New License
    • 65 |
    • jQuery ScrollTo: Dual MIT and GPL License
    • 66 |
    • jQuery Smooth Scroll: MIT License
    • 67 |
    • Twitter Bootstrap: Apache License, Version 2.0
    • 68 |
    • iOS-Orientationchange-Fix: MIT/GPL v2.0 License
    • 69 |
    • Font Awesome: SIL OFL 1.1, MIT License
    • 70 |
    71 |
    72 |
    73 | 74 | 75 |
    76 |
    77 |
    78 |
    79 |
    80 |

    Table Of Contents

    81 | 87 | 88 |

    Previous topic

    89 |

    Optional Settings

    91 |

    Next topic

    92 |

    Changelog

    94 |

    This Page

    95 | 99 | 111 | 112 |
    113 |
    114 |
    115 |
    116 | 131 | 135 | 136 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/affix.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: affix.js v3.3.7 3 | * http://getbootstrap.com/javascript/#affix 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // AFFIX CLASS DEFINITION 14 | // ====================== 15 | 16 | var Affix = function (element, options) { 17 | this.options = $.extend({}, Affix.DEFAULTS, options) 18 | 19 | this.$target = $(this.options.target) 20 | .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) 21 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) 22 | 23 | this.$element = $(element) 24 | this.affixed = null 25 | this.unpin = null 26 | this.pinnedOffset = null 27 | 28 | this.checkPosition() 29 | } 30 | 31 | Affix.VERSION = '3.3.7' 32 | 33 | Affix.RESET = 'affix affix-top affix-bottom' 34 | 35 | Affix.DEFAULTS = { 36 | offset: 0, 37 | target: window 38 | } 39 | 40 | Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { 41 | var scrollTop = this.$target.scrollTop() 42 | var position = this.$element.offset() 43 | var targetHeight = this.$target.height() 44 | 45 | if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false 46 | 47 | if (this.affixed == 'bottom') { 48 | if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' 49 | return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' 50 | } 51 | 52 | var initializing = this.affixed == null 53 | var colliderTop = initializing ? scrollTop : position.top 54 | var colliderHeight = initializing ? targetHeight : height 55 | 56 | if (offsetTop != null && scrollTop <= offsetTop) return 'top' 57 | if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' 58 | 59 | return false 60 | } 61 | 62 | Affix.prototype.getPinnedOffset = function () { 63 | if (this.pinnedOffset) return this.pinnedOffset 64 | this.$element.removeClass(Affix.RESET).addClass('affix') 65 | var scrollTop = this.$target.scrollTop() 66 | var position = this.$element.offset() 67 | return (this.pinnedOffset = position.top - scrollTop) 68 | } 69 | 70 | Affix.prototype.checkPositionWithEventLoop = function () { 71 | setTimeout($.proxy(this.checkPosition, this), 1) 72 | } 73 | 74 | Affix.prototype.checkPosition = function () { 75 | if (!this.$element.is(':visible')) return 76 | 77 | var height = this.$element.height() 78 | var offset = this.options.offset 79 | var offsetTop = offset.top 80 | var offsetBottom = offset.bottom 81 | var scrollHeight = Math.max($(document).height(), $(document.body).height()) 82 | 83 | if (typeof offset != 'object') offsetBottom = offsetTop = offset 84 | if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) 85 | if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) 86 | 87 | var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) 88 | 89 | if (this.affixed != affix) { 90 | if (this.unpin != null) this.$element.css('top', '') 91 | 92 | var affixType = 'affix' + (affix ? '-' + affix : '') 93 | var e = $.Event(affixType + '.bs.affix') 94 | 95 | this.$element.trigger(e) 96 | 97 | if (e.isDefaultPrevented()) return 98 | 99 | this.affixed = affix 100 | this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null 101 | 102 | this.$element 103 | .removeClass(Affix.RESET) 104 | .addClass(affixType) 105 | .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') 106 | } 107 | 108 | if (affix == 'bottom') { 109 | this.$element.offset({ 110 | top: scrollHeight - height - offsetBottom 111 | }) 112 | } 113 | } 114 | 115 | 116 | // AFFIX PLUGIN DEFINITION 117 | // ======================= 118 | 119 | function Plugin(option) { 120 | return this.each(function () { 121 | var $this = $(this) 122 | var data = $this.data('bs.affix') 123 | var options = typeof option == 'object' && option 124 | 125 | if (!data) $this.data('bs.affix', (data = new Affix(this, options))) 126 | if (typeof option == 'string') data[option]() 127 | }) 128 | } 129 | 130 | var old = $.fn.affix 131 | 132 | $.fn.affix = Plugin 133 | $.fn.affix.Constructor = Affix 134 | 135 | 136 | // AFFIX NO CONFLICT 137 | // ================= 138 | 139 | $.fn.affix.noConflict = function () { 140 | $.fn.affix = old 141 | return this 142 | } 143 | 144 | 145 | // AFFIX DATA-API 146 | // ============== 147 | 148 | $(window).on('load', function () { 149 | $('[data-spy="affix"]').each(function () { 150 | var $spy = $(this) 151 | var data = $spy.data() 152 | 153 | data.offset = data.offset || {} 154 | 155 | if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom 156 | if (data.offsetTop != null) data.offset.top = data.offsetTop 157 | 158 | Plugin.call($spy, data) 159 | }) 160 | }) 161 | 162 | }(jQuery); 163 | -------------------------------------------------------------------------------- /docs/build/html/getting_started.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Getting Started — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 46 | 47 |
    48 |
    49 |
    50 |
    51 | 52 |
    53 |

    Getting Started

    54 |
    55 |

    Install

    56 |
      57 |
    1. install django-frontend (pip install, add to your requirements files, etc.)
    2. 58 |
    3. add ‘djfrontend’ to your INSTALLED_APPS
    4. 59 |
    5. make sure ‘django.contrib.staticfiles’ is also in your INSTALLED_APPS
    6. 60 |
    61 |
    62 |
    63 |

    Extend

    64 |

    Extend djfrontend’s base template in your template(s)

    65 |
    {% extends 'djfrontend/base.html' %}
    66 |
    67 |
    68 |
    69 |

    Load

    70 |

    Load all the djfrontend tags if you want to add or change the template’s defaults.

    71 |
    {% load djfrontend %}
    72 |
    73 |
    74 |
    75 | 76 | 77 |
    78 |
    79 |
    80 |
    81 |
    82 |

    Table Of Contents

    83 | 91 | 92 |

    Previous topic

    93 |

    Django Frontend

    95 |

    Next topic

    96 |

    Granularity

    98 |

    This Page

    99 | 103 | 115 | 116 |
    117 |
    118 |
    119 |
    120 | 135 | 139 | 140 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/jquery/jquery.scrollTo/2.1.2/jquery.scrollTo.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery.scrollTo 3 | * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com 4 | * Licensed under MIT 5 | * http://flesler.blogspot.com/2007/10/jqueryscrollto.html 6 | * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery 7 | * @author Ariel Flesler 8 | * @version 2.1.2 9 | */ 10 | ;(function(factory) { 11 | 'use strict'; 12 | if (typeof define === 'function' && define.amd) { 13 | // AMD 14 | define(['jquery'], factory); 15 | } else if (typeof module !== 'undefined' && module.exports) { 16 | // CommonJS 17 | module.exports = factory(require('jquery')); 18 | } else { 19 | // Global 20 | factory(jQuery); 21 | } 22 | })(function($) { 23 | 'use strict'; 24 | 25 | var $scrollTo = $.scrollTo = function(target, duration, settings) { 26 | return $(window).scrollTo(target, duration, settings); 27 | }; 28 | 29 | $scrollTo.defaults = { 30 | axis:'xy', 31 | duration: 0, 32 | limit:true 33 | }; 34 | 35 | function isWin(elem) { 36 | return !elem.nodeName || 37 | $.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1; 38 | } 39 | 40 | $.fn.scrollTo = function(target, duration, settings) { 41 | if (typeof duration === 'object') { 42 | settings = duration; 43 | duration = 0; 44 | } 45 | if (typeof settings === 'function') { 46 | settings = { onAfter:settings }; 47 | } 48 | if (target === 'max') { 49 | target = 9e9; 50 | } 51 | 52 | settings = $.extend({}, $scrollTo.defaults, settings); 53 | // Speed is still recognized for backwards compatibility 54 | duration = duration || settings.duration; 55 | // Make sure the settings are given right 56 | var queue = settings.queue && settings.axis.length > 1; 57 | if (queue) { 58 | // Let's keep the overall duration 59 | duration /= 2; 60 | } 61 | settings.offset = both(settings.offset); 62 | settings.over = both(settings.over); 63 | 64 | return this.each(function() { 65 | // Null target yields nothing, just like jQuery does 66 | if (target === null) return; 67 | 68 | var win = isWin(this), 69 | elem = win ? this.contentWindow || window : this, 70 | $elem = $(elem), 71 | targ = target, 72 | attr = {}, 73 | toff; 74 | 75 | switch (typeof targ) { 76 | // A number will pass the regex 77 | case 'number': 78 | case 'string': 79 | if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) { 80 | targ = both(targ); 81 | // We are done 82 | break; 83 | } 84 | // Relative/Absolute selector 85 | targ = win ? $(targ) : $(targ, elem); 86 | /* falls through */ 87 | case 'object': 88 | if (targ.length === 0) return; 89 | // DOMElement / jQuery 90 | if (targ.is || targ.style) { 91 | // Get the real position of the target 92 | toff = (targ = $(targ)).offset(); 93 | } 94 | } 95 | 96 | var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset; 97 | 98 | $.each(settings.axis.split(''), function(i, axis) { 99 | var Pos = axis === 'x' ? 'Left' : 'Top', 100 | pos = Pos.toLowerCase(), 101 | key = 'scroll' + Pos, 102 | prev = $elem[key](), 103 | max = $scrollTo.max(elem, axis); 104 | 105 | if (toff) {// jQuery / DOMElement 106 | attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]); 107 | 108 | // If it's a dom element, reduce the margin 109 | if (settings.margin) { 110 | attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0; 111 | attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0; 112 | } 113 | 114 | attr[key] += offset[pos] || 0; 115 | 116 | if (settings.over[pos]) { 117 | // Scroll to a fraction of its width/height 118 | attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos]; 119 | } 120 | } else { 121 | var val = targ[pos]; 122 | // Handle percentage values 123 | attr[key] = val.slice && val.slice(-1) === '%' ? 124 | parseFloat(val) / 100 * max 125 | : val; 126 | } 127 | 128 | // Number or 'number' 129 | if (settings.limit && /^\d+$/.test(attr[key])) { 130 | // Check the limits 131 | attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max); 132 | } 133 | 134 | // Don't waste time animating, if there's no need. 135 | if (!i && settings.axis.length > 1) { 136 | if (prev === attr[key]) { 137 | // No animation needed 138 | attr = {}; 139 | } else if (queue) { 140 | // Intermediate animation 141 | animate(settings.onAfterFirst); 142 | // Don't animate this axis again in the next iteration. 143 | attr = {}; 144 | } 145 | } 146 | }); 147 | 148 | animate(settings.onAfter); 149 | 150 | function animate(callback) { 151 | var opts = $.extend({}, settings, { 152 | // The queue setting conflicts with animate() 153 | // Force it to always be true 154 | queue: true, 155 | duration: duration, 156 | complete: callback && function() { 157 | callback.call(elem, targ, settings); 158 | } 159 | }); 160 | $elem.animate(attr, opts); 161 | } 162 | }); 163 | }; 164 | 165 | // Max scrolling position, works on quirks mode 166 | // It only fails (not too badly) on IE, quirks mode. 167 | $scrollTo.max = function(elem, axis) { 168 | var Dim = axis === 'x' ? 'Width' : 'Height', 169 | scroll = 'scroll'+Dim; 170 | 171 | if (!isWin(elem)) 172 | return elem[scroll] - $(elem)[Dim.toLowerCase()](); 173 | 174 | var size = 'client' + Dim, 175 | doc = elem.ownerDocument || elem.document, 176 | html = doc.documentElement, 177 | body = doc.body; 178 | 179 | return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]); 180 | }; 181 | 182 | function both(val) { 183 | return $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val }; 184 | } 185 | 186 | // Add special hooks so that window scroll properties can be animated 187 | $.Tween.propHooks.scrollLeft = 188 | $.Tween.propHooks.scrollTop = { 189 | get: function(t) { 190 | return $(t.elem)[t.prop](); 191 | }, 192 | set: function(t) { 193 | var curr = this.get(t); 194 | // If interrupt is true and user scrolled, stop animating 195 | if (t.options.interrupt && t._last && t._last !== curr) { 196 | return $(t.elem).stop(); 197 | } 198 | var next = Math.round(t.now); 199 | // Don't waste CPU 200 | // Browsers don't render floating point scroll 201 | if (curr !== next) { 202 | $(t.elem)[t.prop](next); 203 | t._last = this.get(t); 204 | } 205 | } 206 | }; 207 | 208 | // AMD requirement 209 | return $scrollTo; 210 | }); 211 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/collapse.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: collapse.js v3.3.7 3 | * http://getbootstrap.com/javascript/#collapse 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | /* jshint latedef: false */ 10 | 11 | +function ($) { 12 | 'use strict'; 13 | 14 | // COLLAPSE PUBLIC CLASS DEFINITION 15 | // ================================ 16 | 17 | var Collapse = function (element, options) { 18 | this.$element = $(element) 19 | this.options = $.extend({}, Collapse.DEFAULTS, options) 20 | this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + 21 | '[data-toggle="collapse"][data-target="#' + element.id + '"]') 22 | this.transitioning = null 23 | 24 | if (this.options.parent) { 25 | this.$parent = this.getParent() 26 | } else { 27 | this.addAriaAndCollapsedClass(this.$element, this.$trigger) 28 | } 29 | 30 | if (this.options.toggle) this.toggle() 31 | } 32 | 33 | Collapse.VERSION = '3.3.7' 34 | 35 | Collapse.TRANSITION_DURATION = 350 36 | 37 | Collapse.DEFAULTS = { 38 | toggle: true 39 | } 40 | 41 | Collapse.prototype.dimension = function () { 42 | var hasWidth = this.$element.hasClass('width') 43 | return hasWidth ? 'width' : 'height' 44 | } 45 | 46 | Collapse.prototype.show = function () { 47 | if (this.transitioning || this.$element.hasClass('in')) return 48 | 49 | var activesData 50 | var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') 51 | 52 | if (actives && actives.length) { 53 | activesData = actives.data('bs.collapse') 54 | if (activesData && activesData.transitioning) return 55 | } 56 | 57 | var startEvent = $.Event('show.bs.collapse') 58 | this.$element.trigger(startEvent) 59 | if (startEvent.isDefaultPrevented()) return 60 | 61 | if (actives && actives.length) { 62 | Plugin.call(actives, 'hide') 63 | activesData || actives.data('bs.collapse', null) 64 | } 65 | 66 | var dimension = this.dimension() 67 | 68 | this.$element 69 | .removeClass('collapse') 70 | .addClass('collapsing')[dimension](0) 71 | .attr('aria-expanded', true) 72 | 73 | this.$trigger 74 | .removeClass('collapsed') 75 | .attr('aria-expanded', true) 76 | 77 | this.transitioning = 1 78 | 79 | var complete = function () { 80 | this.$element 81 | .removeClass('collapsing') 82 | .addClass('collapse in')[dimension]('') 83 | this.transitioning = 0 84 | this.$element 85 | .trigger('shown.bs.collapse') 86 | } 87 | 88 | if (!$.support.transition) return complete.call(this) 89 | 90 | var scrollSize = $.camelCase(['scroll', dimension].join('-')) 91 | 92 | this.$element 93 | .one('bsTransitionEnd', $.proxy(complete, this)) 94 | .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) 95 | } 96 | 97 | Collapse.prototype.hide = function () { 98 | if (this.transitioning || !this.$element.hasClass('in')) return 99 | 100 | var startEvent = $.Event('hide.bs.collapse') 101 | this.$element.trigger(startEvent) 102 | if (startEvent.isDefaultPrevented()) return 103 | 104 | var dimension = this.dimension() 105 | 106 | this.$element[dimension](this.$element[dimension]())[0].offsetHeight 107 | 108 | this.$element 109 | .addClass('collapsing') 110 | .removeClass('collapse in') 111 | .attr('aria-expanded', false) 112 | 113 | this.$trigger 114 | .addClass('collapsed') 115 | .attr('aria-expanded', false) 116 | 117 | this.transitioning = 1 118 | 119 | var complete = function () { 120 | this.transitioning = 0 121 | this.$element 122 | .removeClass('collapsing') 123 | .addClass('collapse') 124 | .trigger('hidden.bs.collapse') 125 | } 126 | 127 | if (!$.support.transition) return complete.call(this) 128 | 129 | this.$element 130 | [dimension](0) 131 | .one('bsTransitionEnd', $.proxy(complete, this)) 132 | .emulateTransitionEnd(Collapse.TRANSITION_DURATION) 133 | } 134 | 135 | Collapse.prototype.toggle = function () { 136 | this[this.$element.hasClass('in') ? 'hide' : 'show']() 137 | } 138 | 139 | Collapse.prototype.getParent = function () { 140 | return $(this.options.parent) 141 | .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') 142 | .each($.proxy(function (i, element) { 143 | var $element = $(element) 144 | this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) 145 | }, this)) 146 | .end() 147 | } 148 | 149 | Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { 150 | var isOpen = $element.hasClass('in') 151 | 152 | $element.attr('aria-expanded', isOpen) 153 | $trigger 154 | .toggleClass('collapsed', !isOpen) 155 | .attr('aria-expanded', isOpen) 156 | } 157 | 158 | function getTargetFromTrigger($trigger) { 159 | var href 160 | var target = $trigger.attr('data-target') 161 | || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 162 | 163 | return $(target) 164 | } 165 | 166 | 167 | // COLLAPSE PLUGIN DEFINITION 168 | // ========================== 169 | 170 | function Plugin(option) { 171 | return this.each(function () { 172 | var $this = $(this) 173 | var data = $this.data('bs.collapse') 174 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) 175 | 176 | if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false 177 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) 178 | if (typeof option == 'string') data[option]() 179 | }) 180 | } 181 | 182 | var old = $.fn.collapse 183 | 184 | $.fn.collapse = Plugin 185 | $.fn.collapse.Constructor = Collapse 186 | 187 | 188 | // COLLAPSE NO CONFLICT 189 | // ==================== 190 | 191 | $.fn.collapse.noConflict = function () { 192 | $.fn.collapse = old 193 | return this 194 | } 195 | 196 | 197 | // COLLAPSE DATA-API 198 | // ================= 199 | 200 | $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { 201 | var $this = $(this) 202 | 203 | if (!$this.attr('data-target')) e.preventDefault() 204 | 205 | var $target = getTargetFromTrigger($this) 206 | var data = $target.data('bs.collapse') 207 | var option = data ? 'toggle' : $this.data() 208 | 209 | Plugin.call($target, option) 210 | }) 211 | 212 | }(jQuery); 213 | -------------------------------------------------------------------------------- /docs/source/granularity.rst: -------------------------------------------------------------------------------- 1 | Granularity 2 | ------------- 3 | 4 | Version 1.0.0 introduced a new level of granularity by including template tags with a default value, which can be overriden in settings, which in turn can be overridden by passing the template tag an argument. This allows you to change default values within settings, while giving a template tag final word. 5 | 6 | If you use an optional value other than the ones listed, you will have to add the files into the same directory structure as djfrontend. 7 | 8 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 9 | |Template tag |Setting |Default Value |Optional Value(s) | 10 | +===================================+=======================================+===============+===================+ 11 | | |DJFRONTEND_STATIC_URL | | | 12 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 13 | |djfrontend_h5bp_html |DJFRONTEND_H5BP_HTML |en |ISO 639-1 codes | 14 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 15 | |djfrontend_h5bp_css |DJFRONTEND_H5BP_CSS |5.3.0 | | 16 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 17 | |djfrontend_normalize |DJFRONTEND_NORMALIZE |4.2.0 | | 18 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 19 | |djfrontend_fontawesome |DJFRONTEND_FONTAWESOME |4.6.3 | | 20 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 21 | |djfrontend_modernizr |DJFRONTEND_MODERNIZR |2.8.3 | | 22 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 23 | |djfrontend_jquery |DJFRONTEND_JQUERY |1.12.4 |2.2.4, 3.1.0 | 24 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 25 | |djfrontend_jqueryui |DJFRONTEND_JQUERYUI |1.11.4 | | 26 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 27 | | |DJFRONTEND_JQUERY_DATATABLES_VERSION | | | 28 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 29 | |djfrontend_jquery_datatables |DJFRONTEND_JQUERY_DATATABLES |1.10.12 | | 30 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 31 | |djfrontend_jquery_datatables_css |DJFRONTEND_JQUERY_DATATABLES_CSS |1.10.12 | | 32 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 33 | |djfrontend_jquery_formset |DJFRONTEND_JQUERY_FORMSET |1.2.2 | | 34 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 35 | |djfrontend_jquery_scrollto |DJFRONTEND_JQUERY_SCROLLTO |2.1.2 | | 36 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 37 | |djfrontend_jquery_smoothscroll |DJFRONTEND_JQUERY_SMOOTHSCROLL |1.7.2 | | 38 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 39 | | |DJFRONTEND_TWBS_VERSION | | | 40 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 41 | |djfrontend_twbs_css |DJFRONTEND_TWBS_CSS |3.3.7 | | 42 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 43 | |djfrontend_twbs_theme_css |DJFRONTEND_TWBS_THEME_CSS |3.3.7 | | 44 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 45 | |djfrontend_twbs_js |DJFRONTEND_TWBS_JS_VERSION |3.3.7 | | 46 | | |DJFRONTEND_TWBS_JS_FILES |all |* affix | 47 | | | | |* alert | 48 | | | | |* button | 49 | | | | |* carousel | 50 | | | | |* collapse | 51 | | | | |* dropdown | 52 | | | | |* modal | 53 | | | | |* popover | 54 | | | | |* scrollspy | 55 | | | | |* tab | 56 | | | | |* tooltip | 57 | | | | |* transition | 58 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 59 | |djfrontend_ga |DJFRONTEND_GA | | | 60 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 61 | | |DJFRONTEND_GA_SETDOMAINNAME | | | 62 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 63 | | |DJFRONTEND_GA_SETALLOWLINKER | | | 64 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 65 | -------------------------------------------------------------------------------- /docs/build/html/_sources/granularity.txt: -------------------------------------------------------------------------------- 1 | Granularity 2 | ------------- 3 | 4 | Version 1.0.0 introduced a new level of granularity by including template tags with a default value, which can be overriden in settings, which in turn can be overridden by passing the template tag an argument. This allows you to change default values within settings, while giving a template tag final word. 5 | 6 | If you use an optional value other than the ones listed, you will have to add the files into the same directory structure as djfrontend. 7 | 8 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 9 | |Template tag |Setting |Default Value |Optional Value(s) | 10 | +===================================+=======================================+===============+===================+ 11 | | |DJFRONTEND_STATIC_URL | | | 12 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 13 | |djfrontend_h5bp_html |DJFRONTEND_H5BP_HTML |en |ISO 639-1 codes | 14 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 15 | |djfrontend_h5bp_css |DJFRONTEND_H5BP_CSS |5.3.0 | | 16 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 17 | |djfrontend_normalize |DJFRONTEND_NORMALIZE |4.2.0 | | 18 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 19 | |djfrontend_fontawesome |DJFRONTEND_FONTAWESOME |4.6.3 | | 20 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 21 | |djfrontend_modernizr |DJFRONTEND_MODERNIZR |2.8.3 | | 22 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 23 | |djfrontend_jquery |DJFRONTEND_JQUERY |1.12.4 |2.2.4, 3.1.0 | 24 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 25 | |djfrontend_jqueryui |DJFRONTEND_JQUERYUI |1.11.4 | | 26 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 27 | | |DJFRONTEND_JQUERY_DATATABLES_VERSION | | | 28 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 29 | |djfrontend_jquery_datatables |DJFRONTEND_JQUERY_DATATABLES |1.10.12 | | 30 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 31 | |djfrontend_jquery_datatables_css |DJFRONTEND_JQUERY_DATATABLES_CSS |1.10.12 | | 32 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 33 | |djfrontend_jquery_formset |DJFRONTEND_JQUERY_FORMSET |1.2.2 | | 34 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 35 | |djfrontend_jquery_scrollto |DJFRONTEND_JQUERY_SCROLLTO |2.1.2 | | 36 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 37 | |djfrontend_jquery_smoothscroll |DJFRONTEND_JQUERY_SMOOTHSCROLL |1.7.2 | | 38 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 39 | | |DJFRONTEND_TWBS_VERSION | | | 40 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 41 | |djfrontend_twbs_css |DJFRONTEND_TWBS_CSS |3.3.7 | | 42 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 43 | |djfrontend_twbs_theme_css |DJFRONTEND_TWBS_THEME_CSS |3.3.7 | | 44 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 45 | |djfrontend_twbs_js |DJFRONTEND_TWBS_JS_VERSION |3.3.7 | | 46 | | |DJFRONTEND_TWBS_JS_FILES |all |* affix | 47 | | | | |* alert | 48 | | | | |* button | 49 | | | | |* carousel | 50 | | | | |* collapse | 51 | | | | |* dropdown | 52 | | | | |* modal | 53 | | | | |* popover | 54 | | | | |* scrollspy | 55 | | | | |* tab | 56 | | | | |* tooltip | 57 | | | | |* transition | 58 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 59 | |djfrontend_ga |DJFRONTEND_GA | | | 60 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 61 | | |DJFRONTEND_GA_SETDOMAINNAME | | | 62 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 63 | | |DJFRONTEND_GA_SETALLOWLINKER | | | 64 | +-----------------------------------+---------------------------------------+---------------+-------------------+ 65 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/css/h5bp/5.3.0/h5bp.css: -------------------------------------------------------------------------------- 1 | /*! HTML5 Boilerplate v5.3.0 | MIT License | https://html5boilerplate.com/ */ 2 | 3 | /* 4 | * What follows is the result of much research on cross-browser styling. 5 | * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, 6 | * Kroc Camen, and the H5BP dev community and team. 7 | */ 8 | 9 | /* ========================================================================== 10 | Base styles: opinionated defaults 11 | ========================================================================== */ 12 | 13 | html { 14 | color: #222; 15 | font-size: 1em; 16 | line-height: 1.4; 17 | } 18 | 19 | /* 20 | * Remove text-shadow in selection highlight: 21 | * https://twitter.com/miketaylr/status/12228805301 22 | * 23 | * These selection rule sets have to be separate. 24 | * Customize the background color to match your design. 25 | */ 26 | 27 | ::-moz-selection { 28 | background: #b3d4fc; 29 | text-shadow: none; 30 | } 31 | 32 | ::selection { 33 | background: #b3d4fc; 34 | text-shadow: none; 35 | } 36 | 37 | /* 38 | * A better looking default horizontal rule 39 | */ 40 | 41 | hr { 42 | display: block; 43 | height: 1px; 44 | border: 0; 45 | border-top: 1px solid #ccc; 46 | margin: 1em 0; 47 | padding: 0; 48 | } 49 | 50 | /* 51 | * Remove the gap between audio, canvas, iframes, 52 | * images, videos and the bottom of their containers: 53 | * https://github.com/h5bp/html5-boilerplate/issues/440 54 | */ 55 | 56 | audio, 57 | canvas, 58 | iframe, 59 | img, 60 | svg, 61 | video { 62 | vertical-align: middle; 63 | } 64 | 65 | /* 66 | * Remove default fieldset styles. 67 | */ 68 | 69 | fieldset { 70 | border: 0; 71 | margin: 0; 72 | padding: 0; 73 | } 74 | 75 | /* 76 | * Allow only vertical resizing of textareas. 77 | */ 78 | 79 | textarea { 80 | resize: vertical; 81 | } 82 | 83 | /* ========================================================================== 84 | Browser Upgrade Prompt 85 | ========================================================================== */ 86 | 87 | .browserupgrade { 88 | margin: 0.2em 0; 89 | background: #ccc; 90 | color: #000; 91 | padding: 0.2em 0; 92 | } 93 | 94 | /* ========================================================================== 95 | Author's custom styles 96 | ========================================================================== */ 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | /* ========================================================================== 115 | Helper classes 116 | ========================================================================== */ 117 | 118 | /* 119 | * Hide visually and from screen readers 120 | */ 121 | 122 | .hidden { 123 | display: none !important; 124 | } 125 | 126 | /* 127 | * Hide only visually, but have it available for screen readers: 128 | * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility 129 | */ 130 | 131 | .visuallyhidden { 132 | border: 0; 133 | clip: rect(0 0 0 0); 134 | height: 1px; 135 | margin: -1px; 136 | overflow: hidden; 137 | padding: 0; 138 | position: absolute; 139 | width: 1px; 140 | } 141 | 142 | /* 143 | * Extends the .visuallyhidden class to allow the element 144 | * to be focusable when navigated to via the keyboard: 145 | * https://www.drupal.org/node/897638 146 | */ 147 | 148 | .visuallyhidden.focusable:active, 149 | .visuallyhidden.focusable:focus { 150 | clip: auto; 151 | height: auto; 152 | margin: 0; 153 | overflow: visible; 154 | position: static; 155 | width: auto; 156 | } 157 | 158 | /* 159 | * Hide visually and from screen readers, but maintain layout 160 | */ 161 | 162 | .invisible { 163 | visibility: hidden; 164 | } 165 | 166 | /* 167 | * Clearfix: contain floats 168 | * 169 | * For modern browsers 170 | * 1. The space content is one way to avoid an Opera bug when the 171 | * `contenteditable` attribute is included anywhere else in the document. 172 | * Otherwise it causes space to appear at the top and bottom of elements 173 | * that receive the `clearfix` class. 174 | * 2. The use of `table` rather than `block` is only necessary if using 175 | * `:before` to contain the top-margins of child elements. 176 | */ 177 | 178 | .clearfix:before, 179 | .clearfix:after { 180 | content: " "; /* 1 */ 181 | display: table; /* 2 */ 182 | } 183 | 184 | .clearfix:after { 185 | clear: both; 186 | } 187 | 188 | /* ========================================================================== 189 | EXAMPLE Media Queries for Responsive Design. 190 | These examples override the primary ('mobile first') styles. 191 | Modify as content requires. 192 | ========================================================================== */ 193 | 194 | @media only screen and (min-width: 35em) { 195 | /* Style adjustments for viewports that meet the condition */ 196 | } 197 | 198 | @media print, 199 | (-webkit-min-device-pixel-ratio: 1.25), 200 | (min-resolution: 1.25dppx), 201 | (min-resolution: 120dpi) { 202 | /* Style adjustments for high resolution devices */ 203 | } 204 | 205 | /* ========================================================================== 206 | Print styles. 207 | Inlined to avoid the additional HTTP request: 208 | http://www.phpied.com/delay-loading-your-print-css/ 209 | ========================================================================== */ 210 | 211 | @media print { 212 | *, 213 | *:before, 214 | *:after, 215 | *:first-letter, 216 | *:first-line { 217 | background: transparent !important; 218 | color: #000 !important; /* Black prints faster: 219 | http://www.sanbeiji.com/archives/953 */ 220 | box-shadow: none !important; 221 | text-shadow: none !important; 222 | } 223 | 224 | a, 225 | a:visited { 226 | text-decoration: underline; 227 | } 228 | 229 | a[href]:after { 230 | content: " (" attr(href) ")"; 231 | } 232 | 233 | abbr[title]:after { 234 | content: " (" attr(title) ")"; 235 | } 236 | 237 | /* 238 | * Don't show links that are fragment identifiers, 239 | * or use the `javascript:` pseudo protocol 240 | */ 241 | 242 | a[href^="#"]:after, 243 | a[href^="javascript:"]:after { 244 | content: ""; 245 | } 246 | 247 | pre, 248 | blockquote { 249 | border: 1px solid #999; 250 | page-break-inside: avoid; 251 | } 252 | 253 | /* 254 | * Printing Tables: 255 | * http://css-discuss.incutio.com/wiki/Printing_Tables 256 | */ 257 | 258 | thead { 259 | display: table-header-group; 260 | } 261 | 262 | tr, 263 | img { 264 | page-break-inside: avoid; 265 | } 266 | 267 | img { 268 | max-width: 100% !important; 269 | } 270 | 271 | p, 272 | h2, 273 | h3 { 274 | orphans: 3; 275 | widows: 3; 276 | } 277 | 278 | h2, 279 | h3 { 280 | page-break-after: avoid; 281 | } 282 | } 283 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Internal variables. 16 | PAPEROPT_a4 = -D latex_paper_size=a4 17 | PAPEROPT_letter = -D latex_paper_size=letter 18 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 19 | # the i18n builder cannot share the environment and doctrees with the others 20 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 21 | 22 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext 23 | 24 | help: 25 | @echo "Please use \`make ' where is one of" 26 | @echo " html to make standalone HTML files" 27 | @echo " dirhtml to make HTML files named index.html in directories" 28 | @echo " singlehtml to make a single large HTML file" 29 | @echo " pickle to make pickle files" 30 | @echo " json to make JSON files" 31 | @echo " htmlhelp to make HTML files and a HTML help project" 32 | @echo " qthelp to make HTML files and a qthelp project" 33 | @echo " devhelp to make HTML files and a Devhelp project" 34 | @echo " epub to make an epub" 35 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 36 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 37 | @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 38 | @echo " text to make text files" 39 | @echo " man to make manual pages" 40 | @echo " texinfo to make Texinfo files" 41 | @echo " info to make Texinfo files and run them through makeinfo" 42 | @echo " gettext to make PO message catalogs" 43 | @echo " changes to make an overview of all changed/added/deprecated items" 44 | @echo " xml to make Docutils-native XML files" 45 | @echo " pseudoxml to make pseudoxml-XML files for display purposes" 46 | @echo " linkcheck to check all external links for integrity" 47 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 48 | 49 | clean: 50 | rm -rf $(BUILDDIR)/* 51 | 52 | html: 53 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 54 | @echo 55 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 56 | 57 | dirhtml: 58 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 59 | @echo 60 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 61 | 62 | singlehtml: 63 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 64 | @echo 65 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 66 | 67 | pickle: 68 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 69 | @echo 70 | @echo "Build finished; now you can process the pickle files." 71 | 72 | json: 73 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 74 | @echo 75 | @echo "Build finished; now you can process the JSON files." 76 | 77 | htmlhelp: 78 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 79 | @echo 80 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 81 | ".hhp project file in $(BUILDDIR)/htmlhelp." 82 | 83 | qthelp: 84 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 85 | @echo 86 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 87 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 88 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-frontend.qhcp" 89 | @echo "To view the help file:" 90 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-frontend.qhc" 91 | 92 | devhelp: 93 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 94 | @echo 95 | @echo "Build finished." 96 | @echo "To view the help file:" 97 | @echo "# mkdir -p $$HOME/.local/share/devhelp/django-frontend" 98 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-frontend" 99 | @echo "# devhelp" 100 | 101 | epub: 102 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 103 | @echo 104 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 105 | 106 | latex: 107 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 108 | @echo 109 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 110 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 111 | "(use \`make latexpdf' here to do that automatically)." 112 | 113 | latexpdf: 114 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 115 | @echo "Running LaTeX files through pdflatex..." 116 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 117 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 118 | 119 | latexpdfja: 120 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 121 | @echo "Running LaTeX files through platex and dvipdfmx..." 122 | $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 123 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 124 | 125 | text: 126 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 127 | @echo 128 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 129 | 130 | man: 131 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 132 | @echo 133 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 134 | 135 | texinfo: 136 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 137 | @echo 138 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 139 | @echo "Run \`make' in that directory to run these through makeinfo" \ 140 | "(use \`make info' here to do that automatically)." 141 | 142 | info: 143 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 144 | @echo "Running Texinfo files through makeinfo..." 145 | make -C $(BUILDDIR)/texinfo info 146 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 147 | 148 | gettext: 149 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 150 | @echo 151 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 152 | 153 | changes: 154 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 155 | @echo 156 | @echo "The overview file is in $(BUILDDIR)/changes." 157 | 158 | linkcheck: 159 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 160 | @echo 161 | @echo "Link check complete; look for any errors in the above output " \ 162 | "or in $(BUILDDIR)/linkcheck/output.txt." 163 | 164 | doctest: 165 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 166 | @echo "Testing of doctests in the sources finished, look at the " \ 167 | "results in $(BUILDDIR)/doctest/output.txt." 168 | 169 | xml: 170 | $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 171 | @echo 172 | @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 173 | 174 | pseudoxml: 175 | $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 176 | @echo 177 | @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 178 | -------------------------------------------------------------------------------- /docs/build/html/_static/doctools.js: -------------------------------------------------------------------------------- 1 | /* 2 | * doctools.js 3 | * ~~~~~~~~~~~ 4 | * 5 | * Sphinx JavaScript utilities for all documentation. 6 | * 7 | * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | /** 13 | * select a different prefix for underscore 14 | */ 15 | $u = _.noConflict(); 16 | 17 | /** 18 | * make the code below compatible with browsers without 19 | * an installed firebug like debugger 20 | if (!window.console || !console.firebug) { 21 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir", 22 | "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", 23 | "profile", "profileEnd"]; 24 | window.console = {}; 25 | for (var i = 0; i < names.length; ++i) 26 | window.console[names[i]] = function() {}; 27 | } 28 | */ 29 | 30 | /** 31 | * small helper function to urldecode strings 32 | */ 33 | jQuery.urldecode = function(x) { 34 | return decodeURIComponent(x).replace(/\+/g, ' '); 35 | }; 36 | 37 | /** 38 | * small helper function to urlencode strings 39 | */ 40 | jQuery.urlencode = encodeURIComponent; 41 | 42 | /** 43 | * This function returns the parsed url parameters of the 44 | * current request. Multiple values per key are supported, 45 | * it will always return arrays of strings for the value parts. 46 | */ 47 | jQuery.getQueryParameters = function(s) { 48 | if (typeof s == 'undefined') 49 | s = document.location.search; 50 | var parts = s.substr(s.indexOf('?') + 1).split('&'); 51 | var result = {}; 52 | for (var i = 0; i < parts.length; i++) { 53 | var tmp = parts[i].split('=', 2); 54 | var key = jQuery.urldecode(tmp[0]); 55 | var value = jQuery.urldecode(tmp[1]); 56 | if (key in result) 57 | result[key].push(value); 58 | else 59 | result[key] = [value]; 60 | } 61 | return result; 62 | }; 63 | 64 | /** 65 | * highlight a given string on a jquery object by wrapping it in 66 | * span elements with the given class name. 67 | */ 68 | jQuery.fn.highlightText = function(text, className) { 69 | function highlight(node) { 70 | if (node.nodeType == 3) { 71 | var val = node.nodeValue; 72 | var pos = val.toLowerCase().indexOf(text); 73 | if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { 74 | var span = document.createElement("span"); 75 | span.className = className; 76 | span.appendChild(document.createTextNode(val.substr(pos, text.length))); 77 | node.parentNode.insertBefore(span, node.parentNode.insertBefore( 78 | document.createTextNode(val.substr(pos + text.length)), 79 | node.nextSibling)); 80 | node.nodeValue = val.substr(0, pos); 81 | } 82 | } 83 | else if (!jQuery(node).is("button, select, textarea")) { 84 | jQuery.each(node.childNodes, function() { 85 | highlight(this); 86 | }); 87 | } 88 | } 89 | return this.each(function() { 90 | highlight(this); 91 | }); 92 | }; 93 | 94 | /** 95 | * Small JavaScript module for the documentation. 96 | */ 97 | var Documentation = { 98 | 99 | init : function() { 100 | this.fixFirefoxAnchorBug(); 101 | this.highlightSearchWords(); 102 | this.initIndexTable(); 103 | }, 104 | 105 | /** 106 | * i18n support 107 | */ 108 | TRANSLATIONS : {}, 109 | PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, 110 | LOCALE : 'unknown', 111 | 112 | // gettext and ngettext don't access this so that the functions 113 | // can safely bound to a different name (_ = Documentation.gettext) 114 | gettext : function(string) { 115 | var translated = Documentation.TRANSLATIONS[string]; 116 | if (typeof translated == 'undefined') 117 | return string; 118 | return (typeof translated == 'string') ? translated : translated[0]; 119 | }, 120 | 121 | ngettext : function(singular, plural, n) { 122 | var translated = Documentation.TRANSLATIONS[singular]; 123 | if (typeof translated == 'undefined') 124 | return (n == 1) ? singular : plural; 125 | return translated[Documentation.PLURALEXPR(n)]; 126 | }, 127 | 128 | addTranslations : function(catalog) { 129 | for (var key in catalog.messages) 130 | this.TRANSLATIONS[key] = catalog.messages[key]; 131 | this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); 132 | this.LOCALE = catalog.locale; 133 | }, 134 | 135 | /** 136 | * add context elements like header anchor links 137 | */ 138 | addContextElements : function() { 139 | $('div[id] > :header:first').each(function() { 140 | $('\u00B6'). 141 | attr('href', '#' + this.id). 142 | attr('title', _('Permalink to this headline')). 143 | appendTo(this); 144 | }); 145 | $('dt[id]').each(function() { 146 | $('\u00B6'). 147 | attr('href', '#' + this.id). 148 | attr('title', _('Permalink to this definition')). 149 | appendTo(this); 150 | }); 151 | }, 152 | 153 | /** 154 | * workaround a firefox stupidity 155 | */ 156 | fixFirefoxAnchorBug : function() { 157 | if (document.location.hash && $.browser.mozilla) 158 | window.setTimeout(function() { 159 | document.location.href += ''; 160 | }, 10); 161 | }, 162 | 163 | /** 164 | * highlight the search words provided in the url in the text 165 | */ 166 | highlightSearchWords : function() { 167 | var params = $.getQueryParameters(); 168 | var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; 169 | if (terms.length) { 170 | var body = $('div.body'); 171 | window.setTimeout(function() { 172 | $.each(terms, function() { 173 | body.highlightText(this.toLowerCase(), 'highlighted'); 174 | }); 175 | }, 10); 176 | $('') 178 | .appendTo($('#searchbox')); 179 | } 180 | }, 181 | 182 | /** 183 | * init the domain index toggle buttons 184 | */ 185 | initIndexTable : function() { 186 | var togglers = $('img.toggler').click(function() { 187 | var src = $(this).attr('src'); 188 | var idnum = $(this).attr('id').substr(7); 189 | $('tr.cg-' + idnum).toggle(); 190 | if (src.substr(-9) == 'minus.png') 191 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 192 | else 193 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 194 | }).css('display', ''); 195 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 196 | togglers.click(); 197 | } 198 | }, 199 | 200 | /** 201 | * helper function to hide the search marks again 202 | */ 203 | hideSearchWords : function() { 204 | $('#searchbox .highlight-link').fadeOut(300); 205 | $('span.highlighted').removeClass('highlighted'); 206 | }, 207 | 208 | /** 209 | * make the url absolute 210 | */ 211 | makeURL : function(relativeURL) { 212 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 213 | }, 214 | 215 | /** 216 | * get the current relative url 217 | */ 218 | getCurrentURL : function() { 219 | var path = document.location.pathname; 220 | var parts = path.split(/\//); 221 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 222 | if (this == '..') 223 | parts.pop(); 224 | }); 225 | var url = parts.join('/'); 226 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 227 | } 228 | }; 229 | 230 | // quick alias for translations 231 | _ = Documentation.gettext; 232 | 233 | $(document).ready(function() { 234 | Documentation.init(); 235 | }); 236 | -------------------------------------------------------------------------------- /docs/build/html/template_blocks.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Template blocks — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 46 | 47 |
    48 |
    49 |
    50 |
    51 | 52 |
    53 |

    Template blocks

    54 |

    Use the included template blocks to suit your needs.

    55 |
    56 |

    html

    57 |

    Override the HTML doctype, or use in conjunction with {% djfrontend_h5bp_html ‘’ %} to change the HTML lang attribute.

    58 |
    59 |
    60 |

    title

    61 |

    Add your application specific title to the title tag.

    62 |
    63 |
    64 |

    meta_viewport

    65 |

    Override the default meta viewport’s content attribute.

    66 |
    67 |
    68 |

    meta_description

    69 |

    Add your application specific information to the meta description.

    70 |
    71 |
    72 |

    head_css

    73 |

    Parent CSS block to override or extend the included CSS files.

    74 |
    75 |
    76 |

    head_js

    77 |

    Override or extend with JavaScript files that need to loaded in the head.

    78 |
    79 |
    80 |

    body_id

    81 |

    Add an id to the body if needed.

    82 |
    83 |
    84 |

    body_class

    85 |

    Add class(es) to the body if needed.

    86 |
    87 |
    88 |

    body_content

    89 |

    Override the Internet Explorer warning, and/or extend with the main content from your application.

    90 |
    91 |
    92 |

    body_js

    93 |

    Override or extend the included JavaScript files with any file that does not need to be loaded in the head.

    94 |
    95 |
    96 | 97 | 98 |
    99 |
    100 |
    101 |
    102 |
    103 |

    Table Of Contents

    104 | 119 | 120 |

    Previous topic

    121 |

    Template tags

    123 |

    Next topic

    124 |

    Optional Settings

    126 |

    This Page

    127 | 131 | 143 | 144 |
    145 |
    146 |
    147 |
    148 | 163 | 167 | 168 | -------------------------------------------------------------------------------- /djfrontend/static/djfrontend/js/twbs/3.3.7/carousel.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: carousel.js v3.3.7 3 | * http://getbootstrap.com/javascript/#carousel 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // CAROUSEL CLASS DEFINITION 14 | // ========================= 15 | 16 | var Carousel = function (element, options) { 17 | this.$element = $(element) 18 | this.$indicators = this.$element.find('.carousel-indicators') 19 | this.options = options 20 | this.paused = null 21 | this.sliding = null 22 | this.interval = null 23 | this.$active = null 24 | this.$items = null 25 | 26 | this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) 27 | 28 | this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element 29 | .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) 30 | .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) 31 | } 32 | 33 | Carousel.VERSION = '3.3.7' 34 | 35 | Carousel.TRANSITION_DURATION = 600 36 | 37 | Carousel.DEFAULTS = { 38 | interval: 5000, 39 | pause: 'hover', 40 | wrap: true, 41 | keyboard: true 42 | } 43 | 44 | Carousel.prototype.keydown = function (e) { 45 | if (/input|textarea/i.test(e.target.tagName)) return 46 | switch (e.which) { 47 | case 37: this.prev(); break 48 | case 39: this.next(); break 49 | default: return 50 | } 51 | 52 | e.preventDefault() 53 | } 54 | 55 | Carousel.prototype.cycle = function (e) { 56 | e || (this.paused = false) 57 | 58 | this.interval && clearInterval(this.interval) 59 | 60 | this.options.interval 61 | && !this.paused 62 | && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) 63 | 64 | return this 65 | } 66 | 67 | Carousel.prototype.getItemIndex = function (item) { 68 | this.$items = item.parent().children('.item') 69 | return this.$items.index(item || this.$active) 70 | } 71 | 72 | Carousel.prototype.getItemForDirection = function (direction, active) { 73 | var activeIndex = this.getItemIndex(active) 74 | var willWrap = (direction == 'prev' && activeIndex === 0) 75 | || (direction == 'next' && activeIndex == (this.$items.length - 1)) 76 | if (willWrap && !this.options.wrap) return active 77 | var delta = direction == 'prev' ? -1 : 1 78 | var itemIndex = (activeIndex + delta) % this.$items.length 79 | return this.$items.eq(itemIndex) 80 | } 81 | 82 | Carousel.prototype.to = function (pos) { 83 | var that = this 84 | var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) 85 | 86 | if (pos > (this.$items.length - 1) || pos < 0) return 87 | 88 | if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" 89 | if (activeIndex == pos) return this.pause().cycle() 90 | 91 | return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) 92 | } 93 | 94 | Carousel.prototype.pause = function (e) { 95 | e || (this.paused = true) 96 | 97 | if (this.$element.find('.next, .prev').length && $.support.transition) { 98 | this.$element.trigger($.support.transition.end) 99 | this.cycle(true) 100 | } 101 | 102 | this.interval = clearInterval(this.interval) 103 | 104 | return this 105 | } 106 | 107 | Carousel.prototype.next = function () { 108 | if (this.sliding) return 109 | return this.slide('next') 110 | } 111 | 112 | Carousel.prototype.prev = function () { 113 | if (this.sliding) return 114 | return this.slide('prev') 115 | } 116 | 117 | Carousel.prototype.slide = function (type, next) { 118 | var $active = this.$element.find('.item.active') 119 | var $next = next || this.getItemForDirection(type, $active) 120 | var isCycling = this.interval 121 | var direction = type == 'next' ? 'left' : 'right' 122 | var that = this 123 | 124 | if ($next.hasClass('active')) return (this.sliding = false) 125 | 126 | var relatedTarget = $next[0] 127 | var slideEvent = $.Event('slide.bs.carousel', { 128 | relatedTarget: relatedTarget, 129 | direction: direction 130 | }) 131 | this.$element.trigger(slideEvent) 132 | if (slideEvent.isDefaultPrevented()) return 133 | 134 | this.sliding = true 135 | 136 | isCycling && this.pause() 137 | 138 | if (this.$indicators.length) { 139 | this.$indicators.find('.active').removeClass('active') 140 | var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) 141 | $nextIndicator && $nextIndicator.addClass('active') 142 | } 143 | 144 | var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" 145 | if ($.support.transition && this.$element.hasClass('slide')) { 146 | $next.addClass(type) 147 | $next[0].offsetWidth // force reflow 148 | $active.addClass(direction) 149 | $next.addClass(direction) 150 | $active 151 | .one('bsTransitionEnd', function () { 152 | $next.removeClass([type, direction].join(' ')).addClass('active') 153 | $active.removeClass(['active', direction].join(' ')) 154 | that.sliding = false 155 | setTimeout(function () { 156 | that.$element.trigger(slidEvent) 157 | }, 0) 158 | }) 159 | .emulateTransitionEnd(Carousel.TRANSITION_DURATION) 160 | } else { 161 | $active.removeClass('active') 162 | $next.addClass('active') 163 | this.sliding = false 164 | this.$element.trigger(slidEvent) 165 | } 166 | 167 | isCycling && this.cycle() 168 | 169 | return this 170 | } 171 | 172 | 173 | // CAROUSEL PLUGIN DEFINITION 174 | // ========================== 175 | 176 | function Plugin(option) { 177 | return this.each(function () { 178 | var $this = $(this) 179 | var data = $this.data('bs.carousel') 180 | var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) 181 | var action = typeof option == 'string' ? option : options.slide 182 | 183 | if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) 184 | if (typeof option == 'number') data.to(option) 185 | else if (action) data[action]() 186 | else if (options.interval) data.pause().cycle() 187 | }) 188 | } 189 | 190 | var old = $.fn.carousel 191 | 192 | $.fn.carousel = Plugin 193 | $.fn.carousel.Constructor = Carousel 194 | 195 | 196 | // CAROUSEL NO CONFLICT 197 | // ==================== 198 | 199 | $.fn.carousel.noConflict = function () { 200 | $.fn.carousel = old 201 | return this 202 | } 203 | 204 | 205 | // CAROUSEL DATA-API 206 | // ================= 207 | 208 | var clickHandler = function (e) { 209 | var href 210 | var $this = $(this) 211 | var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 212 | if (!$target.hasClass('carousel')) return 213 | var options = $.extend({}, $target.data(), $this.data()) 214 | var slideIndex = $this.attr('data-slide-to') 215 | if (slideIndex) options.interval = false 216 | 217 | Plugin.call($target, options) 218 | 219 | if (slideIndex) { 220 | $target.data('bs.carousel').to(slideIndex) 221 | } 222 | 223 | e.preventDefault() 224 | } 225 | 226 | $(document) 227 | .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) 228 | .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) 229 | 230 | $(window).on('load', function () { 231 | $('[data-ride="carousel"]').each(function () { 232 | var $carousel = $(this) 233 | Plugin.call($carousel, $carousel.data()) 234 | }) 235 | }) 236 | 237 | }(jQuery); 238 | -------------------------------------------------------------------------------- /docs/build/html/granularity.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Granularity — django-frontend 1.8.0 documentation 10 | 11 | 12 | 13 | 14 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 46 | 47 |
    48 |
    49 |
    50 |
    51 | 52 |
    53 |

    Granularity

    54 |

    Version 1.0.0 introduced a new level of granularity by including template tags with a default value, which can be overriden in settings, which in turn can be overridden by passing the template tag an argument. This allows you to change default values within settings, while giving a template tag final word.

    55 |

    If you use an optional value other than the ones listed, you will have to add the files into the same directory structure as djfrontend.

    56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 159 | 161 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 |
    Template tagSettingDefault ValueOptional Value(s)
     DJFRONTEND_STATIC_URL  
    djfrontend_h5bp_htmlDJFRONTEND_H5BP_HTMLenISO 639-1 codes
    djfrontend_h5bp_cssDJFRONTEND_H5BP_CSS5.3.0 
    djfrontend_normalizeDJFRONTEND_NORMALIZE4.2.0 
    djfrontend_fontawesomeDJFRONTEND_FONTAWESOME4.6.3 
    djfrontend_modernizrDJFRONTEND_MODERNIZR2.8.3 
    djfrontend_jqueryDJFRONTEND_JQUERY1.12.42.2.4, 3.1.0
    djfrontend_jqueryuiDJFRONTEND_JQUERYUI1.11.4 
     DJFRONTEND_JQUERY_DATATABLES_VERSION  
    djfrontend_jquery_datatablesDJFRONTEND_JQUERY_DATATABLES1.10.12 
    djfrontend_jquery_datatables_cssDJFRONTEND_JQUERY_DATATABLES_CSS1.10.12 
    djfrontend_jquery_formsetDJFRONTEND_JQUERY_FORMSET1.2.2 
    djfrontend_jquery_scrolltoDJFRONTEND_JQUERY_SCROLLTO2.1.2 
    djfrontend_jquery_smoothscrollDJFRONTEND_JQUERY_SMOOTHSCROLL1.7.2 
     DJFRONTEND_TWBS_VERSION  
    djfrontend_twbs_cssDJFRONTEND_TWBS_CSS3.3.7 
    djfrontend_twbs_theme_cssDJFRONTEND_TWBS_THEME_CSS3.3.7 
    djfrontend_twbs_jsDJFRONTEND_TWBS_JS_VERSION 158 | DJFRONTEND_TWBS_JS_FILES3.3.7 160 | all
      162 |
    • affix
    • 163 |
    • alert
    • 164 |
    • button
    • 165 |
    • carousel
    • 166 |
    • collapse
    • 167 |
    • dropdown
    • 168 |
    • modal
    • 169 |
    • popover
    • 170 |
    • scrollspy
    • 171 |
    • tab
    • 172 |
    • tooltip
    • 173 |
    • transition
    • 174 |
    175 |
    djfrontend_gaDJFRONTEND_GA  
     DJFRONTEND_GA_SETDOMAINNAME  
     DJFRONTEND_GA_SETALLOWLINKER  
    194 |
    195 | 196 | 197 |
    198 |
    199 |
    200 |
    201 |
    202 |

    Previous topic

    203 |

    Getting Started

    205 |

    Next topic

    206 |

    Template tags

    208 |

    This Page

    209 | 213 | 225 | 226 |
    227 |
    228 |
    229 |
    230 | 245 | 249 | 250 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # django-frontend documentation build configuration file, created by 4 | # sphinx-quickstart on Thu Aug 1 14:17:20 2013. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | #sys.path.insert(0, os.path.abspath('.')) 20 | 21 | # -- General configuration ----------------------------------------------------- 22 | 23 | # If your documentation needs a minimal Sphinx version, state it here. 24 | #needs_sphinx = '1.0' 25 | 26 | # Add any Sphinx extension module names here, as strings. They can be extensions 27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 28 | extensions = [] 29 | 30 | # Add any paths that contain templates here, relative to this directory. 31 | templates_path = ['_templates'] 32 | 33 | # The suffix of source filenames. 34 | source_suffix = '.rst' 35 | 36 | # The encoding of source files. 37 | #source_encoding = 'utf-8-sig' 38 | 39 | # The master toctree document. 40 | master_doc = 'index' 41 | 42 | # General information about the project. 43 | project = u'django-frontend' 44 | copyright = u'2013, Jon Faustman' 45 | 46 | # The version info for the project you're documenting, acts as replacement for 47 | # |version| and |release|, also used in various other places throughout the 48 | # built documents. 49 | # 50 | # The short X.Y version. 51 | version = '1.8.0' 52 | # The full version, including alpha/beta/rc tags. 53 | release = '1.8.0' 54 | 55 | # The language for content autogenerated by Sphinx. Refer to documentation 56 | # for a list of supported languages. 57 | #language = None 58 | 59 | # There are two options for replacing |today|: either, you set today to some 60 | # non-false value, then it is used: 61 | #today = '' 62 | # Else, today_fmt is used as the format for a strftime call. 63 | #today_fmt = '%B %d, %Y' 64 | 65 | # List of patterns, relative to source directory, that match files and 66 | # directories to ignore when looking for source files. 67 | exclude_patterns = [] 68 | 69 | # The reST default role (used for this markup: `text`) to use for all documents. 70 | #default_role = None 71 | 72 | # If true, '()' will be appended to :func: etc. cross-reference text. 73 | #add_function_parentheses = True 74 | 75 | # If true, the current module name will be prepended to all description 76 | # unit titles (such as .. function::). 77 | #add_module_names = True 78 | 79 | # If true, sectionauthor and moduleauthor directives will be shown in the 80 | # output. They are ignored by default. 81 | #show_authors = False 82 | 83 | # The name of the Pygments (syntax highlighting) style to use. 84 | pygments_style = 'sphinx' 85 | 86 | # A list of ignored prefixes for module index sorting. 87 | #modindex_common_prefix = [] 88 | 89 | # If true, keep warnings as "system message" paragraphs in the built documents. 90 | #keep_warnings = False 91 | 92 | 93 | # -- Options for HTML output --------------------------------------------------- 94 | 95 | # The theme to use for HTML and HTML Help pages. See the documentation for 96 | # a list of builtin themes. 97 | html_theme = 'default' 98 | 99 | # Theme options are theme-specific and customize the look and feel of a theme 100 | # further. For a list of options available for each theme, see the 101 | # documentation. 102 | #html_theme_options = {} 103 | 104 | # Add any paths that contain custom themes here, relative to this directory. 105 | #html_theme_path = [] 106 | 107 | # The name for this set of Sphinx documents. If None, it defaults to 108 | # " v documentation". 109 | #html_title = None 110 | 111 | # A shorter title for the navigation bar. Default is the same as html_title. 112 | #html_short_title = None 113 | 114 | # The name of an image file (relative to this directory) to place at the top 115 | # of the sidebar. 116 | #html_logo = None 117 | 118 | # The name of an image file (within the static path) to use as favicon of the 119 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 120 | # pixels large. 121 | #html_favicon = None 122 | 123 | # Add any paths that contain custom static files (such as style sheets) here, 124 | # relative to this directory. They are copied after the builtin static files, 125 | # so a file named "default.css" will overwrite the builtin "default.css". 126 | html_static_path = ['_static'] 127 | 128 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 129 | # using the given strftime format. 130 | #html_last_updated_fmt = '%b %d, %Y' 131 | 132 | # If true, SmartyPants will be used to convert quotes and dashes to 133 | # typographically correct entities. 134 | #html_use_smartypants = True 135 | 136 | # Custom sidebar templates, maps document names to template names. 137 | #html_sidebars = {} 138 | 139 | # Additional templates that should be rendered to pages, maps page names to 140 | # template names. 141 | #html_additional_pages = {} 142 | 143 | # If false, no module index is generated. 144 | #html_domain_indices = True 145 | 146 | # If false, no index is generated. 147 | #html_use_index = True 148 | 149 | # If true, the index is split into individual pages for each letter. 150 | #html_split_index = False 151 | 152 | # If true, links to the reST sources are added to the pages. 153 | #html_show_sourcelink = True 154 | 155 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 156 | #html_show_sphinx = True 157 | 158 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 159 | #html_show_copyright = True 160 | 161 | # If true, an OpenSearch description file will be output, and all pages will 162 | # contain a tag referring to it. The value of this option must be the 163 | # base URL from which the finished HTML is served. 164 | #html_use_opensearch = '' 165 | 166 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 167 | #html_file_suffix = None 168 | 169 | # Output file base name for HTML help builder. 170 | htmlhelp_basename = 'django-frontenddoc' 171 | 172 | 173 | # -- Options for LaTeX output -------------------------------------------------- 174 | 175 | latex_elements = { 176 | # The paper size ('letterpaper' or 'a4paper'). 177 | #'papersize': 'letterpaper', 178 | 179 | # The font size ('10pt', '11pt' or '12pt'). 180 | #'pointsize': '10pt', 181 | 182 | # Additional stuff for the LaTeX preamble. 183 | #'preamble': '', 184 | } 185 | 186 | # Grouping the document tree into LaTeX files. List of tuples 187 | # (source start file, target name, title, author, documentclass [howto/manual]). 188 | latex_documents = [ 189 | ('index', 'django-frontend.tex', u'django-frontend Documentation', 190 | u'Jon Faustman', 'manual'), 191 | ] 192 | 193 | # The name of an image file (relative to this directory) to place at the top of 194 | # the title page. 195 | #latex_logo = None 196 | 197 | # For "manual" documents, if this is true, then toplevel headings are parts, 198 | # not chapters. 199 | #latex_use_parts = False 200 | 201 | # If true, show page references after internal links. 202 | #latex_show_pagerefs = False 203 | 204 | # If true, show URL addresses after external links. 205 | #latex_show_urls = False 206 | 207 | # Documents to append as an appendix to all manuals. 208 | #latex_appendices = [] 209 | 210 | # If false, no module index is generated. 211 | #latex_domain_indices = True 212 | 213 | 214 | # -- Options for manual page output -------------------------------------------- 215 | 216 | # One entry per manual page. List of tuples 217 | # (source start file, name, description, authors, manual section). 218 | man_pages = [ 219 | ('index', 'django-frontend', u'django-frontend Documentation', 220 | [u'Jon Faustman'], 1) 221 | ] 222 | 223 | # If true, show URL addresses after external links. 224 | #man_show_urls = False 225 | 226 | 227 | # -- Options for Texinfo output ------------------------------------------------ 228 | 229 | # Grouping the document tree into Texinfo files. List of tuples 230 | # (source start file, target name, title, author, 231 | # dir menu entry, description, category) 232 | texinfo_documents = [ 233 | ('index', 'django-frontend', u'django-frontend Documentation', 234 | u'Jon Faustman', 'django-frontend', 'One line description of project.', 235 | 'Miscellaneous'), 236 | ] 237 | 238 | # Documents to append as an appendix to all manuals. 239 | #texinfo_appendices = [] 240 | 241 | # If false, no module index is generated. 242 | #texinfo_domain_indices = True 243 | 244 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 245 | #texinfo_show_urls = 'footnote' 246 | 247 | # If true, do not generate a @detailmenu in the "Top" node's menu. 248 | #texinfo_no_detailmenu = False 249 | --------------------------------------------------------------------------------