├── interface
├── __init__.py
├── migrations
│ └── __init__.py
├── tests.py
├── apps.py
├── tasks.py
└── serializers.py
├── static
├── xadmin
│ ├── vendor
│ │ ├── bootstrap-multiselect
│ │ │ └── css
│ │ │ │ └── bootstrap-multiselect.css
│ │ ├── select2
│ │ │ ├── select2.png
│ │ │ ├── select2x2.png
│ │ │ ├── select2-spinner.gif
│ │ │ ├── select2_locale_zh-CN.js
│ │ │ ├── select2_locale_zh-hans.js
│ │ │ ├── select2_locale_hu.js
│ │ │ ├── select2_locale_de.js
│ │ │ ├── select2_locale_tr.js
│ │ │ ├── select2_locale_en.js
│ │ │ ├── select2_locale_nl.js
│ │ │ ├── select2_locale_sv.js
│ │ │ ├── select2_locale_es.js
│ │ │ ├── select2_locale_it.js
│ │ │ ├── select2_locale_pt-BR.js
│ │ │ ├── select2_locale_pt-PT.js
│ │ │ ├── select2_locale_ro.js
│ │ │ ├── select2_locale_fr.js
│ │ │ ├── select2_locale_ru.js
│ │ │ ├── select2_locale_ua.js
│ │ │ ├── select2_locale_eu.js
│ │ │ ├── select2_locale_hr.js
│ │ │ └── select2_locale_sk.js
│ │ ├── bootstrap-modal
│ │ │ └── img
│ │ │ │ └── ajax-loader.gif
│ │ ├── font-awesome
│ │ │ └── fonts
│ │ │ │ ├── FontAwesome.otf
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ └── fontawesome-webfont.woff
│ │ ├── bootstrap-image-gallery
│ │ │ └── img
│ │ │ │ └── loading.gif
│ │ ├── bootstrap
│ │ │ └── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── bootstrap-datepicker
│ │ │ └── js
│ │ │ │ └── locales
│ │ │ │ ├── bootstrap-datepicker.kr.js
│ │ │ │ ├── bootstrap-datepicker.zh-TW.js
│ │ │ │ ├── bootstrap-datepicker.ja.js
│ │ │ │ ├── bootstrap-datepicker.zh-CN.js
│ │ │ │ ├── bootstrap-datepicker.hr.js
│ │ │ │ ├── bootstrap-datepicker.id.js
│ │ │ │ ├── bootstrap-datepicker.he.js
│ │ │ │ ├── bootstrap-datepicker.ms.js
│ │ │ │ ├── bootstrap-datepicker.ca.js
│ │ │ │ ├── bootstrap-datepicker.da.js
│ │ │ │ ├── bootstrap-datepicker.rs.js
│ │ │ │ ├── bootstrap-datepicker.sv.js
│ │ │ │ ├── bootstrap-datepicker.th.js
│ │ │ │ ├── bootstrap-datepicker.tr.js
│ │ │ │ ├── bootstrap-datepicker.bg.js
│ │ │ │ ├── bootstrap-datepicker.es.js
│ │ │ │ ├── bootstrap-datepicker.nl.js
│ │ │ │ ├── bootstrap-datepicker.pt-BR.js
│ │ │ │ ├── bootstrap-datepicker.rs-latin.js
│ │ │ │ ├── bootstrap-datepicker.sl.js
│ │ │ │ ├── bootstrap-datepicker.el.js
│ │ │ │ ├── bootstrap-datepicker.nb.js
│ │ │ │ ├── bootstrap-datepicker.ru.js
│ │ │ │ ├── bootstrap-datepicker.uk.js
│ │ │ │ ├── bootstrap-datepicker.ro.js
│ │ │ │ ├── bootstrap-datepicker.cs.js
│ │ │ │ ├── bootstrap-datepicker.is.js
│ │ │ │ ├── bootstrap-datepicker.pt.js
│ │ │ │ ├── bootstrap-datepicker.fi.js
│ │ │ │ ├── bootstrap-datepicker.sk.js
│ │ │ │ ├── bootstrap-datepicker.de.js
│ │ │ │ ├── bootstrap-datepicker.fr.js
│ │ │ │ ├── bootstrap-datepicker.hu.js
│ │ │ │ ├── bootstrap-datepicker.it.js
│ │ │ │ ├── bootstrap-datepicker.lv.js
│ │ │ │ ├── bootstrap-datepicker.lt.js
│ │ │ │ ├── bootstrap-datepicker.pl.js
│ │ │ │ └── bootstrap-datepicker.sw.js
│ │ ├── snapjs
│ │ │ └── snap.css
│ │ └── load-image
│ │ │ └── load-image.min.js
│ ├── css
│ │ ├── xadmin.plugin.aggregation.css
│ │ ├── xadmin.plugins.css
│ │ ├── xadmin.plugin.quickfilter.css
│ │ ├── xadmin.plugin.importexport.css
│ │ ├── xadmin.page.dashboard.css
│ │ ├── xadmin.widget.editable.css
│ │ ├── xadmin.plugin.formset.css
│ │ ├── xadmin.mobile.css
│ │ └── themes
│ │ │ └── bootstrap-xadmin.css
│ └── js
│ │ ├── xadmin.widget.multiselect.js
│ │ ├── xadmin.plugin.batch.js
│ │ ├── xadmin.plugin.refresh.js
│ │ ├── xadmin.plugin.importexport.js
│ │ ├── xadmin.plugin.bookmark.js
│ │ ├── xadmin.plugin.revision.js
│ │ ├── xadmin.plugin.portal.js
│ │ ├── xadmin.page.list.js
│ │ ├── xadmin.widget.select.js
│ │ ├── xadmin.plugin.quickfilter.js
│ │ ├── xadmin.plugin.sortablelist.js
│ │ ├── xadmin.page.form.js
│ │ ├── xadmin.plugin.filters.js
│ │ └── xadmin.plugin.charts.js
├── debug_toolbar
│ ├── css
│ │ └── print.css
│ ├── js
│ │ └── redirect.js
│ └── img
│ │ ├── back.png
│ │ ├── close.png
│ │ ├── back_hover.png
│ │ ├── indicator.png
│ │ ├── ajax-loader.gif
│ │ ├── close_hover.png
│ │ └── djdt_vertical.png
├── img
│ ├── home.gif
│ ├── login.gif
│ └── pycharm.png
├── silk
│ ├── filter.png
│ ├── filter2.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── fonts
│ │ ├── fira
│ │ │ ├── FiraSans-Bold.woff
│ │ │ ├── FiraSans-Light.woff
│ │ │ ├── FiraSans-Medium.woff
│ │ │ ├── FiraSans-Regular.woff
│ │ │ ├── FiraSans-BoldItalic.woff
│ │ │ ├── FiraSans-LightItalic.woff
│ │ │ ├── FiraSans-MediumItalic.woff
│ │ │ └── FiraSans-RegularItalic.woff
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ ├── glyphicons-halflings-regular.woff2
│ │ └── fantasque
│ │ │ ├── FantasqueSansMono-Bold.woff
│ │ │ ├── FantasqueSansMono-Regular.woff
│ │ │ ├── FantasqueSansMono-BoldItalic.woff
│ │ │ └── FantasqueSansMono-RegItalic.woff
│ ├── css
│ │ ├── numeric.css
│ │ ├── colors.css
│ │ ├── heading.css
│ │ ├── summary.css
│ │ ├── cell.css
│ │ └── fonts.css
│ └── js
│ │ ├── cell.js
│ │ └── filters.js
├── rest_framework
│ ├── img
│ │ ├── grid.png
│ │ ├── glyphicons-halflings.png
│ │ └── glyphicons-halflings-white.png
│ ├── docs
│ │ ├── img
│ │ │ ├── grid.png
│ │ │ └── favicon.ico
│ │ └── css
│ │ │ ├── jquery.json-view.min.css
│ │ │ └── highlight.css
│ ├── fonts
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── css
│ │ ├── prettify.css
│ │ └── default.css
│ └── js
│ │ ├── default.js
│ │ └── csrf.js
├── drf-yasg
│ ├── redoc
│ │ └── redoc-logo.png
│ ├── swagger-ui-dist
│ │ ├── favicon-32x32.png
│ │ ├── absolute-path.js
│ │ └── index.js
│ ├── style.css
│ └── insQ.min.js
├── admin
│ ├── fonts
│ │ ├── Roboto-Bold-webfont.woff
│ │ ├── Roboto-Light-webfont.woff
│ │ ├── Roboto-Regular-webfont.woff
│ │ └── README.txt
│ ├── img
│ │ ├── tooltag-arrowright.svg
│ │ ├── README.txt
│ │ ├── icon-addlink.svg
│ │ ├── tooltag-add.svg
│ │ ├── icon-changelink.svg
│ │ ├── icon-deletelink.svg
│ │ ├── icon-yes.svg
│ │ ├── search.svg
│ │ ├── icon-alert.svg
│ │ ├── icon-no.svg
│ │ ├── inline-delete.svg
│ │ ├── icon-viewlink.svg
│ │ ├── icon-unknown.svg
│ │ ├── icon-unknown-alt.svg
│ │ ├── icon-clock.svg
│ │ ├── gis
│ │ │ ├── move_vertex_on.svg
│ │ │ └── move_vertex_off.svg
│ │ ├── icon-calendar.svg
│ │ ├── calendar-icons.svg
│ │ ├── LICENSE
│ │ └── sorting-icons.svg
│ ├── js
│ │ ├── prepopulate.min.js
│ │ ├── jquery.init.js
│ │ ├── cancel.js
│ │ ├── prepopulate_init.js
│ │ ├── popup_response.js
│ │ ├── vendor
│ │ │ ├── select2
│ │ │ │ ├── i18n
│ │ │ │ │ ├── zh-TW.js
│ │ │ │ │ ├── zh-CN.js
│ │ │ │ │ ├── az.js
│ │ │ │ │ ├── fi.js
│ │ │ │ │ ├── ja.js
│ │ │ │ │ ├── hu.js
│ │ │ │ │ ├── tr.js
│ │ │ │ │ ├── ko.js
│ │ │ │ │ ├── th.js
│ │ │ │ │ ├── id.js
│ │ │ │ │ ├── vi.js
│ │ │ │ │ ├── is.js
│ │ │ │ │ ├── ar.js
│ │ │ │ │ ├── de.js
│ │ │ │ │ ├── et.js
│ │ │ │ │ ├── sv.js
│ │ │ │ │ ├── bg.js
│ │ │ │ │ ├── km.js
│ │ │ │ │ ├── nb.js
│ │ │ │ │ ├── ms.js
│ │ │ │ │ ├── gl.js
│ │ │ │ │ ├── da.js
│ │ │ │ │ ├── en.js
│ │ │ │ │ ├── he.js
│ │ │ │ │ ├── hi.js
│ │ │ │ │ ├── fa.js
│ │ │ │ │ ├── hr.js
│ │ │ │ │ ├── mk.js
│ │ │ │ │ ├── eu.js
│ │ │ │ │ ├── pt-BR.js
│ │ │ │ │ ├── pt.js
│ │ │ │ │ ├── lv.js
│ │ │ │ │ ├── es.js
│ │ │ │ │ ├── ca.js
│ │ │ │ │ ├── it.js
│ │ │ │ │ ├── fr.js
│ │ │ │ │ ├── ro.js
│ │ │ │ │ ├── nl.js
│ │ │ │ │ ├── lt.js
│ │ │ │ │ ├── pl.js
│ │ │ │ │ ├── el.js
│ │ │ │ │ ├── sr.js
│ │ │ │ │ ├── uk.js
│ │ │ │ │ ├── sr-Cyrl.js
│ │ │ │ │ ├── ru.js
│ │ │ │ │ ├── sk.js
│ │ │ │ │ └── cs.js
│ │ │ │ └── LICENSE.md
│ │ │ ├── xregexp
│ │ │ │ └── LICENSE.txt
│ │ │ └── jquery
│ │ │ │ └── LICENSE.txt
│ │ ├── change_form.js
│ │ ├── collapse.min.js
│ │ ├── autocomplete.js
│ │ └── prepopulate.js
│ └── css
│ │ ├── fonts.css
│ │ ├── dashboard.css
│ │ ├── vendor
│ │ └── select2
│ │ │ └── LICENSE-SELECT2.md
│ │ ├── login.css
│ │ └── responsive_rtl.css
└── import_export
│ ├── action_formats.js
│ └── import.css
├── .gitattributes
├── dapi
├── __init__.py
├── wsgi.py
└── celery.py
├── requirements.txt
├── deploy_conf
├── nginx-app.conf
├── uwsgi.ini
└── supervisor-app.conf
├── manage.py
├── Dockerfile
└── README.md
/interface/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/interface/migrations/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-multiselect/css/bootstrap-multiselect.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/debug_toolbar/css/print.css:
--------------------------------------------------------------------------------
1 | #djDebug {
2 | display: none !important;
3 | }
4 |
--------------------------------------------------------------------------------
/static/debug_toolbar/js/redirect.js:
--------------------------------------------------------------------------------
1 | document.getElementById('redirect_to').focus();
2 |
--------------------------------------------------------------------------------
/static/img/home.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/img/home.gif
--------------------------------------------------------------------------------
/interface/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/static/img/login.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/img/login.gif
--------------------------------------------------------------------------------
/static/img/pycharm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/img/pycharm.png
--------------------------------------------------------------------------------
/static/silk/filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/filter.png
--------------------------------------------------------------------------------
/static/silk/filter2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/filter2.png
--------------------------------------------------------------------------------
/static/silk/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/favicon-16x16.png
--------------------------------------------------------------------------------
/static/silk/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/favicon-32x32.png
--------------------------------------------------------------------------------
/static/debug_toolbar/img/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/back.png
--------------------------------------------------------------------------------
/static/debug_toolbar/img/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/close.png
--------------------------------------------------------------------------------
/static/rest_framework/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/img/grid.png
--------------------------------------------------------------------------------
/static/drf-yasg/redoc/redoc-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/drf-yasg/redoc/redoc-logo.png
--------------------------------------------------------------------------------
/static/debug_toolbar/img/back_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/back_hover.png
--------------------------------------------------------------------------------
/static/debug_toolbar/img/indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/indicator.png
--------------------------------------------------------------------------------
/static/rest_framework/docs/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/docs/img/grid.png
--------------------------------------------------------------------------------
/static/debug_toolbar/img/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/ajax-loader.gif
--------------------------------------------------------------------------------
/static/debug_toolbar/img/close_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/close_hover.png
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-Bold.woff
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/select2/select2.png
--------------------------------------------------------------------------------
/static/admin/fonts/Roboto-Bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/admin/fonts/Roboto-Bold-webfont.woff
--------------------------------------------------------------------------------
/static/admin/fonts/Roboto-Light-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/admin/fonts/Roboto-Light-webfont.woff
--------------------------------------------------------------------------------
/static/debug_toolbar/img/djdt_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/debug_toolbar/img/djdt_vertical.png
--------------------------------------------------------------------------------
/static/rest_framework/docs/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/docs/img/favicon.ico
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-Light.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-Medium.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-Regular.woff
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/select2/select2x2.png
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.js linguist-language=Python
2 | *.css linguist-language=Python
3 | *.html linguist-language=Python
4 | # 设置仓库显示的语言为Python
5 |
--------------------------------------------------------------------------------
/static/admin/fonts/Roboto-Regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/admin/fonts/Roboto-Regular-webfont.woff
--------------------------------------------------------------------------------
/static/drf-yasg/swagger-ui-dist/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/drf-yasg/swagger-ui-dist/favicon-32x32.png
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-BoldItalic.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-LightItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-LightItalic.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-MediumItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-MediumItalic.woff
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2-spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/select2/select2-spinner.gif
--------------------------------------------------------------------------------
/static/rest_framework/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/rest_framework/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/rest_framework/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/static/silk/fonts/fira/FiraSans-RegularItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fira/FiraSans-RegularItalic.woff
--------------------------------------------------------------------------------
/static/silk/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/silk/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/silk/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/rest_framework/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/silk/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/interface/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class InterfaceConfig(AppConfig):
5 | name = 'interface'
6 | verbose_name = '接口管理'
7 |
--------------------------------------------------------------------------------
/static/rest_framework/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/static/silk/fonts/fantasque/FantasqueSansMono-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fantasque/FantasqueSansMono-Bold.woff
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.plugin.aggregation.css:
--------------------------------------------------------------------------------
1 | td.aggregate {
2 | font-weight: bold;
3 | }
4 | td.aggregate span.aggregate_title {
5 | float: right;
6 | }
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-modal/img/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/bootstrap-modal/img/ajax-loader.gif
--------------------------------------------------------------------------------
/static/xadmin/vendor/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/silk/fonts/fantasque/FantasqueSansMono-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fantasque/FantasqueSansMono-Regular.woff
--------------------------------------------------------------------------------
/static/rest_framework/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/rest_framework/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/rest_framework/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff
--------------------------------------------------------------------------------
/static/silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-image-gallery/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/bootstrap-image-gallery/img/loading.gif
--------------------------------------------------------------------------------
/static/rest_framework/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/rest_framework/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjlch1016/dapi/HEAD/static/xadmin/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/silk/css/numeric.css:
--------------------------------------------------------------------------------
1 | .numeric {
2 | font-weight: normal; }
3 |
4 | .unit {
5 | font-weight: normal; }
6 |
7 | .numeric .unit {
8 | font-size: 12px; }
9 |
10 | .numeric {
11 | font-size: 20px; }
12 |
--------------------------------------------------------------------------------
/dapi/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, unicode_literals
2 | from dapi.celery import app as celery_app
3 | import pymysql
4 |
5 | __all__ = ('celery_app',)
6 |
7 | pymysql.install_as_MySQLdb()
8 | # PyMySQL初始化
9 |
--------------------------------------------------------------------------------
/static/admin/fonts/README.txt:
--------------------------------------------------------------------------------
1 | Roboto webfont source: https://www.google.com/fonts/specimen/Roboto
2 | WOFF files extracted using https://github.com/majodev/google-webfonts-helper
3 | Weights used in this project: Light (300), Regular (400), Bold (700)
4 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.plugins.css:
--------------------------------------------------------------------------------
1 | /** Action **/
2 | .action-checkbox-column {
3 | width: 14px;
4 | }
5 |
6 | /** quick-form **/
7 | .quick-form .modal-body {
8 | padding-bottom: 0px;
9 | }
10 | .quick-form .modal-footer {
11 | margin-top: 0px;
12 | }
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.widget.multiselect.js:
--------------------------------------------------------------------------------
1 |
2 | ;(function($){
3 |
4 | $.fn.exform.renders.push(function(f){
5 | if($.fn.multiselect){
6 | f.find('.selectmultiple.selectdropdown').multiselect({
7 |
8 | });
9 | }
10 | });
11 |
12 | })(jQuery)
--------------------------------------------------------------------------------
/interface/tasks.py:
--------------------------------------------------------------------------------
1 | # Create your tasks here
2 | from __future__ import absolute_import, unicode_literals
3 |
4 | from dapi.celery import app
5 |
6 |
7 | @app.task
8 | def debug_1():
9 | print("调试_1已运行!")
10 |
11 |
12 | @app.task
13 | def debug_2():
14 | print("调试_2已运行!")
15 |
--------------------------------------------------------------------------------
/static/silk/css/colors.css:
--------------------------------------------------------------------------------
1 | .very-good-font-color {
2 | color: #bac54b; }
3 |
4 | .good-font-color {
5 | color: #c3a948; }
6 |
7 | .ok-font-color {
8 | color: #c08245; }
9 |
10 | .bad-font-color {
11 | color: #be5b43; }
12 |
13 | .very-bad-font-color {
14 | color: #b9424f; }
15 |
--------------------------------------------------------------------------------
/static/admin/img/tooltag-arrowright.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | djangorestframework==3.11.0
2 | drf-yasg==1.17.1
3 | django-redis==4.12.1
4 | django-import-export==2.2.0
5 | django-silk==4.0.1
6 | django-debug-toolbar==2.2
7 | requests==2.23.0
8 | demjson==2.2.4
9 | celery==4.3.0
10 | django-celery-beat==1.5.0
11 | django-celery-results==1.1.2
12 | redis==3.2.1
13 | pyecharts==1.8.1
--------------------------------------------------------------------------------
/static/silk/css/heading.css:
--------------------------------------------------------------------------------
1 | .heading {
2 | width: 100%;
3 | background-color: transparent;
4 | height: 30px;
5 | display: table;
6 | font-weight: bold;
7 | margin-top: 20px; }
8 | .heading .inner-heading {
9 | display: table-cell;
10 | text-align: left;
11 | padding: 0;
12 | vertical-align: middle; }
13 |
--------------------------------------------------------------------------------
/static/silk/css/summary.css:
--------------------------------------------------------------------------------
1 | #error-div {
2 | margin: 10px; }
3 |
4 | #query-div {
5 | margin: auto;
6 | width: 960px;
7 | text-align: center; }
8 |
9 | #code {
10 | text-align: left; }
11 |
12 | .name-div {
13 | margin-top: 20px;
14 | margin-bottom: 15px;
15 | font-weight: bold; }
16 |
17 | .description {
18 | text-align: left; }
19 |
--------------------------------------------------------------------------------
/static/admin/img/README.txt:
--------------------------------------------------------------------------------
1 | All icons are taken from Font Awesome (http://fontawesome.io/) project.
2 | The Font Awesome font is licensed under the SIL OFL 1.1:
3 | - https://scripts.sil.org/OFL
4 |
5 | SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG
6 | Font-Awesome-SVG-PNG is licensed under the MIT license (see file license
7 | in current folder).
8 |
--------------------------------------------------------------------------------
/static/admin/img/icon-addlink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/admin/img/tooltag-add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.plugin.quickfilter.css:
--------------------------------------------------------------------------------
1 | .nav-quickfilter .filter-item {
2 | white-space: nowrap;
3 | overflow: hidden;
4 | padding: 5px;
5 | }
6 |
7 | .nav-quickfilter .filter-col-1 {
8 | margin: 3px 2px 0 -2px;
9 | float: left;
10 | }
11 |
12 | .nav-quickfilter .filter-col-2 {
13 | }
14 |
15 | .nav-quickfilter .nav-expand {
16 | z-index:100;
17 | }
--------------------------------------------------------------------------------
/static/admin/js/prepopulate.min.js:
--------------------------------------------------------------------------------
1 | (function(b){b.fn.prepopulate=function(d,f,g){return this.each(function(){var a=b(this),h=function(){if(!a.data("_changed")){var e=[];b.each(d,function(a,c){c=b(c);0
2 |
3 |
4 |
--------------------------------------------------------------------------------
/static/admin/js/jquery.init.js:
--------------------------------------------------------------------------------
1 | /*global django:true, jQuery:false*/
2 | /* Puts the included jQuery into our own namespace using noConflict and passing
3 | * it 'true'. This ensures that the included jQuery doesn't pollute the global
4 | * namespace (i.e. this preserves pre-existing values for both window.$ and
5 | * window.jQuery).
6 | */
7 | var django = django || {};
8 | django.jQuery = jQuery.noConflict(true);
9 |
--------------------------------------------------------------------------------
/static/admin/img/icon-deletelink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dapi/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for dapi project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dapi.settings')
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/static/admin/img/icon-yes.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.plugin.importexport.css:
--------------------------------------------------------------------------------
1 | /* FORM ROWS */
2 |
3 | .form-row {
4 | overflow: hidden;
5 | padding: 10px;
6 | font-size: 13px;
7 | border-bottom: 1px solid #eee;
8 | }
9 |
10 | .form-row img, .form-row input {
11 | vertical-align: middle;
12 | }
13 |
14 | .form-row label input[type="checkbox"] {
15 | margin-top: 0;
16 | vertical-align: 0;
17 | }
18 |
19 | form .form-row p {
20 | padding-left: 0;
21 | }
22 |
--------------------------------------------------------------------------------
/static/admin/img/search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/admin/js/cancel.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | 'use strict';
3 | $(function() {
4 | $('.cancel-link').on('click', function(e) {
5 | e.preventDefault();
6 | if (window.location.search.indexOf('&_popup=1') === -1) {
7 | window.history.back(); // Go back if not a popup.
8 | } else {
9 | window.close(); // Otherwise, close the popup.
10 | }
11 | });
12 | });
13 | })(django.jQuery);
14 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.batch.js:
--------------------------------------------------------------------------------
1 |
2 | ;(function($){
3 |
4 | $('.batch-field-checkbox').bind('click', function(event){
5 | if (!event) { var event = window.event; }
6 | var target = event.target ? event.target : event.srcElement;
7 |
8 | var wrap = $(this).parent().parent().find('.control-wrap');
9 | if(target.checked){
10 | wrap.show('fast');
11 | } else {
12 | wrap.hide('fast');
13 | }
14 | });
15 |
16 | })(jQuery)
17 |
--------------------------------------------------------------------------------
/static/admin/img/icon-alert.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/admin/css/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto';
3 | src: url('../fonts/Roboto-Bold-webfont.woff');
4 | font-weight: 700;
5 | font-style: normal;
6 | }
7 |
8 | @font-face {
9 | font-family: 'Roboto';
10 | src: url('../fonts/Roboto-Regular-webfont.woff');
11 | font-weight: 400;
12 | font-style: normal;
13 | }
14 |
15 | @font-face {
16 | font-family: 'Roboto';
17 | src: url('../fonts/Roboto-Light-webfont.woff');
18 | font-weight: 300;
19 | font-style: normal;
20 | }
21 |
--------------------------------------------------------------------------------
/deploy_conf/nginx-app.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80 default_server;
3 | server_name localhost;
4 | charset utf-8;
5 |
6 | client_max_body_size 75M;
7 |
8 | location / {
9 | uwsgi_pass 127.0.0.1:3031;
10 | include uwsgi_params;
11 | }
12 |
13 | location /supervisor/ {
14 | proxy_pass http://127.0.0.1:9001/;
15 | }
16 |
17 | location /static {
18 | alias /django/dapi/static;
19 | }
20 |
21 | location /media {
22 | alias /django/dapi/media;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/static/admin/css/dashboard.css:
--------------------------------------------------------------------------------
1 | /* DASHBOARD */
2 |
3 | .dashboard .module table th {
4 | width: 100%;
5 | }
6 |
7 | .dashboard .module table td {
8 | white-space: nowrap;
9 | }
10 |
11 | .dashboard .module table td a {
12 | display: block;
13 | padding-right: .6em;
14 | }
15 |
16 | /* RECENT ACTIONS MODULE */
17 |
18 | .module ul.actionlist {
19 | margin-left: 0;
20 | }
21 |
22 | ul.actionlist li {
23 | list-style-type: none;
24 | overflow: hidden;
25 | text-overflow: ellipsis;
26 | -o-text-overflow: ellipsis;
27 | }
28 |
--------------------------------------------------------------------------------
/static/admin/js/prepopulate_init.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | 'use strict';
3 | var fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields');
4 | $.each(fields, function(index, field) {
5 | $('.empty-form .form-row .field-' + field.name + ', .empty-form.form-row .field-' + field.name).addClass('prepopulated_field');
6 | $(field.id).data('dependency_list', field.dependency_list).prepopulate(
7 | field.dependency_ids, field.maxLength, field.allowUnicode
8 | );
9 | });
10 | })(django.jQuery);
11 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.refresh.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.dofresh = function(){
4 | var refresh_el = $('#refresh_time');
5 | var time = parseInt(refresh_el.text());
6 | if(time == 1){
7 | refresh_el.text(0);
8 | window.location.reload();
9 | } else {
10 | refresh_el.text(time-1);
11 | setTimeout("$.dofresh()",1000)
12 | }
13 | };
14 |
15 | $(function(){
16 | var refresh_el = $('#refresh_time');
17 | if(refresh_el){
18 | setTimeout("$.dofresh()",1000)
19 | }
20 | });
21 |
22 | })(jQuery);
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.importexport.js:
--------------------------------------------------------------------------------
1 | $("#export-menu").click(function () {
2 | $("input[name='_select_across']").val($("input[name='select_across']").val());
3 | if (0 == $("input[name='select_across']").val()) {
4 | var selectedRecords = [];
5 | $.each($('.action-select'), function () {
6 | if (true == $(this).prop('checked')) {
7 | selectedRecords.push($(this).val());
8 | }
9 | });
10 | $("input[name='_selected_actions']").val(selectedRecords.join(','));
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/static/admin/img/icon-no.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/admin/img/inline-delete.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dapi/celery.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, unicode_literals
2 | import os
3 | from celery import Celery, platforms
4 | from django.utils.datetime_safe import datetime
5 |
6 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dapi.settings')
7 | # 设置默认celery命令行的环境变量
8 |
9 | app = Celery('dapi')
10 | # 实例化celery
11 |
12 | app.now = datetime.now
13 | # 解决时区问题
14 |
15 | app.config_from_object('django.conf:settings', namespace='CELERY')
16 | # 直接从Django设置中配置Celery
17 |
18 | app.autodiscover_tasks()
19 | # 从所有应用中加载任务模块tasks.py
20 |
21 | platforms.C_FORCE_ROOT = True
22 | # 解决celery不能root用户启动的问题
23 |
--------------------------------------------------------------------------------
/static/admin/img/icon-viewlink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/drf-yasg/swagger-ui-dist/absolute-path.js:
--------------------------------------------------------------------------------
1 | /*
2 | * getAbsoluteFSPath
3 | * @return {string} When run in NodeJS env, returns the absolute path to the current directory
4 | * When run outside of NodeJS, will return an error message
5 | */
6 | const getAbsoluteFSPath = function () {
7 | // detect whether we are running in a browser or nodejs
8 | if (typeof module !== "undefined" && module.exports) {
9 | return require("path").resolve(__dirname)
10 | }
11 | throw new Error('getAbsoluteFSPath can only be called within a Nodejs environment');
12 | }
13 |
14 | module.exports = getAbsoluteFSPath
15 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.bookmark.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $(function(){
4 | $('#bookmark_form').each(function(){
5 | var f = $(this);
6 | f.submit(function(e){
7 | f.find('button[type=submit]').button('loading');
8 | $.post(f.attr('action'), f.serialize(), function(data){
9 | $('#bookmark-menu .add-bookmark').remove();
10 | $('#bookmark-menu').append(' '+ data.title +'');
11 | }, 'json');
12 | return false;
13 | });
14 | });
15 | });
16 |
17 | })(jQuery);
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Korean translation for bootstrap-datepicker
3 | * Gu Youn
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['kr'] = {
7 | days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"],
8 | daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"],
9 | daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"],
10 | months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
11 | monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"]
12 | };
13 | }(jQuery));
14 |
--------------------------------------------------------------------------------
/static/admin/js/popup_response.js:
--------------------------------------------------------------------------------
1 | /*global opener */
2 | (function() {
3 | 'use strict';
4 | var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
5 | switch(initData.action) {
6 | case 'change':
7 | opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value);
8 | break;
9 | case 'delete':
10 | opener.dismissDeleteRelatedObjectPopup(window, initData.value);
11 | break;
12 | default:
13 | opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj);
14 | break;
15 | }
16 | })();
17 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/zh-TW.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Traditional Chinese translation for bootstrap-datepicker
3 | * Rung-Sheng Jang
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['zh-TW'] = {
7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
12 | };
13 | }(jQuery));
14 |
--------------------------------------------------------------------------------
/static/admin/img/icon-unknown.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/admin/img/icon-unknown-alt.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Japanese translation for bootstrap-datepicker
3 | * Norio Suzuki
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['ja'] = {
7 | days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"],
8 | daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"],
9 | daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"],
10 | months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
11 | monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
12 | today: "今日",
13 | format: "yyyy/mm/dd"
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Simplified Chinese translation for bootstrap-datepicker
3 | * Yuan Cheung
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['zh-CN'] = {
7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
12 | today: "今日"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/zh-CN.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/az.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Croatian localisation
3 | */
4 | ;(function($){
5 | $.fn.datepicker.dates['hr'] = {
6 | days: ["Nedjelja", "Ponedjelja", "Utorak", "Srijeda", "Četrtak", "Petak", "Subota", "Nedjelja"],
7 | daysShort: ["Ned", "Pon", "Uto", "Srr", "Čet", "Pet", "Sub", "Ned"],
8 | daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"],
9 | months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
10 | monthsShort: ["Sije", "Velj", "Ožu", "Tra", "Svi", "Lip", "Jul", "Kol", "Ruj", "Lis", "Stu", "Pro"],
11 | today: "Danas"
12 | };
13 | }(jQuery));
14 |
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """Django's command-line utility for administrative tasks."""
3 | import os
4 | import sys
5 |
6 |
7 | def main():
8 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dapi.settings')
9 | try:
10 | from django.core.management import execute_from_command_line
11 | except ImportError as exc:
12 | raise ImportError(
13 | "Couldn't import Django. Are you sure it's installed and "
14 | "available on your PYTHONPATH environment variable? Did you "
15 | "forget to activate a virtual environment?"
16 | ) from exc
17 | execute_from_command_line(sys.argv)
18 |
19 |
20 | if __name__ == '__main__':
21 | main()
22 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/fi.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ja.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/silk/css/cell.css:
--------------------------------------------------------------------------------
1 | .cell {
2 | display: inline-block;
3 | background-color: transparent;
4 | padding: 10px;
5 | margin-left: 10px;
6 | margin-top: 10px;
7 | border-radius: 4px;
8 | transition: background-color 0.15s ease, color 0.15s ease; }
9 | .cell div {
10 | margin: 2px; }
11 | .cell .timestamp-div {
12 | margin-bottom: 15px;
13 | font-size: 13px; }
14 | .cell .meta {
15 | font-size: 12px;
16 | color: #be5b43; }
17 | .cell .meta .unit {
18 | font-size: 9px;
19 | font-weight: lighter !important; }
20 | .cell .method-div {
21 | font-weight: bold;
22 | font-size: 20px; }
23 | .cell .path-div {
24 | font-size: 18px;
25 | margin-bottom: 15px; }
26 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_zh-CN.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Chinese translation
3 | */
4 | (function ($) {
5 | "use strict";
6 | $.extend($.fn.select2.defaults, {
7 | formatNoMatches: function () { return "没有找到匹配项"; },
8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";},
9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";},
10 | formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; },
11 | formatLoadMore: function (pageNumber) { return "加载结果中..."; },
12 | formatSearching: function () { return "搜索中..."; }
13 | });
14 | })(jQuery);
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_zh-hans.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Chinese translation
3 | */
4 | (function ($) {
5 | "use strict";
6 | $.extend($.fn.select2.defaults, {
7 | formatNoMatches: function () { return "没有找到匹配项"; },
8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";},
9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";},
10 | formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; },
11 | formatLoadMore: function (pageNumber) { return "加载结果中..."; },
12 | formatSearching: function () { return "搜索中..."; }
13 | });
14 | })(jQuery);
15 |
--------------------------------------------------------------------------------
/static/admin/img/icon-clock.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Bahasa translation for bootstrap-datepicker
3 | * Azwar Akbar
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['id'] = {
7 | days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"],
8 | daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"],
9 | daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"],
10 | months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"]
12 | };
13 | }(jQuery));
14 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/hu.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/tr.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ko.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/th.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hebrew translation for bootstrap-datepicker
3 | * Sagie Maoz
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['he'] = {
7 | days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"],
8 | daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
9 | daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
10 | months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
11 | monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
12 | today: "היום",
13 | rtl: true
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Malay translation for bootstrap-datepicker
3 | * Ateman Faiz
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['ms'] = {
7 | days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"],
8 | daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"],
9 | daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"],
10 | months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"],
12 | today: "Hari Ini"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Catalan translation for bootstrap-datepicker
3 | * J. Garcia
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['ca'] = {
7 | days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"],
8 | daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"],
9 | daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"],
10 | months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
11 | monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
12 | today: "Avui"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Danish translation for bootstrap-datepicker
3 | * Christian Pedersen
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['da'] = {
7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
10 | months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
12 | today: "I Dag"
13 | };
14 | }(jQuery));
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Serbian cyrillic translation for bootstrap-datepicker
3 | * Bojan Milosavlević
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['rs'] = {
7 | days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"],
8 | daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"],
9 | daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"],
10 | months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
11 | monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
12 | today: "Данас"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Swedish translation for bootstrap-datepicker
3 | * Patrik Ragnarsson
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['sv'] = {
7 | days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"],
8 | daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"],
9 | daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"],
10 | months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
12 | today: "I Dag"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Thai translation for bootstrap-datepicker
3 | * Suchau Jiraprapot
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['th'] = {
7 | days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
8 | daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
9 | daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
10 | months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
11 | monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
12 | today: "วันนี้"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Turkish translation for bootstrap-datepicker
3 | * Serkan Algur
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['tr'] = {
7 | days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"],
8 | daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"],
9 | daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"],
10 | months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
11 | monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
12 | today: "Bugün"
13 | };
14 | }(jQuery));
15 |
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Bulgarian translation for bootstrap-datepicker
3 | * Apostol Apostolov
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['bg'] = {
7 | days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"],
8 | daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"],
9 | daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"],
10 | months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
11 | monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
12 | today: "днес"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Spanish translation for bootstrap-datepicker
3 | * Bruno Bonamin
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['es'] = {
7 | days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"],
8 | daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"],
9 | daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"],
10 | months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
11 | monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
12 | today: "Hoy"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Dutch translation for bootstrap-datepicker
3 | * Reinier Goltstein
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['nl'] = {
7 | days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"],
8 | daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
9 | daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
10 | months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
11 | monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
12 | today: "Vandaag"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Brazilian translation for bootstrap-datepicker
3 | * Cauan Cabral
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['pt-BR'] = {
7 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
8 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
9 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
10 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
11 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
12 | today: "Hoje"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Serbian latin translation for bootstrap-datepicker
3 | * Bojan Milosavlević
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['rs'] = {
7 | days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"],
8 | daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"],
9 | daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"],
10 | months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
12 | today: "Danas"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Slovene translation for bootstrap-datepicker
3 | * Gregor Rudolf
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['sl'] = {
7 | days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"],
8 | daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"],
9 | daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"],
10 | months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
12 | today: "Danes"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/id.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/vi.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Greek translation for bootstrap-datepicker
3 | */
4 | ;(function($){
5 | $.fn.datepicker.dates['el'] = {
6 | days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"],
7 | daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"],
8 | daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"],
9 | months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
10 | monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
11 | today: "Σήμερα"
12 | };
13 | }(jQuery));
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Norwegian (bokmål) translation for bootstrap-datepicker
3 | * Fredrik Sundmyhr
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['nb'] = {
7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
12 | today: "I Dag"
13 | };
14 | }(jQuery));
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Russian translation for bootstrap-datepicker
3 | * Victor Taranenko
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['ru'] = {
7 | days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"],
8 | daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"],
9 | daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
10 | months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
11 | monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
12 | today: "Сегодня"
13 | };
14 | }(jQuery));
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/is.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Ukrainian translation for bootstrap-datepicker
3 | * Andrey Vityuk
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['uk'] = {
7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"],
8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"],
9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"],
10 | months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
11 | monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"],
12 | today: "Сьогодні"
13 | };
14 | }(jQuery));
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ar.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/de.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/et.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Romanian translation for bootstrap-datepicker
3 | * Cristian Vasile
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['ro'] = {
7 | days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"],
8 | daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"],
9 | daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"],
10 | months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
11 | monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"],
12 | today: "Astăzi",
13 | weekStart: 1
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/sv.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Czech translation for bootstrap-datepicker
3 | * Matěj Koubík
4 | * Fixes by Michal Remiš
5 | */
6 | ;(function($){
7 | $.fn.datepicker.dates['cs'] = {
8 | days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"],
9 | daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"],
10 | daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"],
11 | months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
12 | monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
13 | today: "Dnes"
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Icelandic translation for bootstrap-datepicker
3 | * Hinrik Örn Sigurðsson
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['is'] = {
7 | days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"],
8 | daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"],
9 | daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"],
10 | months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
12 | today: "Í Dag"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Portuguese translation for bootstrap-datepicker
3 | * Original code: Cauan Cabral
4 | * Tiago Melo
5 | */
6 | ;(function($){
7 | $.fn.datepicker.dates['pt'] = {
8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/bg.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/km.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/nb.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Finnish translation for bootstrap-datepicker
3 | * Jaakko Salonen
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['fi'] = {
7 | days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"],
8 | daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"],
9 | daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"],
10 | months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
11 | monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"],
12 | today: "tänään"
13 | };
14 | }(jQuery));
15 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Slovak translation for bootstrap-datepicker
3 | * Marek Lichtner
4 | * Fixes by Michal Remiš
5 | */
6 | ;(function($){
7 | $.fn.datepicker.dates["sk"] = {
8 | days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"],
9 | daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"],
10 | daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So", "Ne"],
11 | months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
13 | today: "Dnes"
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ms.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js:
--------------------------------------------------------------------------------
1 | /**
2 | * German translation for bootstrap-datepicker
3 | * Sam Zurcher
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['de'] = {
7 | days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"],
8 | daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"],
9 | daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"],
10 | months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
11 | monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
12 | today: "Heute",
13 | weekStart: 1,
14 | format: "dd.mm.yyyy"
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * French translation for bootstrap-datepicker
3 | * Nico Mollet
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['fr'] = {
7 | days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
8 | daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"],
9 | daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"],
10 | months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
11 | monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"],
12 | today: "Aujourd'hui",
13 | weekStart: 1,
14 | format: "dd/mm/yyyy"
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/admin/js/change_form.js:
--------------------------------------------------------------------------------
1 | /*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/
2 |
3 | (function($) {
4 | 'use strict';
5 | $(document).ready(function() {
6 | var modelName = $('#django-admin-form-add-constants').data('modelName');
7 | $('body').on('click', '.add-another', function(e) {
8 | e.preventDefault();
9 | var event = $.Event('django:add-another-related');
10 | $(this).trigger(event);
11 | if (!event.isDefaultPrevented()) {
12 | showAddAnotherPopup(this);
13 | }
14 | });
15 |
16 | if (modelName) {
17 | $('form#' + modelName + '_form :input:visible:enabled:first').focus();
18 | }
19 | });
20 | })(django.jQuery);
21 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/gl.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hungarian translation for bootstrap-datepicker
3 | * Sotus László
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['hu'] = {
7 | days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"],
8 | daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"],
9 | daysMin: ["Va", "Hé", "Ke", "Sz", "Cs", "Pé", "Sz", "Va"],
10 | months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"],
11 | monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"],
12 | today: "Ma",
13 | weekStart: 1,
14 | format: "yyyy.mm.dd"
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Italian translation for bootstrap-datepicker
3 | * Enrico Rubboli
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['it'] = {
7 | days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"],
8 | daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"],
9 | daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"],
10 | months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
11 | monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
12 | today: "Oggi",
13 | weekStart: 1,
14 | format: "dd/mm/yyyy"
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_hu.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Hungarian translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Nincs találat."; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " kerekterrel több mint kellene."; },
11 | formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; },
12 | formatLoadMore: function (pageNumber) { return "Töltés..."; },
13 | formatSearching: function () { return "Keresés..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/da.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/silk/js/cell.js:
--------------------------------------------------------------------------------
1 | function configureSpanFontColors(selector, okValue, badValue) {
2 | selector.each(function () {
3 | var val = parseFloat($(this).text());
4 | if (val < okValue) {
5 | $(this).addClass('very-good-font-color');
6 | }
7 | else if (val < badValue) {
8 | $(this).addClass('ok-font-color');
9 | }
10 | else {
11 | $(this).addClass('very-bad-font-color');
12 | }
13 | });
14 | }
15 |
16 | function configureFontColors() {
17 | configureSpanFontColors($('.time-taken-div .numeric'), 200, 500);
18 | configureSpanFontColors($('.time-taken-queries-div .numeric'), 50, 200);
19 | configureSpanFontColors($('.num-queries-div .numeric'), 10, 50);
20 | }
21 |
22 | $(document).ready(function () {
23 | configureFontColors();
24 | });
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/en.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/he.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/hi.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Latvian translation for bootstrap-datepicker
3 | * Artis Avotins
4 | */
5 |
6 | ;(function($){
7 | $.fn.datepicker.dates['lv'] = {
8 | days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"],
9 | daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"],
10 | daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"],
11 | months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."],
13 | today: "Šodien",
14 | weekStart: 1
15 | };
16 | }(jQuery));
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/fa.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها میتوانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/hr.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/mk.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/eu.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_de.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 German translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; },
11 | formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; },
12 | formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse..."; },
13 | formatSearching: function () { return "Suche..."; }
14 | });
15 | })(jQuery);
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/pt-BR.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_tr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Turkish translation.
3 | *
4 | * Author: Salim KAYABAŞI
5 | */
6 | (function ($) {
7 | "use strict";
8 |
9 | $.extend($.fn.select2.defaults, {
10 | formatNoMatches: function () { return "Sonuç bulunamadı"; },
11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; },
12 | formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; },
13 | formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; },
14 | formatLoadMore: function (pageNumber) { return "Daha fazla ..."; },
15 | formatSearching: function () { return "Aranıyor..."; }
16 | });
17 | })(jQuery);
18 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/pt.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_en.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 English translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "No matches found"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1 ? "" : "s"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); },
11 | formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
12 | formatLoadMore: function (pageNumber) { return "Loading more results..."; },
13 | formatSearching: function () { return "Searching..."; }
14 | });
15 | })(jQuery);
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/lv.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/es.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Lithuanian translation for bootstrap-datepicker
3 | * Šarūnas Gliebus
4 | */
5 |
6 | ;(function($){
7 | $.fn.datepicker.dates['lt'] = {
8 | days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"],
9 | daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"],
10 | daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"],
11 | months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
12 | monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
13 | today: "Šiandien",
14 | weekStart: 1
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_nl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Dutch translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Geen resultaten gevonden"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " meer in"; },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " minder in"; },
11 | formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; },
12 | formatLoadMore: function (pageNumber) { return "Meer resultaten laden..."; },
13 | formatSearching: function () { return "Zoeken..."; },
14 | });
15 | })(jQuery);
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ca.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/import_export/action_formats.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | $(document).ready(function() {
3 | var $actionsSelect, $formatsElement;
4 | if ($('body').hasClass('grp-change-list')) {
5 | // using grappelli
6 | $actionsSelect = $('#grp-changelist-form select[name="action"]');
7 | $formatsElement = $('#grp-changelist-form select[name="file_format"]');
8 | } else {
9 | // using default admin
10 | $actionsSelect = $('#changelist-form select[name="action"]');
11 | $formatsElement = $('#changelist-form select[name="file_format"]').parent();
12 | }
13 | $actionsSelect.change(function() {
14 | if ($(this).val() === 'export_admin_action') {
15 | $formatsElement.show();
16 | } else {
17 | $formatsElement.hide();
18 | }
19 | });
20 | $actionsSelect.change();
21 | });
22 | })(django.jQuery);
23 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_sv.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Swedish translation.
3 | *
4 | * Author: Jens Rantil
5 | */
6 | (function ($) {
7 | "use strict";
8 |
9 | $.extend($.fn.select2.defaults, {
10 | formatNoMatches: function () { return "Inga träffar"; },
11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); },
12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; },
13 | formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; },
14 | formatLoadMore: function (pageNumber) { return "Laddar fler resultat..."; },
15 | formatSearching: function () { return "Söker..."; }
16 | });
17 | })(jQuery);
18 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/it.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Polish translation for bootstrap-datepicker
3 | * Robert
4 | */
5 | ;(function($){
6 | $.fn.datepicker.dates['pl'] = {
7 | days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"],
8 | daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"],
9 | daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"],
10 | months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
11 | monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"],
12 | today: "Dzisiaj",
13 | weekStart: 1
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Swahili translation for bootstrap-datepicker
3 | * Edwin Mugendi
4 | * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku
5 | */
6 | ;(function($){
7 | $.fn.datepicker.dates['sw'] = {
8 | days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"],
9 | daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"],
10 | daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"],
11 | months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
12 | monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
13 | today: "Leo"
14 | };
15 | }(jQuery));
16 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_es.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Spanish translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "No se encontraron resultados"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor adicione " + n + " caracter" + (n == 1? "" : "es"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor elimine " + n + " caracter" + (n == 1? "" : "es"); },
11 | formatSelectionTooBig: function (limit) { return "Solo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); },
12 | formatLoadMore: function (pageNumber) { return "Cargando más resultados..."; },
13 | formatSearching: function () { return "Buscando..."; }
14 | });
15 | })(jQuery);
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_it.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Italian translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Nessuna corrispondenza trovata"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; },
11 | formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); },
12 | formatLoadMore: function (pageNumber) { return "Caricamento in corso..."; },
13 | formatSearching: function () { return "Ricerca..."; }
14 | });
15 | })(jQuery);
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_pt-BR.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Brazilian Portuguese translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Informe " + n + " caracter" + (n == 1? "" : "es"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caracter" + (n == 1? "" : "es"); },
11 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); },
12 | formatLoadMore: function (pageNumber) { return "Carregando mais resultados..."; },
13 | formatSearching: function () { return "Buscando..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/fr.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ro.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_pt-PT.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Portuguese (Portugal) translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " caracter" + (n == 1 ? "" : "es"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caracter" + (n == 1 ? "" : "es"); },
11 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); },
12 | formatLoadMore: function (pageNumber) { return "A carregar mais resultados..."; },
13 | formatSearching: function () { return "A pesquisar..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/nl.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/drf-yasg/swagger-ui-dist/index.js:
--------------------------------------------------------------------------------
1 | try {
2 | module.exports.SwaggerUIBundle = require("./swagger-ui-bundle.js")
3 | module.exports.SwaggerUIStandalonePreset = require("./swagger-ui-standalone-preset.js")
4 | } catch(e) {
5 | // swallow the error if there's a problem loading the assets.
6 | // allows this module to support providing the assets for browserish contexts,
7 | // without exploding in a Node context.
8 | //
9 | // see https://github.com/swagger-api/swagger-ui/issues/3291#issuecomment-311195388
10 | // for more information.
11 | }
12 |
13 | // `absolutePath` and `getAbsoluteFSPath` are both here because at one point,
14 | // we documented having one and actually implemented the other.
15 | // They were both retained so we don't break anyone's code.
16 | module.exports.absolutePath = require("./absolute-path.js")
17 | module.exports.getAbsoluteFSPath = require("./absolute-path.js")
18 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/lt.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_ro.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Romanian translation.
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Nu a fost găsit nimic"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); },
11 | formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); },
12 | formatLoadMore: function (pageNumber) { return "Se încarcă..."; },
13 | formatSearching: function () { return "Căutare..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/pl.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/el.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/sr.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/uk.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_fr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 French translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Aucun résultat trouvé"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de plus"; },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de moins"; },
11 | formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); },
12 | formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires..."; },
13 | formatSearching: function () { return "Recherche en cours..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/sr-Cyrl.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/rest_framework/css/prettify.css:
--------------------------------------------------------------------------------
1 | .com { color: #93a1a1; }
2 | .lit { color: #195f91; }
3 | .pun, .opn, .clo { color: #93a1a1; }
4 | .fun { color: #dc322f; }
5 | .str, .atv { color: #D14; }
6 | .kwd, .prettyprint .tag { color: #1e347b; }
7 | .typ, .atn, .dec, .var { color: teal; }
8 | .pln { color: #48484c; }
9 |
10 | .prettyprint {
11 | padding: 8px;
12 | background-color: #f7f7f9;
13 | border: 1px solid #e1e1e8;
14 | }
15 | .prettyprint.linenums {
16 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
17 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
18 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
19 | }
20 |
21 | /* Specify class=linenums on a pre to get line numbering */
22 | ol.linenums {
23 | margin: 0 0 0 33px; /* IE indents via margin-left */
24 | }
25 | ol.linenums li {
26 | padding-left: 12px;
27 | color: #bebec5;
28 | line-height: 20px;
29 | text-shadow: 0 1px 0 #fff;
30 | }
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/ru.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_ru.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Russian translation
3 | */
4 | (function ($) {
5 | "use strict";
6 |
7 | $.extend($.fn.select2.defaults, {
8 | formatNoMatches: function () { return "Совпадений не найдено"; },
9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Пожалуйста, введите еще " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5) ? "а" : "ов")); },
10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Пожалуйста, введите на " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5)? "а" : "ов")) + " меньше"; },
11 | formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit == 1 ? "" : ((limit > 1)&&(limit < 5)? "а" : "ов")); },
12 | formatLoadMore: function (pageNumber) { return "Загрузка данных..."; },
13 | formatSearching: function () { return "Поиск..."; }
14 | });
15 | })(jQuery);
16 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.page.dashboard.css:
--------------------------------------------------------------------------------
1 |
2 | .dashboard.container-fluid {
3 | padding-left: 0px;
4 | }
5 | .dashboard .column{
6 | min-height: 60px;
7 | }
8 |
9 | .widget {
10 | }
11 | .widget_options {
12 | }
13 |
14 | /* Quick Buttons
15 | =================================================================== */
16 | .qbutton .panel-body {
17 | padding-top: 5px;
18 | }
19 | .btn-quick {
20 | margin-top: 10px;
21 | padding: 20px 0px 0px 0px;
22 | font-size: 15px;
23 | display:block;
24 | text-align: center;
25 | cursor: pointer;
26 | position: relative;
27 | }
28 | .btn-quick i {
29 | font-size: 32px;
30 | }
31 |
32 | /* Quick Buttons Small
33 | =================================================================== */
34 |
35 | .btn-quick-small {
36 | border-radius: 3px;
37 | padding: 15px 0px 0px 0px;
38 | font-size: 10px;
39 | display:block;
40 | text-align: center;
41 | cursor: pointer;
42 | position: relative;
43 | }
44 |
45 | .btn-quick-small i {
46 | font-size: 20px;
47 | }
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.revision.js:
--------------------------------------------------------------------------------
1 | jQuery(function($){
2 | $('.diff_field').each(function(){
3 | var el = $(this);
4 | var textarea = el.find('textarea.org-data');
5 | var title = el.data('org-data') || el.attr('title');
6 | if(textarea.length){
7 | title = textarea.val();
8 | }
9 | el.find('.controls').tooltip({
10 | title: title,
11 | html: true
12 | })
13 | });
14 |
15 | $('.formset-content .formset-row').each(function(){
16 | var row = $(this);
17 | var del = row.find('input[id $= "-DELETE"]');
18 | if(del.val() == 'on' || del.val() == 'True'){
19 | row.addClass('row-deleted');
20 | del.val('on');
21 | }
22 | var idinput = row.find('input[id $= "-id"]');
23 | if(idinput.val() == '' || idinput.val() == undefined){
24 | row.addClass('row-added');
25 | row.find('.formset-num').html(gettext('New Item'));
26 | }
27 | });
28 | });
--------------------------------------------------------------------------------
/static/admin/js/collapse.min.js:
--------------------------------------------------------------------------------
1 | (function(){var e=function(b,a){return b.nodeName===a.toUpperCase()?b:"BODY"===b.parentNode.nodeName?null:b.parentNode&&e(b.parentNode,a)};window.addEventListener("load",function(){for(var b=document.querySelectorAll("fieldset.collapse"),a=0;a轻量级测试平台
' /usr/local/lib/python3.6/dist-packages/xadmin/templates/xadmin/views/login.html && \
15 | sed -i '30,31c ' /usr/local/lib/python3.6/dist-packages/xadmin/templates/xadmin/base.html
16 | # 修改Django源码
17 |
18 | RUN mkdir /django/dapi/media/
19 | # 创建/django/dapi/media目录
20 |
21 | EXPOSE 80
22 | # 暴露80端口
23 |
24 | ENTRYPOINT ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
25 | # 启动supervisor并加载配置文件
26 |
--------------------------------------------------------------------------------
/deploy_conf/uwsgi.ini:
--------------------------------------------------------------------------------
1 | [uwsgi]
2 | socket = 127.0.0.1:3031
3 | ;Socket套接字
4 | socket-timeout = 60
5 | ;连接超时时间
6 |
7 | chdir = /django/dapi
8 | ;工程的绝对路径
9 | wsgi-file = dapi/wsgi.py
10 | ;wsgi.py的相对路径
11 |
12 | master = true
13 | ;启用主进程
14 | enable-threads = true
15 | ;启用线程支持
16 | processes = 4
17 | ;4个线程,每个进程有2个线程
18 | threads = 2
19 | ;2个进程
20 | ;uWSGI默认单个进程和单个线程
21 | harakiri = 60
22 | ;销毁被阻止超过60秒的进程
23 | harakiri-verbose = true
24 | ;记录harakiri日志
25 |
26 | uid = root
27 | gid = root
28 | ;启动uwsgi的用户名和用户组
29 |
30 | buffer-size = 65535
31 | ;内部缓存区大小为64k,默认4k
32 | max-requests = 65535
33 | ;每个进程的最大请求数
34 |
35 | stats = 127.0.0.1:9191
36 | ;stats子系统将uWSGI的内部统计信息导出为JSON
37 | memory-report = true
38 | ;开启内存使用情况报告
39 |
40 | pidfile = %(chdir)/uwsgi.pid
41 | ;pid文件
42 |
43 | vacuum = true
44 | ;当服务停止的时候,自动清理Unix Socket和pid文件
45 |
46 | disable-logging = true
47 | ;不记录请求日志
48 | ;logto = %(chdir)/uwsgi.log
49 | ;将日志打到指定的日志文件
50 | ;daemonize = %(chdir)/uwsgi.log
51 | ;使进程在后台运行
52 | ;log-maxsize = 20971520
53 | ;设置日志文件最大为20M
54 |
55 | pythonpath = /usr/local/lib/python3.6/dist-packages
56 | ;指定python3库的环境,操作系统是Ubuntu18.04
57 |
--------------------------------------------------------------------------------
/static/admin/img/gis/move_vertex_on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/admin/img/icon-calendar.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/static/admin/img/gis/move_vertex_off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.portal.js:
--------------------------------------------------------------------------------
1 | jQuery(function() {
2 | $( ".column" ).sortable({
3 | connectWith: ".column",
4 | handle: '.panel-heading',
5 | forcePlaceholderSize: true,
6 | cursor: "move",
7 | cancel: ".unsort, .tab-content",
8 | stop: function( event, ui ) {
9 | var pos = [];
10 | $('.column').each(function(){
11 | var col = [];
12 | $(this).find('.panel').each(function(){
13 | col.push($(this).attr('id'));
14 | });
15 | pos.push(col.join(','));
16 | });
17 | var pos_val = pos.join('|');
18 | var key = $('#_portal_key').val();
19 | $.save_user_settings(key, pos_val, function(){
20 | //alert('success');
21 | });
22 | }
23 | });
24 |
25 | $( ".panel-heading .icon.chevron" ).click(function() {
26 | $( this ).toggleClass( "fa fa-chevron-up" ).toggleClass( "fa fa-chevron-down" );
27 | $( this ).parents( ".panel:first" ).find( ".panel-body" ).toggle('fast');
28 | });
29 |
30 | });
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/sk.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/img/calendar-icons.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/static/admin/img/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Code Charm Ltd
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_ua.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 translation.
3 | *
4 | * Author: bigmihail
5 | */
6 | (function ($) {
7 | "use strict";
8 |
9 | $.extend($.fn.select2.defaults, {
10 | formatNoMatches: function () { return "Нічого не знайдено"; },
11 | formatInputTooShort: function (input, min) { var n = min - input.length, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка ще " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ]; },
12 | formatInputTooLong: function (input, max) { var n = input.length - max, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка на " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ] + " менше"; },
13 | formatSelectionTooBig: function (limit) {var s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Ви можете вибрати лише " + limit + " елемент" + s[ (limit%100>4 && limit%100<=20)? 2 : p[Math.min(limit%10, 5)] ]; },
14 | formatLoadMore: function (pageNumber) { return "Завантаження даних..."; },
15 | formatSearching: function () { return "Пошук..."; }
16 | });
17 | })(jQuery);
18 |
--------------------------------------------------------------------------------
/static/admin/img/sorting-icons.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/i18n/cs.js:
--------------------------------------------------------------------------------
1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 |
3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();
--------------------------------------------------------------------------------
/static/admin/js/vendor/xregexp/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2007-2012 Steven Levithan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/select2/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/static/admin/css/vendor/select2/LICENSE-SELECT2.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.page.list.js:
--------------------------------------------------------------------------------
1 | jQuery(function($){
2 | //full screen btn
3 | $('.layout-btns .layout-full').click(function(e){
4 | var icon = $(this).find('i')
5 | if($(this).hasClass('active')){
6 | // reset
7 | $('#left-side, ul.breadcrumb').show('fast');
8 | $('#content-block').removeClass('col-md-12 col-sm-12 full-content').addClass('col-sm-11 col-md-10');
9 | icon.removeClass('fa-compress').addClass('fa-expand');
10 | $(window).trigger('resize');
11 | } else {
12 | // full screen
13 | $('#left-side, ul.breadcrumb').hide('fast', function(){
14 | $('#content-block').removeClass('col-sm-11 col-md-10').addClass('col-md-12 col-sm-12 full-content');
15 | icon.removeClass('fa-expand').addClass('fa-compress');
16 | $(window).trigger('resize');
17 | });
18 | }
19 | });
20 |
21 | $('.layout-btns .layout-normal').click(function(e){
22 | $('.results table').removeClass('table-condensed');
23 | });
24 |
25 | $('.layout-btns .layout-condensed').click(function(e){
26 | $('.results table').addClass('table-condensed');
27 | });
28 |
29 | });
--------------------------------------------------------------------------------
/static/admin/js/autocomplete.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | 'use strict';
3 | var init = function($element, options) {
4 | var settings = $.extend({
5 | ajax: {
6 | data: function(params) {
7 | return {
8 | term: params.term,
9 | page: params.page
10 | };
11 | }
12 | }
13 | }, options);
14 | $element.select2(settings);
15 | };
16 |
17 | $.fn.djangoAdminSelect2 = function(options) {
18 | var settings = $.extend({}, options);
19 | $.each(this, function(i, element) {
20 | var $element = $(element);
21 | init($element, settings);
22 | });
23 | return this;
24 | };
25 |
26 | $(function() {
27 | // Initialize all autocomplete widgets except the one in the template
28 | // form used when a new formset is added.
29 | $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2();
30 | });
31 |
32 | $(document).on('formset:added', (function() {
33 | return function(event, $newFormset) {
34 | return $newFormset.find('.admin-autocomplete').djangoAdminSelect2();
35 | };
36 | })(this));
37 | }(django.jQuery));
38 |
--------------------------------------------------------------------------------
/static/rest_framework/docs/css/jquery.json-view.min.css:
--------------------------------------------------------------------------------
1 | .json-view{position:relative}
2 | .json-view .collapser{width:20px;height:18px;display:block;position:absolute;left:-1.7em;top:-.2em;z-index:5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYGBgOADE%2F3Hgw0DM4IRHgSsDFOzFInmMAQnY49ONzZRjDFiADT7dMLALiE8y4AGW6LoBAgwAuIkf%2F%2FB7O9sAAAAASUVORK5CYII%3D);background-repeat:no-repeat;background-position:center center;opacity:.5;cursor:pointer}
3 | .json-view .collapsed{-ms-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-khtml-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}
4 | .json-view .bl{display:block;padding-left:20px;margin-left:-20px;position:relative}
5 | .json-view{font-family:monospace}
6 | .json-view ul{list-style-type:none;padding-left:2em;border-left:1px dotted;margin:.3em}
7 | .json-view ul li{position:relative}
8 | .json-view .comments,.json-view .dots{display:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}
9 | .json-view .comments{padding-left:.8em;font-style:italic;color:#888}
10 | .json-view .bool,.json-view .null,.json-view .num,.json-view .undef{font-weight:700;color:#1A01CC}
11 | .json-view .str{color:#800}
--------------------------------------------------------------------------------
/static/drf-yasg/style.css:
--------------------------------------------------------------------------------
1 | html {
2 | box-sizing: border-box;
3 | overflow: -moz-scrollbars-vertical;
4 | overflow-y: scroll;
5 | }
6 |
7 | *,
8 | *:before,
9 | *:after {
10 | box-sizing: inherit;
11 | }
12 |
13 | body {
14 | margin: 0;
15 | padding: 0;
16 | }
17 |
18 | body.swagger-body {
19 | background: #fafafa;
20 | }
21 |
22 | .hidden {
23 | display: none;
24 | }
25 |
26 | #django-session-auth > div {
27 | display: inline-block;
28 | }
29 |
30 | #django-session-auth .btn.authorize {
31 | padding: 10px 23px;
32 | }
33 |
34 | #django-session-auth .btn.authorize a {
35 | color: #49cc90;
36 | text-decoration: none;
37 | }
38 |
39 | #django-session-auth .hello {
40 | margin-right: 5px;
41 | }
42 |
43 | #django-session-auth .hello .django-session {
44 | font-weight: bold;
45 | }
46 |
47 | .label {
48 | display: inline;
49 | padding: .2em .6em .3em;
50 | font-weight: 700;
51 | line-height: 1;
52 | color: #fff;
53 | text-align: center;
54 | white-space: nowrap;
55 | vertical-align: baseline;
56 | border-radius: .25em;
57 | }
58 |
59 | .label-primary {
60 | background-color: #337ab7;
61 | }
62 |
63 | .divider {
64 | margin-right: 8px;
65 | background: #16222c44;
66 | width: 2px;
67 | }
68 |
69 | svg.swagger-defs {
70 | position: absolute;
71 | width: 0;
72 | height: 0;
73 | }
74 |
--------------------------------------------------------------------------------
/static/admin/js/vendor/jquery/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright jQuery Foundation and other contributors, https://jquery.org/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | ====
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.
27 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.widget.editable.css:
--------------------------------------------------------------------------------
1 | .editable-handler .popover{
2 | width: auto;
3 | }
4 | .editable .popover-title{
5 | white-space:nowrap;
6 | }
7 | .editable .popover-title .close {
8 | margin: -4px 0px 0px 10px;
9 | }
10 | .editable form .btn-ajax{
11 | display: none;
12 | }
13 | .editable form .control-wrap{
14 | padding-right: 0px;
15 | }
16 | .editable form{
17 | margin-bottom: 0px;
18 | }
19 | .editable form .controls{
20 | margin: 0px;
21 | padding: 0px !important;
22 | border: 0px;
23 | }
24 | .editable form .form-group {
25 | margin: 0px 0px 10px !important;
26 | }
27 | .editable form .control-label{
28 | display: none;
29 | }
30 | .editable form .controls label {
31 | white-space:nowrap;
32 | }
33 |
34 | @media (min-width: 768px) {
35 | .editable form .text-field,
36 | .editable form .textinput {
37 | width: 200px;
38 | }
39 | .editable form .int-field {
40 | width: 150px;
41 | }
42 | .editable form .textarea-field{
43 | width: 250px;
44 | height: 50px;
45 | }
46 |
47 | .editable form select,
48 | .editable form .select2-container {
49 | max-width: 200px;
50 | min-width: 100px;
51 | width: 100%;
52 | }
53 | }
54 | @media (max-width: 767px) {
55 | .popover.editpop{
56 | position: fixed;
57 | top: 30px !important;
58 | left: 10px !important;
59 | right: 10px !important;
60 | z-index: 1040;
61 | max-width: none;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.plugin.formset.css:
--------------------------------------------------------------------------------
1 |
2 | .empty-form {
3 | display: none;
4 | }
5 | .formset:not(.one) > .panel-body {
6 | padding-top: 0px !important;
7 | }
8 | .formset .row-deleted{
9 | background: #fff0f0 !important;
10 | }
11 | .formset .row-added {
12 | background: #d1ffdd !important;
13 | }
14 | .formset .formset-heading{
15 | padding: 10px;
16 | border-bottom: 1px solid #EEE;
17 | }
18 | .formset .row-deleted .formset-form {
19 | display: none;
20 | }
21 | .formset .box-content.accordion {
22 | margin: 0px;
23 | padding: 5px 5px 3px;
24 | }
25 | .formset .formset-form {
26 | padding-left: 15px;
27 | padding-right: 15px;
28 | }
29 | .formset .accordion-heading .delete-row {
30 | float: right;
31 | margin: 8px;
32 | }
33 | .formset .nav{
34 | margin-bottom: 5px;
35 | }
36 | .formset .nav.nav-tabs{
37 | padding: 10px 10px 0px;
38 | }
39 | .formset .panel-body.tabs {
40 | padding-left: 0px;
41 | padding-right: 0px;
42 | }
43 | .formset .box-content.tabs{
44 | padding: 5px 0px 0px;
45 | }
46 | .formset .tabs .tab-content{
47 | overflow: hidden;
48 | }
49 | .formset .tabs .delete-row{
50 | float: right;
51 | margin: 8px 8px;
52 | }
53 | .formset .table{
54 | margin-bottom: 0px;
55 | }
56 | .formset .table td{
57 | padding: 4px;
58 | }
59 |
60 | .formset .table td .delete-row{
61 | margin-top: 4px;
62 | display: block;
63 | }
64 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_eu.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Basque translation.
3 | *
4 | * Author: Julen Ruiz Aizpuru
5 | */
6 | (function ($) {
7 | "use strict";
8 |
9 | $.extend($.fn.select2.defaults, {
10 | formatNoMatches: function () {
11 | return "Ez da bat datorrenik aurkitu";
12 | },
13 | formatInputTooShort: function (input, min) {
14 | var n = min - input.length;
15 | if (n === 1) {
16 | return "Idatzi karaktere bat gehiago";
17 | } else {
18 | return "Idatzi " + n + " karaktere gehiago";
19 | }
20 | },
21 | formatInputTooLong: function (input, max) {
22 | var n = input.length - max;
23 | if (n === 1) {
24 | return "Idatzi karaktere bat gutxiago";
25 | } else {
26 | return "Idatzi " + n + " karaktere gutxiago";
27 | }
28 | },
29 | formatSelectionTooBig: function (limit) {
30 | if (limit === 1 ) {
31 | return "Elementu bakarra hauta dezakezu";
32 | } else {
33 | return limit + " elementu hauta ditzakezu soilik";
34 | }
35 | },
36 | formatLoadMore: function (pageNumber) {
37 | return "Emaitza gehiago kargatzen...";
38 | },
39 | formatSearching: function () {
40 | return "Bilatzen...";
41 | }
42 | });
43 | })(jQuery);
44 |
--------------------------------------------------------------------------------
/static/rest_framework/js/default.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | // JSON highlighting.
3 | prettyPrint();
4 |
5 | // Bootstrap tooltips.
6 | $('.js-tooltip').tooltip({
7 | delay: 1000,
8 | container: 'body'
9 | });
10 |
11 | // Deal with rounded tab styling after tab clicks.
12 | $('a[data-toggle="tab"]:first').on('shown', function(e) {
13 | $(e.target).parents('.tabbable').addClass('first-tab-active');
14 | });
15 |
16 | $('a[data-toggle="tab"]:not(:first)').on('shown', function(e) {
17 | $(e.target).parents('.tabbable').removeClass('first-tab-active');
18 | });
19 |
20 | $('a[data-toggle="tab"]').click(function() {
21 | document.cookie = "tabstyle=" + this.name + "; path=/";
22 | });
23 |
24 | // Store tab preference in cookies & display appropriate tab on load.
25 | var selectedTab = null;
26 | var selectedTabName = getCookie('tabstyle');
27 |
28 | if (selectedTabName) {
29 | selectedTabName = selectedTabName.replace(/[^a-z-]/g, '');
30 | }
31 |
32 | if (selectedTabName) {
33 | selectedTab = $('.form-switcher a[name=' + selectedTabName + ']');
34 | }
35 |
36 | if (selectedTab && selectedTab.length > 0) {
37 | // Display whichever tab is selected.
38 | selectedTab.tab('show');
39 | } else {
40 | // If no tab selected, display rightmost tab.
41 | $('.form-switcher a:first').tab('show');
42 | }
43 |
44 | $(window).on('load', function() {
45 | $('#errorModal').modal('show');
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/snapjs/snap.css:
--------------------------------------------------------------------------------
1 |
2 | .snap-content {
3 | position: absolute;
4 | top: 0;
5 | right: 0;
6 | bottom: 0;
7 | left: 0;
8 | width: auto;
9 | height: auto;
10 | z-index: 2;
11 | overflow: auto;
12 | -webkit-overflow-scrolling: touch;
13 | -webkit-transform: translate3d(0, 0, 0);
14 | -moz-transform: translate3d(0, 0, 0);
15 | -ms-transform: translate3d(0, 0, 0);
16 | -o-transform: translate3d(0, 0, 0);
17 | transform: translate3d(0, 0, 0);
18 | }
19 |
20 | .snap-drawers {
21 | position: absolute;
22 | top: 0;
23 | right: 0;
24 | bottom: 0;
25 | left: 0;
26 | width: auto;
27 | height: auto;
28 | }
29 |
30 | .snap-drawer {
31 | position: absolute;
32 | top: 0;
33 | right: auto;
34 | bottom: 0;
35 | left: auto;
36 | width: 265px;
37 | height: auto;
38 | overflow: auto;
39 | -webkit-overflow-scrolling: touch;
40 | -webkit-transition: width 0.3s ease;
41 | -moz-transition: width 0.3s ease;
42 | -ms-transition: width 0.3s ease;
43 | -o-transition: width 0.3s ease;
44 | transition: width 0.3s ease;
45 | }
46 |
47 | .snap-drawer-left {
48 | left: 0;
49 | z-index: 1;
50 | }
51 |
52 | .snap-drawer-right {
53 | right: 0;
54 | z-index: 1;
55 | }
56 |
57 | .snapjs-left .snap-drawer-right,
58 | .snapjs-right .snap-drawer-left {
59 | display: none;
60 | }
61 |
62 | .snapjs-expand-left .snap-drawer-left,
63 | .snapjs-expand-right .snap-drawer-right {
64 | width: 100%;
65 | }
66 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.widget.select.js:
--------------------------------------------------------------------------------
1 | ;(function($){
2 | // add select render
3 | $.fn.exform.renders.push(function(f){
4 | if($.fn.selectize){
5 | f.find('select:not(.select-search):not([multiple=multiple])').selectize();
6 | f.find('.select-search').each(function(){
7 | var $el = $(this);
8 | var preload = $el.hasClass('select-preload');
9 | $el.selectize({
10 | valueField: 'id',
11 | labelField: '__str__',
12 | searchField: '__str__',
13 | create: false,
14 | maxItems: 1,
15 | preload: preload,
16 | load: function(query, callback) {
17 | if(!preload && !query.length) return callback();
18 | $.ajax({
19 | url: $el.data('search-url')+$el.data('choices'),
20 | dataType: 'json',
21 | data: {
22 | '_q_' : query,
23 | '_cols': 'id.__str__'
24 | },
25 | type: 'GET',
26 | error: function() {
27 | callback();
28 | },
29 | success: function(res) {
30 | callback(res.objects);
31 | }
32 | });
33 | }
34 | });
35 | })
36 | }});
37 | })(jQuery)
38 |
39 |
--------------------------------------------------------------------------------
/static/rest_framework/css/default.css:
--------------------------------------------------------------------------------
1 | /* The navbar is fixed at >= 980px wide, so add padding to the body to prevent
2 | content running up underneath it. */
3 |
4 | h1 {
5 | font-weight: 300;
6 | }
7 |
8 | h2, h3 {
9 | font-weight: 300;
10 | }
11 |
12 | .resource-description, .response-info {
13 | margin-bottom: 2em;
14 | }
15 |
16 | .version:before {
17 | content: "v";
18 | opacity: 0.6;
19 | padding-right: 0.25em;
20 | }
21 |
22 | .version {
23 | font-size: 70%;
24 | }
25 |
26 | .format-option {
27 | font-family: Menlo, Consolas, "Andale Mono", "Lucida Console", monospace;
28 | }
29 |
30 | .button-form {
31 | float: right;
32 | margin-right: 1em;
33 | }
34 |
35 | td.nested {
36 | padding: 0 !important;
37 | }
38 |
39 | td.nested > table {
40 | margin: 0;
41 | }
42 |
43 | form select, form input, form textarea {
44 | width: 90%;
45 | }
46 |
47 | form select[multiple] {
48 | height: 150px;
49 | }
50 |
51 | /* To allow tooltips to work on disabled elements */
52 | .disabled-tooltip-shield {
53 | position: absolute;
54 | top: 0;
55 | right: 0;
56 | bottom: 0;
57 | left: 0;
58 | }
59 |
60 | .errorlist {
61 | margin-top: 0.5em;
62 | }
63 |
64 | pre {
65 | overflow: auto;
66 | word-wrap: normal;
67 | white-space: pre;
68 | font-size: 12px;
69 | }
70 |
71 | .page-header {
72 | border-bottom: none;
73 | padding-bottom: 0px;
74 | }
75 |
76 | #filtersModal form input[type=submit] {
77 | width: auto;
78 | }
79 |
80 | #filtersModal .modal-body h2 {
81 | margin-top: 0
82 | }
83 |
--------------------------------------------------------------------------------
/static/silk/js/filters.js:
--------------------------------------------------------------------------------
1 |
2 | function configureResizingInputs() {
3 | var $inputs = $('.resizing-input');
4 |
5 | function resizeForText(text) {
6 | var $this = $(this);
7 | if (!text.trim()) {
8 | text = $this.attr('placeholder').trim();
9 | }
10 | var $span = $this.parent().find('span');
11 | $span.text(text);
12 | var $inputSize = $span.width();
13 | $this.css("width", $inputSize);
14 | }
15 |
16 | $inputs.find('input').keypress(function (e) {
17 | if (e.which && e.charCode) {
18 | var c = String.fromCharCode(e.keyCode | e.charCode);
19 | var $this = $(this);
20 | resizeForText.call($this, $this.val() + c);
21 | }
22 | });
23 |
24 | $inputs.find('input').keyup(function (e) { // Backspace event only fires for keyup
25 | if (e.keyCode === 8 || e.keyCode === 46) {
26 | resizeForText.call($(this), $(this).val());
27 | }
28 | });
29 |
30 | $inputs.find('input').each(function () {
31 | var $this = $(this);
32 | resizeForText.call($this, $this.val())
33 | });
34 |
35 |
36 | $('.resizing-input .datetimepicker').datetimepicker({
37 | step: 10,
38 | onChangeDateTime: function (dp, $input) {
39 | resizeForText.call($input, $input.val())
40 | }
41 | });
42 |
43 | }
44 |
45 | /**
46 | * Entry point for filter initialisation.
47 | */
48 | function initFilters() {
49 | configureResizingInputs();
50 | }
--------------------------------------------------------------------------------
/deploy_conf/supervisor-app.conf:
--------------------------------------------------------------------------------
1 | [supervisord]
2 | nodaemon=true
3 |
4 | [program:nginx-app]
5 | command = /usr/sbin/nginx -g 'daemon off;'
6 | autostart = true
7 | startsecs = 5
8 | autorestart = true
9 | startretries = 3
10 | user = root
11 | stdout_logfile = /etc/supervisor/nginx-app.log
12 | stderr_logfile = /etc/supervisor/nginx-app-err.log
13 |
14 | [program:redis-app]
15 | command = /usr/bin/redis-server
16 | autostart = true
17 | startsecs = 5
18 | autorestart = true
19 | startretries = 3
20 | user = root
21 | stdout_logfile = /dev/stdout
22 | stdout_logfile_maxbytes = 0
23 | redirect_stderr = true
24 |
25 | [program:uwsgi-app]
26 | directory = /django/dapi/
27 | command = /usr/local/bin/uwsgi --ini /django/dapi/deploy_conf/uwsgi.ini
28 | autostart = true
29 | startsecs = 5
30 | autorestart = true
31 | startretries = 3
32 | user = root
33 | stdout_logfile = /dev/stdout
34 | stdout_logfile_maxbytes = 0
35 | redirect_stderr = true
36 |
37 | [program:celery-worker-app]
38 | directory = /django/dapi/
39 | command = /usr/local/bin/celery -A dapi worker -l info
40 | autostart = true
41 | startsecs = 5
42 | autorestart = true
43 | startretries = 3
44 | user = root
45 | stdout_logfile = /dev/stdout
46 | stdout_logfile_maxbytes = 0
47 | redirect_stderr = true
48 |
49 | [program:celery-beat-app]
50 | directory = /django/dapi/
51 | command = /usr/local/bin/celery -A dapi beat -l info
52 | autostart = true
53 | startsecs = 5
54 | autorestart = true
55 | startretries = 3
56 | user = root
57 | stdout_logfile = /dev/stdout
58 | stdout_logfile_maxbytes = 0
59 | redirect_stderr = true
60 |
--------------------------------------------------------------------------------
/static/admin/css/login.css:
--------------------------------------------------------------------------------
1 | /* LOGIN FORM */
2 |
3 | body.login {
4 | background: #f8f8f8;
5 | }
6 |
7 | .login #header {
8 | height: auto;
9 | padding: 15px 16px;
10 | justify-content: center;
11 | }
12 |
13 | .login #header h1 {
14 | font-size: 18px;
15 | }
16 |
17 | .login #header h1 a {
18 | color: #fff;
19 | }
20 |
21 | .login #content {
22 | padding: 20px 20px 0;
23 | }
24 |
25 | .login #container {
26 | background: #fff;
27 | border: 1px solid #eaeaea;
28 | border-radius: 4px;
29 | overflow: hidden;
30 | width: 28em;
31 | min-width: 300px;
32 | margin: 100px auto;
33 | }
34 |
35 | .login #content-main {
36 | width: 100%;
37 | }
38 |
39 | .login .form-row {
40 | padding: 4px 0;
41 | float: left;
42 | width: 100%;
43 | border-bottom: none;
44 | }
45 |
46 | .login .form-row label {
47 | padding-right: 0.5em;
48 | line-height: 2em;
49 | font-size: 1em;
50 | clear: both;
51 | color: #333;
52 | }
53 |
54 | .login .form-row #id_username, .login .form-row #id_password {
55 | clear: both;
56 | padding: 8px;
57 | width: 100%;
58 | -webkit-box-sizing: border-box;
59 | -moz-box-sizing: border-box;
60 | box-sizing: border-box;
61 | }
62 |
63 | .login span.help {
64 | font-size: 10px;
65 | display: block;
66 | }
67 |
68 | .login .submit-row {
69 | clear: both;
70 | padding: 1em 0 0 9.4em;
71 | margin: 0;
72 | border: none;
73 | background: none;
74 | text-align: left;
75 | }
76 |
77 | .login .password-reset-link {
78 | text-align: center;
79 | }
80 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_hr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Croatian translation.
3 | *
4 | * Author: Edi Modrić
5 | */
6 | (function ($) {
7 | "use strict";
8 |
9 | var specialNumbers = {
10 | 1: function(n) { return (n % 100 != 11 ? "znak" : "znakova"); },
11 | 2: function(n) { return (n % 100 != 12 ? "znaka" : "znakova"); },
12 | 3: function(n) { return (n % 100 != 13 ? "znaka" : "znakova"); },
13 | 4: function(n) { return (n % 100 != 14 ? "znaka" : "znakova"); }
14 | };
15 |
16 | $.extend($.fn.select2.defaults, {
17 | formatNoMatches: function () { return "Nema rezultata"; },
18 | formatInputTooShort: function (input, min) {
19 | var n = min - input.length;
20 | var nMod10 = n % 10;
21 |
22 | if (nMod10 > 0 && nMod10 < 5) {
23 | return "Unesite još " + n + " " + specialNumbers[nMod10](n);
24 | }
25 |
26 | return "Unesite još " + n + " znakova";
27 | },
28 | formatInputTooLong: function (input, max) {
29 | var n = input.length - max;
30 | var nMod10 = n % 10;
31 |
32 | if (nMod10 > 0 && nMod10 < 5) {
33 | return "Unesite " + n + " " + specialNumbers[nMod10](n) + " manje";
34 | }
35 |
36 | return "Unesite " + n + " znakova manje";
37 | },
38 | formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; },
39 | formatLoadMore: function (pageNumber) { return "Učitavanje rezultata..."; },
40 | formatSearching: function () { return "Pretraga..."; }
41 | });
42 | })(jQuery);
43 |
--------------------------------------------------------------------------------
/static/admin/js/prepopulate.js:
--------------------------------------------------------------------------------
1 | /*global URLify*/
2 | (function($) {
3 | 'use strict';
4 | $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) {
5 | /*
6 | Depends on urlify.js
7 | Populates a selected field with the values of the dependent fields,
8 | URLifies and shortens the string.
9 | dependencies - array of dependent fields ids
10 | maxLength - maximum length of the URLify'd string
11 | allowUnicode - Unicode support of the URLify'd string
12 | */
13 | return this.each(function() {
14 | var prepopulatedField = $(this);
15 |
16 | var populate = function() {
17 | // Bail if the field's value has been changed by the user
18 | if (prepopulatedField.data('_changed')) {
19 | return;
20 | }
21 |
22 | var values = [];
23 | $.each(dependencies, function(i, field) {
24 | field = $(field);
25 | if (field.val().length > 0) {
26 | values.push(field.val());
27 | }
28 | });
29 | prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode));
30 | };
31 |
32 | prepopulatedField.data('_changed', false);
33 | prepopulatedField.on('change', function() {
34 | prepopulatedField.data('_changed', true);
35 | });
36 |
37 | if (!prepopulatedField.val()) {
38 | $(dependencies.join(',')).on('keyup change focus', populate);
39 | }
40 | });
41 | };
42 | })(django.jQuery);
43 |
--------------------------------------------------------------------------------
/static/import_export/import.css:
--------------------------------------------------------------------------------
1 | .import-preview .errors {
2 | position: relative;
3 | }
4 |
5 | .validation-error-count {
6 | display: inline-block;
7 | background-color: #e40000;
8 | border-radius: 6px;
9 | color: white;
10 | font-size: 0.9em;
11 | position: relative;
12 | font-weight: bold;
13 | margin-top: -2px;
14 | padding: 0.2em 0.4em;
15 | }
16 |
17 | .validation-error-container {
18 | position: absolute;
19 | opacity: 0;
20 | pointer-events: none;
21 | background-color: #ffc1c1;
22 | padding: 14px 15px 10px;
23 | top: 25px;
24 | margin: 0 0 20px 0;
25 | width: 200px;
26 | z-index: 2;
27 | }
28 |
29 | table.import-preview tr.skip {
30 | background-color: #d2d2d2;
31 | }
32 |
33 | table.import-preview tr.new {
34 | background-color: #bdd8b2;
35 | }
36 |
37 | table.import-preview tr.delete {
38 | background-color: #f9bebf;
39 | }
40 |
41 | table.import-preview tr.update {
42 | background-color: #fdfdcf;
43 | }
44 |
45 | .import-preview td:hover .validation-error-count {
46 | z-index: 3;
47 | }
48 | .import-preview td:hover .validation-error-container {
49 | opacity: 1;
50 | pointer-events: auto;
51 | }
52 |
53 | .validation-error-list {
54 | margin: 0;
55 | padding: 0;
56 | }
57 |
58 | .validation-error-list li {
59 | list-style: none;
60 | margin: 0;
61 | }
62 |
63 | .validation-error-list > li > ul {
64 | margin: 8px 0;
65 | padding: 0;
66 | }
67 |
68 | .validation-error-list > li > ul > li {
69 | padding: 0;
70 | margin: 0 0 10px;
71 | line-height: 1.28em;
72 | }
73 |
74 | .validation-error-field-label {
75 | display: block;
76 | border-bottom: 1px solid #e40000;
77 | color: #e40000;
78 | text-transform: uppercase;
79 | font-weight: bold;
80 | font-size: 0.85em;
81 | }
82 |
--------------------------------------------------------------------------------
/static/silk/css/fonts.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Fira Sans
3 | */
4 | @font-face {
5 | font-family: FiraSans;
6 | src: url(../fonts/fira/FiraSans-Regular.woff);
7 | font-weight: normal; }
8 |
9 | @font-face {
10 | font-family: FiraSans;
11 | src: url(../fonts/fira/FiraSans-Medium.woff);
12 | font-weight: bold; }
13 |
14 | @font-face {
15 | font-family: FiraSans;
16 | src: url(../fonts/fira/FiraSans-Bold.woff);
17 | font-weight: bolder; }
18 |
19 | @font-face {
20 | font-family: FiraSans;
21 | src: url(../fonts/fira/FiraSans-Light.woff);
22 | font-weight: lighter; }
23 |
24 | @font-face {
25 | font-family: FiraSans;
26 | src: url(../fonts/fira/FiraSans-RegularItalic.woff);
27 | font-weight: normal;
28 | font-style: italic; }
29 |
30 | @font-face {
31 | font-family: FiraSans;
32 | src: url(../fonts/fira/FiraSans-MediumItalic.woff);
33 | font-weight: bold;
34 | font-style: italic; }
35 |
36 | @font-face {
37 | font-family: FiraSans;
38 | src: url(../fonts/fira/FiraSans-BoldItalic.woff);
39 | font-weight: bolder;
40 | font-style: italic; }
41 |
42 | @font-face {
43 | font-family: FiraSans;
44 | src: url(../fonts/fira/FiraSans-LightItalic.woff);
45 | font-weight: lighter;
46 | font-style: italic; }
47 |
48 | /**
49 | * Fantasque
50 | */
51 | @font-face {
52 | font-family: Fantasque;
53 | src: url(../fonts/fantasque/FantasqueSansMono-Regular.woff);
54 | font-weight: normal; }
55 |
56 | @font-face {
57 | font-family: Fantasque;
58 | src: url(../fonts/fantasque/FantasqueSansMono-Bold.woff);
59 | font-weight: bold; }
60 |
61 | @font-face {
62 | font-family: Fantasque;
63 | src: url(../fonts/fantasque/FantasqueSansMono-RegItalic.woff);
64 | font-weight: normal;
65 | font-style: italic; }
66 |
67 | @font-face {
68 | font-family: Fantasque;
69 | src: url(../fonts/fantasque/FantasqueSansMono-BoldItalic.woff);
70 | font-weight: bold;
71 | font-style: italic; }
72 |
--------------------------------------------------------------------------------
/static/rest_framework/js/csrf.js:
--------------------------------------------------------------------------------
1 | function getCookie(name) {
2 | var cookieValue = null;
3 |
4 | if (document.cookie && document.cookie != '') {
5 | var cookies = document.cookie.split(';');
6 |
7 | for (var i = 0; i < cookies.length; i++) {
8 | var cookie = jQuery.trim(cookies[i]);
9 |
10 | // Does this cookie string begin with the name we want?
11 | if (cookie.substring(0, name.length + 1) == (name + '=')) {
12 | cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
13 | break;
14 | }
15 | }
16 | }
17 |
18 | return cookieValue;
19 | }
20 |
21 | function csrfSafeMethod(method) {
22 | // these HTTP methods do not require CSRF protection
23 | return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
24 | }
25 |
26 | function sameOrigin(url) {
27 | // test that a given url is a same-origin URL
28 | // url could be relative or scheme relative or absolute
29 | var host = document.location.host; // host + port
30 | var protocol = document.location.protocol;
31 | var sr_origin = '//' + host;
32 | var origin = protocol + sr_origin;
33 |
34 | // Allow absolute or scheme relative URLs to same origin
35 | return (url == origin || url.slice(0, origin.length + 1) == origin + '/') ||
36 | (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + '/') ||
37 | // or any other URL that isn't scheme relative or absolute i.e relative.
38 | !(/^(\/\/|http:|https:).*/.test(url));
39 | }
40 |
41 | var csrftoken = window.drf.csrfToken;
42 |
43 | $.ajaxSetup({
44 | beforeSend: function(xhr, settings) {
45 | if (!csrfSafeMethod(settings.type) && sameOrigin(settings.url)) {
46 | // Send the token to same-origin, relative URLs only.
47 | // Send the token only if the method warrants CSRF protection
48 | // Using the CSRFToken value acquired earlier
49 | xhr.setRequestHeader(window.drf.csrfHeaderName, csrftoken);
50 | }
51 | }
52 | });
53 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/select2/select2_locale_sk.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Select2 Slovak translation.
3 | *
4 | * Author: David Vallner
5 | */
6 | (function ($) {
7 | "use strict";
8 | // use text for the numbers 2 through 4
9 | var smallNumbers = {
10 | 2: function(masc) { return (masc ? "dva" : "dve"); },
11 | 3: function() { return "tri"; },
12 | 4: function() { return "štyri"; }
13 | }
14 | $.extend($.fn.select2.defaults, {
15 | formatNoMatches: function () { return "Nenašli sa žiadne položky"; },
16 | formatInputTooShort: function (input, min) {
17 | var n = min - input.length;
18 | if (n == 1) {
19 | return "Prosím zadajte ešte jeden znak";
20 | } else if (n <= 4) {
21 | return "Prosím zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky";
22 | } else {
23 | return "Prosím zadajte ešte ďalších "+n+" znakov";
24 | }
25 | },
26 | formatInputTooLong: function (input, max) {
27 | var n = input.length - max;
28 | if (n == 1) {
29 | return "Prosím zadajte o jeden znak menej";
30 | } else if (n <= 4) {
31 | return "Prosím zadajte o "+smallNumbers[n](true)+" znaky menej";
32 | } else {
33 | return "Prosím zadajte o "+n+" znakov menej";
34 | }
35 | },
36 | formatSelectionTooBig: function (limit) {
37 | if (limit == 1) {
38 | return "Môžete zvoliť len jednu položku";
39 | } else if (limit <= 4) {
40 | return "Môžete zvoliť najviac "+smallNumbers[limit](false)+" položky";
41 | } else {
42 | return "Môžete zvoliť najviac "+limit+" položiek";
43 | }
44 | },
45 | formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky..."; },
46 | formatSearching: function () { return "Vyhľadávanie..."; }
47 | });
48 | })(jQuery);
49 |
--------------------------------------------------------------------------------
/interface/serializers.py:
--------------------------------------------------------------------------------
1 | from rest_framework import serializers
2 |
3 | from interface.models import InterfaceInfo, ProductInfo, CaseGroupInfo, ModuleInfo
4 |
5 |
6 | class ProductInfoSerializer(serializers.HyperlinkedModelSerializer):
7 | # 产品线序列化
8 |
9 | class Meta:
10 | model = ProductInfo
11 | fields = "__all__"
12 |
13 |
14 | class ModuleInfoSerializer(serializers.HyperlinkedModelSerializer):
15 | # 模块序列化
16 |
17 | product_name = serializers.ReadOnlyField(source='module_group.product_name')
18 |
19 | # 外键序列化
20 |
21 | class Meta:
22 | model = ModuleInfo
23 | fields = (
24 | 'id',
25 | 'module_group',
26 | 'product_name',
27 | 'module_name',
28 | 'module_describe',
29 | 'create_time',
30 | 'update_time',
31 | )
32 |
33 |
34 | class CaseGroupInfoSerializer(serializers.HyperlinkedModelSerializer):
35 | # 用例组序列化
36 |
37 | class Meta:
38 | model = CaseGroupInfo
39 | fields = "__all__"
40 |
41 |
42 | class InterfaceInfoSerializer(serializers.HyperlinkedModelSerializer):
43 | # 用例序列化
44 |
45 | case_group_name = serializers.ReadOnlyField(source='case_group.case_group_name')
46 |
47 | # 外键序列化
48 |
49 | class Meta:
50 | model = InterfaceInfo
51 | fields = (
52 | 'id',
53 | 'case_group',
54 | 'case_group_name',
55 | 'case_name',
56 | 'interface_url',
57 | 'request_mode',
58 | 'request_parameter',
59 | 'request_head',
60 | 'body_type',
61 | 'request_body',
62 | 'expected_result',
63 | 'response_assert',
64 | 'wait_time',
65 | 'regular_expression',
66 | 'regular_variable',
67 | 'regular_template',
68 | 'response_code',
69 | 'actual_result',
70 | 'pass_status',
71 | 'create_time',
72 | 'update_time',
73 | )
74 |
--------------------------------------------------------------------------------
/static/xadmin/css/xadmin.mobile.css:
--------------------------------------------------------------------------------
1 | #body-content {
2 | margin-top: 50px;
3 | padding-top: 10px;
4 | }
5 | #top-nav, #footer, .breadcrumb {
6 | display: none;
7 | }
8 |
9 | #top-nav .breadcrumb {
10 | margin-top: 20px;
11 | }
12 | #left-side {
13 | min-height: 0px;
14 | position: fixed;
15 | padding: 0px;
16 | top: 50px;
17 | left: 0px;
18 | right: 0px;
19 | bottom: 0px;
20 | background: #FFF;
21 | z-index: 999;
22 | overflow: auto;
23 | }
24 | #left-side .well {
25 | border: 0px;
26 | }
27 | #changelist-form {
28 | clear: both;
29 | }
30 | .navbar-brand {
31 | max-width: 300px;
32 | }
33 |
34 | .panel-content.nopadding {
35 | margin: -15px;
36 | }
37 |
38 | .panel-content.nopadding .table {
39 | margin-bottom: 0;
40 | }
41 |
42 | .col {
43 | padding-right: 10px;
44 | padding-left: 10px;
45 | }
46 | .row {
47 | margin-right: -10px;
48 | margin-left: -10px;
49 | }
50 |
51 | .results {
52 | width: 100%;
53 | overflow-x: auto;
54 | }
55 |
56 | .form-actions {
57 | margin-bottom: 0px;
58 | padding: 10px;
59 | position:fixed;
60 | bottom:0px;
61 | z-index:295;
62 | width: 100%;
63 | margin-right: -10px;
64 | margin-left: -10px;
65 | }
66 | .form-actions .more-btns input:first-child{
67 | margin-top: 10px;
68 | }
69 | .change-form #body-content {
70 | padding-bottom: 60px;
71 | }
72 | .model_ul {
73 | margin-left: 0px;
74 | margin-right: 0px;
75 | }
76 |
77 | .navbar-inverse .navbar-toggle{
78 | color: white;
79 | top: 7px;
80 | padding: 7px 12px;
81 | }
82 | .navbar.tools-navbar {
83 | height: 50px;
84 | margin-top: -10px;
85 | text-align: right;
86 | }
87 | .navbar-btns .btn span{
88 | display: none;
89 | }
90 | .navbar-btns {
91 | position: absolute;
92 | top: 1px;
93 | right: 10px;
94 | }
95 | .nav-back {
96 | left: 10px;
97 | right: auto;
98 | }
99 |
100 | .layout-btns {
101 | display: none;
102 | }
103 | .pagination.pagination-small{
104 | display: none;
105 | }
106 |
107 |
--------------------------------------------------------------------------------
/static/drf-yasg/insQ.min.js:
--------------------------------------------------------------------------------
1 | // insertion-query v1.0.3 (2016-01-20)
2 | // license:MIT
3 | // Zbyszek Tenerowicz (http://naugtur.pl/)
4 | var insertionQ=function(){"use strict";function a(a,b){var d,e="insQ_"+g++,f=function(a){(a.animationName===e||a[i]===e)&&(c(a.target)||b(a.target))};d=document.createElement("style"),d.innerHTML="@"+j+"keyframes "+e+" { from { outline: 1px solid transparent } to { outline: 0px solid transparent } }\n"+a+" { animation-duration: 0.001s; animation-name: "+e+"; "+j+"animation-duration: 0.001s; "+j+"animation-name: "+e+"; } ",document.head.appendChild(d);var h=setTimeout(function(){document.addEventListener("animationstart",f,!1),document.addEventListener("MSAnimationStart",f,!1),document.addEventListener("webkitAnimationStart",f,!1)},n.timeout);return{destroy:function(){clearTimeout(h),d&&(document.head.removeChild(d),d=null),document.removeEventListener("animationstart",f),document.removeEventListener("MSAnimationStart",f),document.removeEventListener("webkitAnimationStart",f)}}}function b(a){a.QinsQ=!0}function c(a){return n.strictlyNew&&a.QinsQ===!0}function d(a){return c(a.parentNode)?a:d(a.parentNode)}function e(a){for(b(a),a=a.firstChild;a;a=a.nextSibling)void 0!==a&&1===a.nodeType&&e(a)}function f(f,g){var h=[],i=function(){var a;return function(){clearTimeout(a),a=setTimeout(function(){h.forEach(e),g(h),h=[]},10)}}();return a(f,function(a){if(!c(a)){b(a);var e=d(a);h.indexOf(e)<0&&h.push(e),i()}})}var g=100,h=!1,i="animationName",j="",k="Webkit Moz O ms Khtml".split(" "),l="",m=document.createElement("div"),n={strictlyNew:!0,timeout:20};if(m.style.animationName&&(h=!0),h===!1)for(var o=0;oShow more').click(function(e){
8 | e.preventDefault();
9 | e.stopPropagation();
10 | $(v).nextUntil('li.nav-header').show();
11 | $(v).nextUntil('li.nav-header').last().remove();
12 | addShowLess($,v);
13 | })
14 | );
15 | $(v).nextUntil('li.nav-header').last().show();
16 | }
17 |
18 | function addShowLess($,v){
19 | $(v).nextUntil('li.nav-header').last().after(
20 | $('Show less').click(function(e){
21 | e.preventDefault();
22 | e.stopPropagation();
23 | $(v).nextUntil('li.nav-header').filter(function(i){return !$(this).find('input').is(':checked');}).slice(max).hide();
24 | $(v).nextUntil('li.nav-header').last().remove();
25 | $(v).scrollMinimal(3000);
26 | addShowMore($,v);
27 | })
28 | );
29 | $(v).nextUntil('li.nav-header').last().show();
30 | }
31 |
32 | $.each($('.nav-quickfilter li.nav-header'),function(i,v){
33 | if ($(v).nextUntil('li.nav-header').size()>max) {
34 | $(v).nextUntil('li.nav-header').filter(function(i){return !$(this).find('input').is(':checked');}).slice(max).hide();
35 | addShowMore($,v);
36 | }
37 | });
38 |
39 | $('.nav-quickfilter li.nav-header').on('click',function(e) {
40 | e.preventDefault();
41 | e.stopPropagation();
42 | $('.nav-quickfilter li.nav-header i').toggleClass('icon-chevron-right');
43 | $('.nav-quickfilter li.nav-header i').toggleClass('icon-chevron-left');
44 | $('#left-side').toggleClass('col-md-2');
45 | $('#left-side').toggleClass('col-md-4');
46 | $('#content-block').toggleClass('col-md-10');
47 | $('#content-block').toggleClass('col-md-8');
48 | });
49 | })(jQuery)
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.sortablelist.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | $(function() {
3 | $.ajaxSetup({
4 | beforeSend: function(xhr, settings) {
5 | function getCookie(name) {
6 | var cookieValue = null;
7 | if (document.cookie && document.cookie != '') {
8 | var cookies = document.cookie.split(';');
9 | for (var i = 0; i < cookies.length; i++) {
10 | var cookie = jQuery.trim(cookies[i]);
11 | // Does this cookie string begin with the name we want?
12 | if (cookie.substring(0, name.length + 1) == (name + '=')) {
13 | cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
14 | break;
15 | }
16 | }
17 | }
18 | return cookieValue;
19 | }
20 | if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
21 | // Only send the token to relative URLs i.e. locally.
22 | xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
23 | }
24 | }
25 | });
26 |
27 | $(".results table tbody").sortable({
28 | axis: 'y',
29 | items: 'tr',
30 | cursor: 'move',
31 | opacity: 0.8,
32 | update: function(event, ui) {
33 | var $rows = $(this);
34 | $("#save-order").on("click", function(e) {
35 | $.ajax({
36 | url: $(this).attr('post-url'),
37 | method: 'POST',
38 | data: $rows.sortable('serialize', {
39 | attribute: 'order-key',
40 | expression: (/(.+)_(.+)/),
41 | })
42 | });
43 | location.reload();
44 | }).show();
45 | }
46 | });
47 | });
48 |
49 | })(jQuery);
50 |
--------------------------------------------------------------------------------
/static/xadmin/css/themes/bootstrap-xadmin.css:
--------------------------------------------------------------------------------
1 |
2 | /* results table */
3 | .table th {
4 | background-color: #FAFAFA;
5 | background-image: -moz-linear-gradient(top, white, #F2F2F2);
6 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(#F2F2F2));
7 | background-image: -webkit-linear-gradient(top, white, #F2F2F2);
8 | background-image: -o-linear-gradient(top, white, #F2F2F2);
9 | background-image: linear-gradient(to bottom, white, #F2F2F2);
10 | background-repeat: repeat-x;
11 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
12 | -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
13 | -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
14 | box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
15 | border-bottom-width: 1px !important;
16 | }
17 |
18 | /** panel **/
19 | .panel-default {
20 | border-radius: 2px;
21 | }
22 | .panel-default > .panel-heading {
23 | background-color: #F8F8F8;
24 | background-image: -moz-linear-gradient(top, #FDFDFD, #F6F6F6);
25 | background-image: -ms-linear-gradient(top, #FDFDFD, #F6F6F6);
26 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FDFDFD), to(#F6F6F6));
27 | background-image: -webkit-linear-gradient(top, #FDFDFD, #F6F6F6);
28 | background-image: -o-linear-gradient(top, #FDFDFD, #F6F6F6);
29 | background-image: linear-gradient(top, #FDFDFD, #F6F6F6);
30 | }
31 |
32 | .form-group {
33 | border-bottom: 1px solid #EEE;
34 | background-color: #FBFBFB;
35 | margin-top: 0px !important;
36 | margin-bottom: 0px !important;
37 | }
38 | .controls {
39 | background-color: white;
40 | padding: 15px !important;
41 | }
42 | .control-label {
43 | margin-bottom: 0px !important;
44 | }
45 | .fieldset .panel-body {
46 | padding-top: 0px !important;
47 | padding-bottom: 0px !important;
48 | }
49 | .form-inline .form-group {
50 | background: transparent;
51 | border: none;
52 | }
53 |
54 | /** fieldset **/
55 | @media (min-width: 768px) {
56 | .form-horizontal .controls{
57 | border-left: 1px solid #EEE;
58 | }
59 | .form-horizontal .control-label {
60 | padding-top: 22px !important;
61 | }
62 | }
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.page.form.js:
--------------------------------------------------------------------------------
1 | ;(function($){
2 | $(function() {
3 | var action_bar = $('.form-actions');
4 | if(action_bar.length){
5 | var height=action_bar[0].offsetTop + action_bar.outerHeight();
6 | var onchange = function(){
7 | var s=(document.body.scrollTop||document.documentElement.scrollTop) + window.innerHeight;
8 | if(s 0){
28 | var first_activated = false;
29 | exform.find('.error').each(function(){
30 | if (!first_activated){
31 | var parent = $(this);
32 | while (!(parent.html() == exform.html())){
33 | if (parent.hasClass('tab-pane')){
34 | parent.addClass('active');
35 | parent.siblings().removeClass('active');
36 | var menu_tab = $('a[href="#' + parent.attr('id') + '"]');
37 | menu_tab.parent().addClass('active');
38 | menu_tab.parent().siblings().removeClass('active');
39 | first_activated = true;
40 |
41 | }
42 | if (parent.hasClass('box-content')){
43 | parent.show();
44 | }
45 | parent = parent.parent();
46 | }
47 | }
48 | });
49 | }
50 | })(jQuery)
51 |
52 |
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.filters.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $(function(){
4 |
5 | // filter
6 | $('.filter-multiselect input[type=checkbox]').click(function(e){
7 | window.location.href = $(this).parent().attr('href');
8 | });
9 |
10 | // menber filter
11 | $('.filter-number .remove').click(function(e){
12 | $(this).parent().parent().find('input[type="number"]').val('');
13 | });
14 |
15 | $('.filter-number .toggle').click(function(e){
16 | var new_name = $(this).hasClass('active') ? $(this).attr('data-off-name') : $(this).attr('data-on-name');
17 | $(this).parent().parent().find('input[type="number"]').attr('name', new_name);
18 | });
19 |
20 | $('#filter-menu form').submit(function(){
21 | $(this).find('input[type="text"],input[type="number"]').each(function(e){
22 | if(!$(this).val()) $(this).attr('name', '');
23 | });
24 | return true;
25 | });
26 |
27 | $('.menu-date-range form').each(function(){
28 | var el = $(this);
29 | var start_date = el.find('.calendar.date-start').datepicker({format: 'yyyy-mm-dd', language: 'xadmin'});
30 | var end_date = el.find('.calendar.date-end').datepicker({format: 'yyyy-mm-dd', language: 'xadmin'});
31 |
32 | var checkAvailable = function(){
33 | if(start_date.data('datepicker').getDate().valueOf() <= end_date.data('datepicker').getDate().valueOf()){
34 | el.find('button[type=submit]').removeAttr('disabled');
35 | } else {
36 | el.find('button[type=submit]').attr('disabled', 'disabled');
37 | }
38 | }
39 |
40 | start_date.on('changeDate', function(ev){
41 | var startdate = start_date.data('date');
42 | el.find('.start_input').val(startdate);
43 | end_date.data('datepicker').setStartDate(startdate);
44 | checkAvailable();
45 | });
46 | end_date.on('changeDate', function(ev){
47 | var enddate = end_date.data('date');
48 | el.find('.end_input').val(enddate);
49 | start_date.data('datepicker').setEndDate(enddate);
50 | checkAvailable();
51 | });
52 |
53 | checkAvailable();
54 | });
55 | });
56 |
57 | })(jQuery);
--------------------------------------------------------------------------------
/static/admin/css/responsive_rtl.css:
--------------------------------------------------------------------------------
1 | /* TABLETS */
2 |
3 | @media (max-width: 1024px) {
4 | [dir="rtl"] .colMS {
5 | margin-right: 0;
6 | }
7 |
8 | [dir="rtl"] #user-tools {
9 | text-align: right;
10 | }
11 |
12 | [dir="rtl"] #changelist .actions label {
13 | padding-left: 10px;
14 | padding-right: 0;
15 | }
16 |
17 | [dir="rtl"] #changelist .actions select {
18 | margin-left: 0;
19 | margin-right: 15px;
20 | }
21 |
22 | [dir="rtl"] .change-list .filtered .results,
23 | [dir="rtl"] .change-list .filtered .paginator,
24 | [dir="rtl"] .filtered #toolbar,
25 | [dir="rtl"] .filtered div.xfull,
26 | [dir="rtl"] .filtered .actions {
27 | margin-right: 0;
28 | margin-left: 230px;
29 | }
30 |
31 | [dir="rtl"] .inline-group ul.tools a.add,
32 | [dir="rtl"] .inline-group div.add-row a,
33 | [dir="rtl"] .inline-group .tabular tr.add-row td a {
34 | padding: 8px 26px 8px 10px;
35 | background-position: calc(100% - 8px) 9px;
36 | }
37 |
38 | [dir="rtl"] .related-widget-wrapper-link + .selector {
39 | margin-right: 0;
40 | margin-left: 15px;
41 | }
42 |
43 | [dir="rtl"] .selector .selector-filter label {
44 | margin-right: 0;
45 | margin-left: 8px;
46 | }
47 |
48 | [dir="rtl"] .object-tools li {
49 | float: right;
50 | }
51 |
52 | [dir="rtl"] .object-tools li + li {
53 | margin-left: 0;
54 | margin-right: 15px;
55 | }
56 |
57 | [dir="rtl"] .dashboard .module table td a {
58 | padding-left: 0;
59 | padding-right: 16px;
60 | }
61 | }
62 |
63 | /* MOBILE */
64 |
65 | @media (max-width: 767px) {
66 | [dir="rtl"] .change-list .filtered .results,
67 | [dir="rtl"] .change-list .filtered .paginator,
68 | [dir="rtl"] .filtered #toolbar,
69 | [dir="rtl"] .filtered div.xfull,
70 | [dir="rtl"] .filtered .actions {
71 | margin-left: 0;
72 | }
73 |
74 | [dir="rtl"] .aligned .add-another,
75 | [dir="rtl"] .aligned .related-lookup,
76 | [dir="rtl"] .aligned .datetimeshortcuts {
77 | margin-left: 0;
78 | margin-right: 15px;
79 | }
80 |
81 | [dir="rtl"] .aligned ul {
82 | margin-right: 0;
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # dapi
2 | 基于Django的轻量级接口测试平台
3 | dapi:即Django+API测试的缩写
4 | QQ群:529063263
5 | [部署文档](https://www.cnblogs.com/yjlch1016/category/1653648.html)
6 |
7 |
8 | ***
9 | # PyCharm图片
10 | 
11 |
12 |
13 | ***
14 | # 设计思想
15 | 1、 模拟性能测试工具JMeter的思路,实现接口测试与性能测试的Web化;
16 | 2、 计划有产品模块、接口测试用例模块、性能测试用例模块、任务队列模块、测试报告模块等;
17 | 3、 前期采用Django+Bootstrap前后端不分离的模式实现功能,后期再严格按照RESTful的风格来编程。
18 |
19 |
20 | ***
21 | # 模型
22 | 6张表
23 | 产品线信息表一对多模块信息表
24 | 用例组信息表一对多用例信息表
25 | 压测信息表一对多压测结果表
26 |
27 | | 表 | 字段 |
28 | | ---- | ---- |
29 | | 产品线信息表 | 产品线名称、产品描述、产品经理、开发人员、测试人员、创建时间、修改时间 |
30 | | 模块信息表 | 外键、模块名称、模块描述、创建时间、修改时间 |
31 | | 用例组信息表 | 用例组名称、用例组描述、创建时间、修改时间 |
32 | | 用例信息表 | 外键、用例名称、接口地址、请求方式、请求参数、请求头、请求体类型、请求体、预期结果、响应断言方式、等待时间、正则、变量名、模板、响应代码、实际结果、是否通过、创建时间、修改时间 |
33 | | 压测信息表 | 脚本简介、相对路径、请求数、持续时间、创建时间、修改时间 |
34 | | 压测结果表 | 外键、测试报告、jtl文件、Dashboard Report、运行时间 |
35 |
36 |
37 | ***
38 | # 本地调试
39 | `python manage.py collectstatic`
40 | 复制xadmin静态文件
41 |
42 | `python manage.py makemigrations`
43 | 激活模型
44 |
45 | `python manage.py migrate`
46 | 迁移
47 |
48 | `python manage.py createsuperuser`
49 | 创建超级管理员账号
50 | 输入账号:admin
51 | 输入邮箱:123456789@qq.com
52 | 输入密码:test123456
53 | 二次确认
54 |
55 | `python manage.py runserver`
56 | 启动服务
57 |
58 | 后台
59 | http://127.0.0.1:8000/admin/
60 | 用户名:admin
61 | 密码:test123456
62 |
63 | 前台
64 | http://127.0.0.1:8000
65 | 用户名:admin
66 | 密码:test123456
67 |
68 |
69 | ***
70 | # 本地打包
71 | `docker build -t dapi .`
72 | dapi为镜像名称,随便取
73 |
74 | `docker run -d --name dapi2020 -p 80:80 mock:latest`
75 | 启动容器
76 | 后台运行
77 | 给容器取个别名dapi2020
78 | 映射80端口
79 |
80 | 后台
81 | http://x.x.x.x/admin/
82 | 宿主机的IP地址
83 | 账号:admin
84 | 密码:test123456
85 |
86 | 前台
87 | http://x.x.x.x/
88 | 宿主机的IP地址
89 | 账号:admin
90 | 密码:test123456
91 |
92 | `docker exec -it dapi2020 /bin/bash`
93 | 进入容器内部
94 |
95 | `exit`
96 | 退出容器内部
97 |
98 | `docker stop dapi2020`
99 | 停止容器
100 |
101 | `docker rm dapi2020`
102 | 删除容器
103 |
104 |
105 | ***
106 | # API
107 | http://127.0.0.1:8000/api/
108 | http://127.0.0.1:8000/redoc/
109 | http://127.0.0.1:8000/swagger/
110 |
--------------------------------------------------------------------------------
/static/xadmin/vendor/load-image/load-image.min.js:
--------------------------------------------------------------------------------
1 | (function(e){"use strict";var t=function(e,a,n){var r,i,c=document.createElement("img");if(c.onerror=a,c.onload=function(){!i||n&&n.noRevoke||t.revokeObjectURL(i),a&&a(t.scale(c,n))},t.isInstanceOf("Blob",e)||t.isInstanceOf("File",e))r=i=t.createObjectURL(e),c._type=e.type;else{if("string"!=typeof e)return!1;r=e,n&&n.crossOrigin&&(c.crossOrigin=n.crossOrigin)}return r?(c.src=r,c):t.readFile(e,function(e){var t=e.target;t&&t.result?c.src=t.result:a&&a(e)})},a=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;t.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},t.detectSubsampling=function(e){var t,a,n=e.width,r=e.height;return n*r>1048576?(t=document.createElement("canvas"),t.width=t.height=1,a=t.getContext("2d"),a.drawImage(e,-n+1,0),0===a.getImageData(0,0,1,1).data[3]):!1},t.detectVerticalSquash=function(e,t){var a,n,r,i,c,o=document.createElement("canvas"),d=o.getContext("2d");for(o.width=1,o.height=t,d.drawImage(e,0,0),a=d.getImageData(0,0,1,t).data,n=0,r=t,i=t;i>n;)c=a[4*(i-1)+3],0===c?r=i:n=i,i=r+n>>1;return i/t||1},t.renderImageToCanvas=function(e,a,n,r){var i,c,o,d,g,h,s,u,l=e.width,m=e.height,f=a.getContext("2d"),w=1024,v=document.createElement("canvas");for(f.save(),t.detectSubsampling(e)&&(l/=2,m/=2),i=t.detectVerticalSquash(e,m),v.width=v.height=w,c=v.getContext("2d"),o=Math.ceil(w*n/l),d=Math.ceil(w*r/m/i),h=0,u=0;m>u;){for(g=0,s=0;l>s;)c.clearRect(0,0,w,w),c.drawImage(e,-s,-u),f.drawImage(v,0,0,w,w,g,h,o,d),s+=w,g+=o;u+=w,h+=d}f.restore(),v=c=null},t.scale=function(e,a){a=a||{};var n=document.createElement("canvas"),r=e.width,i=e.height,c=Math.max((a.minWidth||r)/r,(a.minHeight||i)/i);return c>1&&(r=Math.ceil(r*c),i=Math.ceil(i*c)),c=Math.min((a.maxWidth||r)/r,(a.maxHeight||i)/i),1>c&&(r=Math.ceil(r*c),i=Math.ceil(i*c)),e.getContext||a.canvas&&n.getContext?(n.width=r,n.height=i,"image/jpeg"===e._type?t.renderImageToCanvas(e,n,r,i):n.getContext("2d").drawImage(e,0,0,r,i),n):(e.width=r,e.height=i,e)},t.createObjectURL=function(e){return a?a.createObjectURL(e):!1},t.revokeObjectURL=function(e){return a?a.revokeObjectURL(e):!1},t.readFile=function(e,t){if(window.FileReader&&FileReader.prototype.readAsDataURL){var a=new FileReader;return a.onload=a.onerror=t,a.readAsDataURL(e),a}return!1},"function"==typeof define&&define.amd?define(function(){return t}):e.loadImage=t})(this);
--------------------------------------------------------------------------------
/static/xadmin/js/xadmin.plugin.charts.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function(){
2 |
3 | function showTooltip(x, y, contents) {
4 | $('' + contents + '
').css( {
5 | position: 'absolute',
6 | display: 'none',
7 | top: y + 5,
8 | left: x + 5
9 | }).appendTo("body").fadeIn(200);
10 | }
11 |
12 | $.fn.chart = function(){
13 | $(this).each(function(){
14 | var $chart = $(this);
15 |
16 | if($chart.data('chart-obj')) return;
17 |
18 | $chart.html(' Loading chart...');
19 |
20 | $.getJSON($chart.data('chart-url'), function(data){
21 | var chart = $.plot($chart, data.data, data.option);
22 | var previousPoint = null;
23 | $chart.bind("plothover", function (event, pos, item) {
24 | if (item) {
25 | if (previousPoint != item.dataIndex) {
26 | previousPoint = item.dataIndex;
27 |
28 | $("#chart-tooltip").remove();
29 | var x = item.series.xaxis.tickFormatter(item.datapoint[0], item.series.xaxis),
30 | y = item.series.yaxis.tickFormatter(item.datapoint[1], item.series.yaxis);
31 | if (item.series.xaxis.options.mode=="categories") {
32 | x = item.series.data[item.dataIndex][0];
33 | }
34 | if (item.series.yaxis.options.mode=="categories") {
35 | y = item.series.data[item.dataIndex][1];
36 | }
37 | showTooltip(item.pageX, item.pageY,
38 | item.series.label + " :
(" + x + " , " + y+")");
39 | }
40 | } else {
41 | $("#chart-tooltip").remove();
42 | previousPoint = null;
43 | }
44 | });
45 | $chart.data('chart-obj', chart);
46 | });
47 | })
48 | }
49 |
50 | $('.chart-tab a').click(function(e){
51 | e.preventDefault();
52 | $(this).tab('show');
53 |
54 | $($(this).attr('href')).chart();
55 | });
56 | $('.chart-tab a:first').click();
57 | $('.chart.init').chart();
58 | });
--------------------------------------------------------------------------------
/static/rest_framework/docs/css/highlight.css:
--------------------------------------------------------------------------------
1 | /*
2 | This is the GitHub theme for highlight.js
3 |
4 | github.com style (c) Vasily Polovnyov
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | color: #333;
13 | -webkit-text-size-adjust: none;
14 | }
15 |
16 | .hljs-comment,
17 | .diff .hljs-header,
18 | .hljs-javadoc {
19 | color: #998;
20 | font-style: italic;
21 | }
22 |
23 | .hljs-keyword,
24 | .css .rule .hljs-keyword,
25 | .hljs-winutils,
26 | .nginx .hljs-title,
27 | .hljs-subst,
28 | .hljs-request,
29 | .hljs-status {
30 | color: #333;
31 | font-weight: bold;
32 | }
33 |
34 | .hljs-number,
35 | .hljs-hexcolor,
36 | .ruby .hljs-constant {
37 | color: #008080;
38 | }
39 |
40 | .hljs-string,
41 | .hljs-tag .hljs-value,
42 | .hljs-phpdoc,
43 | .hljs-dartdoc,
44 | .tex .hljs-formula {
45 | color: #d14;
46 | }
47 |
48 | .hljs-title,
49 | .hljs-id,
50 | .scss .hljs-preprocessor {
51 | color: #900;
52 | font-weight: bold;
53 | }
54 |
55 | .hljs-list .hljs-keyword,
56 | .hljs-subst {
57 | font-weight: normal;
58 | }
59 |
60 | .hljs-class .hljs-title,
61 | .hljs-type,
62 | .vhdl .hljs-literal,
63 | .tex .hljs-command {
64 | color: #458;
65 | font-weight: bold;
66 | }
67 |
68 | .hljs-tag,
69 | .hljs-tag .hljs-title,
70 | .hljs-rule .hljs-property,
71 | .django .hljs-tag .hljs-keyword {
72 | color: #000080;
73 | font-weight: normal;
74 | }
75 |
76 | .hljs-attribute,
77 | .hljs-variable,
78 | .lisp .hljs-body,
79 | .hljs-name {
80 | color: #008080;
81 | }
82 |
83 | .hljs-regexp {
84 | color: #009926;
85 | }
86 |
87 | .hljs-symbol,
88 | .ruby .hljs-symbol .hljs-string,
89 | .lisp .hljs-keyword,
90 | .clojure .hljs-keyword,
91 | .scheme .hljs-keyword,
92 | .tex .hljs-special,
93 | .hljs-prompt {
94 | color: #990073;
95 | }
96 |
97 | .hljs-built_in {
98 | color: #0086b3;
99 | }
100 |
101 | .hljs-preprocessor,
102 | .hljs-pragma,
103 | .hljs-pi,
104 | .hljs-doctype,
105 | .hljs-shebang,
106 | .hljs-cdata {
107 | color: #999;
108 | font-weight: bold;
109 | }
110 |
111 | .hljs-deletion {
112 | background: #fdd;
113 | }
114 |
115 | .hljs-addition {
116 | background: #dfd;
117 | }
118 |
119 | .diff .hljs-change {
120 | background: #0086b3;
121 | }
122 |
123 | .hljs-chunk {
124 | color: #aaa;
125 | }
126 |
--------------------------------------------------------------------------------