├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── dartcms ├── __init__.py ├── apps │ ├── __init__.py │ ├── ads │ │ ├── __init__.py │ │ ├── abstract_models.py │ │ ├── ad │ │ │ ├── __init__.py │ │ │ └── urls.py │ │ ├── admin.py │ │ ├── adplace │ │ │ ├── __init__.py │ │ │ └── urls.py │ │ ├── adsection │ │ │ ├── __init__.py │ │ │ └── urls.py │ │ ├── apps.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20170829_0515.py │ │ │ ├── 0003_auto_20181114_1721.py │ │ │ └── __init__.py │ │ ├── models.py │ │ └── templatetags │ │ │ ├── __init__.py │ │ │ └── ads.py │ ├── auth │ │ ├── __init__.py │ │ ├── backends.py │ │ ├── forms.py │ │ ├── mixins.py │ │ ├── urls.py │ │ ├── utils.py │ │ └── views.py │ ├── dashboard │ │ ├── __init__.py │ │ ├── urls.py │ │ └── views.py │ ├── dicts │ │ ├── __init__.py │ │ └── urls.py │ ├── feedback │ │ ├── __init__.py │ │ ├── abstract_models.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── config.py │ │ ├── messages │ │ │ ├── __init__.py │ │ │ ├── urls.py │ │ │ └── views.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20160713_0349.py │ │ │ ├── 0003_auto_20160801_1607.py │ │ │ ├── 0004_auto_20170829_0515.py │ │ │ └── __init__.py │ │ ├── models.py │ │ └── urls.py │ ├── feeds │ │ ├── __init__.py │ │ ├── abstract_models.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── items │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ └── urls.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20160706_0827.py │ │ │ ├── 0003_auto_20160712_1142.py │ │ │ ├── 0004_auto_20160728_1326.py │ │ │ ├── 0005_auto_20160801_1607.py │ │ │ ├── 0006_auto_20170829_0515.py │ │ │ ├── 0007_auto_20180123_1113.py │ │ │ ├── 0008_auto_20180214_1330.py │ │ │ └── __init__.py │ │ ├── models.py │ │ └── urls.py │ ├── filemanager │ │ ├── __init__.py │ │ ├── apps.py │ │ ├── forms.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20160711_1627.py │ │ │ ├── 0003_auto_20170829_0515.py │ │ │ ├── 0004_auto_20211008_1237.py │ │ │ └── __init__.py │ │ ├── models.py │ │ ├── urls.py │ │ └── views.py │ ├── modules │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── functions.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_insert_modules.py │ │ │ ├── 0003_insert_modules.py │ │ │ ├── 0004_insert_feedback_module.py │ │ │ ├── 0005_insert_modules.py │ │ │ ├── 0006_insert_shop_modules.py │ │ │ ├── 0007_insert_shop_modules.py │ │ │ ├── 0008_module_config.py │ │ │ ├── 0009_insert_user_group_module.py │ │ │ ├── 0010_auto_20170526_0559.py │ │ │ ├── 0011_insert_modules.py │ │ │ ├── 0012_auto_20211008_1237.py │ │ │ └── __init__.py │ │ └── models.py │ ├── pages │ │ ├── __init__.py │ │ ├── abstract_models.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── forms.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_related_models.py │ │ │ ├── 0004_insert_pagemodules.py │ │ │ ├── 0005_pagemodules_relationships.py │ │ │ ├── 0006_auto_20160711_1627.py │ │ │ ├── 0007_feedback_pagemodule.py │ │ │ ├── 0008_auto_20161026_0711.py │ │ │ ├── 0009_auto_20161130_1207.py │ │ │ ├── 0010_auto_20161214_0258.py │ │ │ ├── 0011_insert_homepage.py │ │ │ ├── 0012_homepage_security.py │ │ │ ├── 0013_auto_20170829_0515.py │ │ │ ├── 0014_auto_20180123_1113.py │ │ │ └── __init__.py │ │ ├── models.py │ │ ├── signals.py │ │ ├── urls.py │ │ └── views.py │ ├── shop │ │ ├── __init__.py │ │ ├── abstract_models.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── catalog │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ └── urls.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20160714_1249.py │ │ │ ├── 0003_auto_add_order_models.py │ │ │ ├── 0004_insert_payment_types.py │ │ │ ├── 0005_insert_shipping_types.py │ │ │ ├── 0006_insert_order_statuses.py │ │ │ ├── 0007_runtime_config.py │ │ │ ├── 0008_auto_20170829_0515.py │ │ │ ├── 0009_auto_20180123_1113.py │ │ │ ├── 0010_auto_20180214_1342.py │ │ │ └── __init__.py │ │ ├── models.py │ │ ├── order │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ └── urls.py │ │ ├── order_detail │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ └── urls.py │ │ ├── product │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ └── urls.py │ │ ├── section │ │ │ ├── __init__.py │ │ │ ├── forms.py │ │ │ ├── urls.py │ │ │ └── views.py │ │ └── signals.py │ ├── sitesettings │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── forms.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_insert_settings.py │ │ │ ├── 0003_auto_20170829_0515.py │ │ │ ├── 0004_auto_20180130_1217.py │ │ │ ├── 0005_alter_sitesettings_id.py │ │ │ └── __init__.py │ │ ├── models.py │ │ └── urls.py │ ├── siteusers │ │ ├── __init__.py │ │ ├── forms.py │ │ ├── managers.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ └── __init__.py │ │ ├── models.py │ │ ├── urls.py │ │ └── views.py │ └── users │ │ ├── __init__.py │ │ ├── forms.py │ │ ├── groups │ │ ├── __init__.py │ │ └── urls.py │ │ ├── managers.py │ │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ │ ├── models.py │ │ ├── urls.py │ │ └── views.py ├── context_processors.py ├── locale │ └── ru │ │ └── LC_MESSAGES │ │ ├── django.mo │ │ ├── django.po │ │ ├── djangojs.mo │ │ └── djangojs.po ├── middleware │ ├── __init__.py │ └── page.py ├── static │ └── dartcms │ │ ├── assets │ │ ├── boostrap │ │ │ └── dist │ │ │ │ ├── css │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap-theme.min.css.map │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── npm.js │ │ ├── bootstrap-datetimepicker │ │ │ ├── css │ │ │ │ ├── bootstrap-datetimepicker-standalone.css │ │ │ │ ├── bootstrap-datetimepicker.css │ │ │ │ └── bootstrap-datetimepicker.min.css │ │ │ └── js │ │ │ │ └── bootstrap-datetimepicker.min.js │ │ ├── bootstrap-multiselect │ │ │ ├── css │ │ │ │ └── bootstrap-multiselect.css │ │ │ ├── js │ │ │ │ └── bootstrap-multiselect.js │ │ │ └── less │ │ │ │ └── bootstrap-multiselect.less │ │ ├── easyui │ │ │ ├── changelog.txt │ │ │ ├── easyloader.js │ │ │ ├── ext │ │ │ │ ├── datagrid-filter.js │ │ │ │ └── treegrid-dnd.js │ │ │ ├── jquery.easyui.min.js │ │ │ ├── jquery.easyui.mobile.js │ │ │ ├── jquery.min.js │ │ │ ├── license_freeware.txt │ │ │ ├── locale │ │ │ │ ├── easyui-lang-af.js │ │ │ │ ├── easyui-lang-am.js │ │ │ │ ├── easyui-lang-ar.js │ │ │ │ ├── easyui-lang-bg.js │ │ │ │ ├── easyui-lang-ca.js │ │ │ │ ├── easyui-lang-cs.js │ │ │ │ ├── easyui-lang-cz.js │ │ │ │ ├── easyui-lang-da.js │ │ │ │ ├── easyui-lang-de.js │ │ │ │ ├── easyui-lang-el.js │ │ │ │ ├── easyui-lang-en.js │ │ │ │ ├── easyui-lang-es.js │ │ │ │ ├── easyui-lang-fr.js │ │ │ │ ├── easyui-lang-it.js │ │ │ │ ├── easyui-lang-jp.js │ │ │ │ ├── easyui-lang-ko.js │ │ │ │ ├── easyui-lang-nl.js │ │ │ │ ├── easyui-lang-pl.js │ │ │ │ ├── easyui-lang-pt_BR.js │ │ │ │ ├── easyui-lang-ru.js │ │ │ │ ├── easyui-lang-sv_SE.js │ │ │ │ ├── easyui-lang-tr.js │ │ │ │ ├── easyui-lang-zh_CN.js │ │ │ │ └── easyui-lang-zh_TW.js │ │ │ ├── plugins │ │ │ │ ├── jquery.accordion.js │ │ │ │ ├── jquery.calendar.js │ │ │ │ ├── jquery.combo.js │ │ │ │ ├── jquery.combobox.js │ │ │ │ ├── jquery.combogrid.js │ │ │ │ ├── jquery.combotree.js │ │ │ │ ├── jquery.combotreegrid.js │ │ │ │ ├── jquery.datagrid.js │ │ │ │ ├── jquery.datalist.js │ │ │ │ ├── jquery.datebox.js │ │ │ │ ├── jquery.datetimebox.js │ │ │ │ ├── jquery.datetimespinner.js │ │ │ │ ├── jquery.dialog.js │ │ │ │ ├── jquery.draggable.js │ │ │ │ ├── jquery.droppable.js │ │ │ │ ├── jquery.filebox.js │ │ │ │ ├── jquery.form.js │ │ │ │ ├── jquery.layout.js │ │ │ │ ├── jquery.linkbutton.js │ │ │ │ ├── jquery.menu.js │ │ │ │ ├── jquery.menubutton.js │ │ │ │ ├── jquery.messager.js │ │ │ │ ├── jquery.mobile.js │ │ │ │ ├── jquery.numberbox.js │ │ │ │ ├── jquery.numberspinner.js │ │ │ │ ├── jquery.pagination.js │ │ │ │ ├── jquery.panel.js │ │ │ │ ├── jquery.parser.js │ │ │ │ ├── jquery.passwordbox.js │ │ │ │ ├── jquery.progressbar.js │ │ │ │ ├── jquery.propertygrid.js │ │ │ │ ├── jquery.resizable.js │ │ │ │ ├── jquery.searchbox.js │ │ │ │ ├── jquery.slider.js │ │ │ │ ├── jquery.spinner.js │ │ │ │ ├── jquery.splitbutton.js │ │ │ │ ├── jquery.switchbutton.js │ │ │ │ ├── jquery.tabs.js │ │ │ │ ├── jquery.tagbox.js │ │ │ │ ├── jquery.textbox.js │ │ │ │ ├── jquery.timespinner.js │ │ │ │ ├── jquery.tooltip.js │ │ │ │ ├── jquery.tree.js │ │ │ │ ├── jquery.treegrid.js │ │ │ │ ├── jquery.validatebox.js │ │ │ │ └── jquery.window.js │ │ │ ├── readme.txt │ │ │ ├── src │ │ │ │ ├── easyloader.js │ │ │ │ ├── jquery.accordion.js │ │ │ │ ├── jquery.calendar.js │ │ │ │ ├── jquery.combobox.js │ │ │ │ ├── jquery.datebox.js │ │ │ │ ├── jquery.draggable.js │ │ │ │ ├── jquery.droppable.js │ │ │ │ ├── jquery.form.js │ │ │ │ ├── jquery.linkbutton.js │ │ │ │ ├── jquery.menu.js │ │ │ │ ├── jquery.parser.js │ │ │ │ ├── jquery.progressbar.js │ │ │ │ ├── jquery.propertygrid.js │ │ │ │ ├── jquery.resizable.js │ │ │ │ ├── jquery.slider.js │ │ │ │ ├── jquery.tabs.js │ │ │ │ └── jquery.window.js │ │ │ └── themes │ │ │ │ ├── black │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ ├── bootstrap │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ ├── color.css │ │ │ │ ├── default │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ ├── gray │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ ├── icon.css │ │ │ │ ├── icons │ │ │ │ ├── back.png │ │ │ │ ├── blank.gif │ │ │ │ ├── cancel.png │ │ │ │ ├── chevron.png │ │ │ │ ├── clear.png │ │ │ │ ├── cut.png │ │ │ │ ├── download.png │ │ │ │ ├── edit_add.png │ │ │ │ ├── edit_remove.png │ │ │ │ ├── filesave.png │ │ │ │ ├── filter.png │ │ │ │ ├── folder.png │ │ │ │ ├── help.png │ │ │ │ ├── large_chart.png │ │ │ │ ├── large_clipart.png │ │ │ │ ├── large_picture.png │ │ │ │ ├── large_shapes.png │ │ │ │ ├── large_smartart.png │ │ │ │ ├── lock.png │ │ │ │ ├── man.png │ │ │ │ ├── mini_add.png │ │ │ │ ├── mini_edit.png │ │ │ │ ├── mini_refresh.png │ │ │ │ ├── more.png │ │ │ │ ├── move.png │ │ │ │ ├── next.png │ │ │ │ ├── no.png │ │ │ │ ├── ok.png │ │ │ │ ├── pencil.png │ │ │ │ ├── print.png │ │ │ │ ├── redo.png │ │ │ │ ├── reload.png │ │ │ │ ├── search.png │ │ │ │ ├── sort.png │ │ │ │ ├── sum.png │ │ │ │ ├── tip.png │ │ │ │ ├── undo.png │ │ │ │ └── upload.png │ │ │ │ ├── material │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── Thumbs.db │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ ├── metro │ │ │ │ ├── accordion.css │ │ │ │ ├── calendar.css │ │ │ │ ├── combo.css │ │ │ │ ├── combobox.css │ │ │ │ ├── datagrid.css │ │ │ │ ├── datalist.css │ │ │ │ ├── datebox.css │ │ │ │ ├── dialog.css │ │ │ │ ├── easyui.css │ │ │ │ ├── filebox.css │ │ │ │ ├── images │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ └── validatebox_warning.png │ │ │ │ ├── layout.css │ │ │ │ ├── linkbutton.css │ │ │ │ ├── menu.css │ │ │ │ ├── menubutton.css │ │ │ │ ├── messager.css │ │ │ │ ├── numberbox.css │ │ │ │ ├── pagination.css │ │ │ │ ├── panel.css │ │ │ │ ├── progressbar.css │ │ │ │ ├── propertygrid.css │ │ │ │ ├── searchbox.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── splitbutton.css │ │ │ │ ├── switchbutton.css │ │ │ │ ├── tabs.css │ │ │ │ ├── textbox.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── tree.css │ │ │ │ ├── validatebox.css │ │ │ │ └── window.css │ │ │ │ └── mobile.css │ │ ├── font-awesome │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ └── font-awesome.min.css │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ └── fontawesome-webfont.woff │ │ │ ├── less │ │ │ │ ├── bordered-pulled.less │ │ │ │ ├── core.less │ │ │ │ ├── fixed-width.less │ │ │ │ ├── font-awesome.less │ │ │ │ ├── icons.less │ │ │ │ ├── larger.less │ │ │ │ ├── list.less │ │ │ │ ├── mixins.less │ │ │ │ ├── path.less │ │ │ │ ├── rotated-flipped.less │ │ │ │ ├── spinning.less │ │ │ │ ├── stacked.less │ │ │ │ └── variables.less │ │ │ └── scss │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ ├── _core.scss │ │ │ │ ├── _fixed-width.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── _larger.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _path.scss │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ ├── _spinning.scss │ │ │ │ ├── _stacked.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── font-awesome.scss │ │ ├── jasny-bootstrap │ │ │ ├── css │ │ │ │ ├── jasny-bootstrap.css │ │ │ │ ├── jasny-bootstrap.css.map │ │ │ │ └── jasny-bootstrap.min.css │ │ │ └── js │ │ │ │ ├── jasny-bootstrap.js │ │ │ │ └── jasny-bootstrap.min.js │ │ ├── jquery-modal │ │ │ ├── jquery-modal.min.css │ │ │ └── jquery-modal.min.js │ │ ├── pnotify │ │ │ ├── pnotify.min.css │ │ │ └── pnotify.min.js │ │ └── tinymce │ │ │ ├── jquery.tinymce.min.js │ │ │ ├── langs │ │ │ ├── readme.md │ │ │ ├── ru.js │ │ │ └── ru_RU.js │ │ │ ├── license.txt │ │ │ ├── plugins │ │ │ ├── advlist │ │ │ │ └── plugin.min.js │ │ │ ├── anchor │ │ │ │ └── plugin.min.js │ │ │ ├── autolink │ │ │ │ └── plugin.min.js │ │ │ ├── autoresize │ │ │ │ └── plugin.min.js │ │ │ ├── autosave │ │ │ │ └── plugin.min.js │ │ │ ├── bbcode │ │ │ │ └── plugin.min.js │ │ │ ├── charmap │ │ │ │ └── plugin.min.js │ │ │ ├── code │ │ │ │ └── plugin.min.js │ │ │ ├── codesample │ │ │ │ ├── css │ │ │ │ │ └── prism.css │ │ │ │ └── plugin.min.js │ │ │ ├── colorpicker │ │ │ │ └── plugin.min.js │ │ │ ├── contextmenu │ │ │ │ └── plugin.min.js │ │ │ ├── directionality │ │ │ │ └── plugin.min.js │ │ │ ├── emoticons │ │ │ │ ├── img │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ └── smiley-yell.gif │ │ │ │ └── plugin.min.js │ │ │ ├── example │ │ │ │ ├── dialog.html │ │ │ │ └── plugin.min.js │ │ │ ├── example_dependency │ │ │ │ └── plugin.min.js │ │ │ ├── fontawesome │ │ │ │ ├── css │ │ │ │ │ └── fontawesome.min.css │ │ │ │ ├── langs │ │ │ │ │ ├── de.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── nl.js │ │ │ │ │ └── ru.js │ │ │ │ └── plugin.min.js │ │ │ ├── fullpage │ │ │ │ └── plugin.min.js │ │ │ ├── fullscreen │ │ │ │ └── plugin.min.js │ │ │ ├── help │ │ │ │ ├── img │ │ │ │ │ └── logo.png │ │ │ │ └── plugin.min.js │ │ │ ├── hr │ │ │ │ └── plugin.min.js │ │ │ ├── image │ │ │ │ └── plugin.min.js │ │ │ ├── imagetools │ │ │ │ └── plugin.min.js │ │ │ ├── importcss │ │ │ │ └── plugin.min.js │ │ │ ├── insertdatetime │ │ │ │ └── plugin.min.js │ │ │ ├── layer │ │ │ │ └── plugin.min.js │ │ │ ├── legacyoutput │ │ │ │ └── plugin.min.js │ │ │ ├── link │ │ │ │ └── plugin.min.js │ │ │ ├── lists │ │ │ │ └── plugin.min.js │ │ │ ├── media │ │ │ │ └── plugin.min.js │ │ │ ├── nonbreaking │ │ │ │ └── plugin.min.js │ │ │ ├── noneditable │ │ │ │ └── plugin.min.js │ │ │ ├── pagebreak │ │ │ │ └── plugin.min.js │ │ │ ├── paste │ │ │ │ └── plugin.min.js │ │ │ ├── preview │ │ │ │ └── plugin.min.js │ │ │ ├── print │ │ │ │ └── plugin.min.js │ │ │ ├── save │ │ │ │ └── plugin.min.js │ │ │ ├── searchreplace │ │ │ │ └── plugin.min.js │ │ │ ├── spellchecker │ │ │ │ └── plugin.min.js │ │ │ ├── tabfocus │ │ │ │ └── plugin.min.js │ │ │ ├── table │ │ │ │ └── plugin.min.js │ │ │ ├── template │ │ │ │ └── plugin.min.js │ │ │ ├── textcolor │ │ │ │ └── plugin.min.js │ │ │ ├── textpattern │ │ │ │ └── plugin.min.js │ │ │ ├── toc │ │ │ │ └── plugin.min.js │ │ │ ├── visualblocks │ │ │ │ ├── css │ │ │ │ │ └── visualblocks.css │ │ │ │ └── plugin.min.js │ │ │ ├── visualchars │ │ │ │ └── plugin.min.js │ │ │ └── wordcount │ │ │ │ └── plugin.min.js │ │ │ ├── skins │ │ │ └── lightgray │ │ │ │ ├── content.inline.min.css │ │ │ │ ├── content.min.css │ │ │ │ ├── content.mobile.min.css │ │ │ │ ├── fonts │ │ │ │ ├── tinymce-mobile.woff │ │ │ │ ├── tinymce-small.eot │ │ │ │ ├── tinymce-small.svg │ │ │ │ ├── tinymce-small.ttf │ │ │ │ ├── tinymce-small.woff │ │ │ │ ├── tinymce.eot │ │ │ │ ├── tinymce.svg │ │ │ │ ├── tinymce.ttf │ │ │ │ └── tinymce.woff │ │ │ │ ├── img │ │ │ │ ├── anchor.gif │ │ │ │ ├── loader.gif │ │ │ │ ├── object.gif │ │ │ │ └── trans.gif │ │ │ │ ├── skin.min.css │ │ │ │ └── skin.mobile.min.css │ │ │ ├── themes │ │ │ ├── inlite │ │ │ │ └── theme.min.js │ │ │ ├── mobile │ │ │ │ └── theme.min.js │ │ │ └── modern │ │ │ │ └── theme.min.js │ │ │ └── tinymce.min.js │ │ ├── css │ │ ├── Gruntfile.js │ │ ├── less │ │ │ ├── apps │ │ │ │ ├── auth.less │ │ │ │ ├── filemanager.less │ │ │ │ └── users.less │ │ │ ├── content.less │ │ │ ├── forms.less │ │ │ ├── grid.less │ │ │ ├── mixins │ │ │ │ ├── background.less │ │ │ │ ├── box-sizing.less │ │ │ │ ├── radius.less │ │ │ │ └── shadow.less │ │ │ ├── navigation.less │ │ │ ├── style.less │ │ │ └── variables.less │ │ ├── lib │ │ │ └── awesome-bootstrap-checkbox │ │ │ │ └── awesome-bootstrap-checkbox.css │ │ ├── package.json │ │ └── style.css │ │ ├── images │ │ └── logo.png │ │ └── js │ │ ├── apps │ │ ├── base │ │ │ ├── forms.js │ │ │ ├── grid.js │ │ │ ├── http.js │ │ │ └── navigation.js │ │ ├── filemanager │ │ │ └── index.js │ │ ├── pages │ │ │ └── form.js │ │ └── users │ │ │ └── form.js │ │ └── lib │ │ ├── jquery-cookie │ │ └── jquery.cookie.js │ │ ├── jquery-form │ │ └── jquery.form.js │ │ └── jquery-validation │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ ├── jquery.validate.min.js │ │ └── localization │ │ ├── messages_ru.js │ │ └── messages_ru.min.js ├── templates │ └── dartcms │ │ ├── apps │ │ ├── ads │ │ │ └── place.html │ │ ├── auth │ │ │ └── login.html │ │ ├── dashboard │ │ │ └── index.html │ │ ├── filemanager │ │ │ └── index.html │ │ ├── pages │ │ │ ├── delete.html │ │ │ ├── grid.html │ │ │ ├── insert.html │ │ │ └── update.html │ │ ├── shop │ │ │ └── grid.html │ │ └── users │ │ │ ├── change_password.html │ │ │ ├── insert.html │ │ │ ├── partial │ │ │ └── modules_widget.html │ │ │ └── update.html │ │ ├── base │ │ ├── base.html │ │ └── index.html │ │ ├── forms │ │ ├── horizontal.html │ │ └── partial │ │ │ ├── horizontal_field.html │ │ │ ├── horizontal_form.html │ │ │ ├── horizontal_inlines.html │ │ │ └── inline_field.html │ │ └── views │ │ ├── delete.html │ │ ├── grid.html │ │ ├── insert.html │ │ ├── partials │ │ ├── datepickers.html │ │ ├── grid_search.html │ │ ├── loading_indicator.html │ │ ├── security_alert.html │ │ └── tinymce.html │ │ ├── update.html │ │ └── view.html ├── templatetags │ ├── __init__.py │ ├── dartcms_helpers.py │ ├── ifstartswith │ │ └── __init__.py │ └── module_perms.py ├── urls.py ├── utils │ ├── __init__.py │ ├── config.py │ ├── db.py │ ├── fields.py │ ├── forms.py │ ├── loading.py │ ├── serialization.py │ └── translation.py └── views │ ├── __init__.py │ └── mixins.py ├── docs ├── Makefile ├── _static │ └── dashboard.png ├── _templates │ └── sidebar.html ├── app_forking.rst ├── available_configuration.rst ├── conf.py ├── dynamic_loading.rst ├── generic_views.rst ├── index.rst ├── modules.rst └── quickstart.rst ├── pytest.ini ├── requirements.txt ├── setup.py └── tests └── __init__.py /.gitignore: -------------------------------------------------------------------------------- 1 | # PyCharm 2 | .idea 3 | 4 | # Python 5 | *.pyc 6 | venv 7 | 8 | # Node 9 | node_modules 10 | npm-debug.log 11 | 12 | # Packages 13 | *.egg-info 14 | build 15 | /dist 16 | 17 | # Git 18 | *.orig 19 | 20 | # Docs 21 | docs/_build 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2016-05-19 2 | Pre-release build. -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | ## Adding features or fixing bugs 4 | 5 | * Fork the repo 6 | * Check out a feature or bug branch 7 | * Add your changes 8 | * Update README when needed 9 | * Submit a pull request to upstream repo 10 | * Add description of your changes 11 | * Ensure tests are passing 12 | * Ensure branch is mergeable 13 | 14 | ## Testing 15 | 16 | * Please make sure tests pass with `py.test` 17 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include dartcms/templates * 2 | recursive-include dartcms/static * 3 | recursive-include dartcms/locale * 4 | prune dartcms/static/dartcms/css/node_modules* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | DartCMS 2 | ======= 3 | 4 | DartCMS is an open-source content management system based on the popular Django Framework. It's friendly for developers 5 | and end-users. 6 | 7 | 8 | Features 9 | -------- 10 | 11 | - Tree-like website page structure 12 | - Fast and easy CMS module developing 13 | - Built with Twitter Bootstrap 3 14 | - TinyMCE as rich editor 15 | - Custom file manager to work with TinyMCE 16 | 17 | 18 | Modules 19 | ------- 20 | 21 | At the moment, these modules are included: 22 | 23 | - Site Structure 24 | - CMS Users 25 | - Site Settings 26 | - News and Articles 27 | - Advertising (ads, ad places and ad sections) 28 | - Feedback and FAQ 29 | - E-shop. With product categories, sections etc 30 | 31 | 32 | Installation 33 | ------------ 34 | 35 | You can install DartCMS with `pip`: 36 | 37 | `pip install dartcms` 38 | 39 | 40 | Documentation 41 | ------------- 42 | 43 | Documentation can be found here - http://dartcms.readthedocs.io/ 44 | -------------------------------------------------------------------------------- /dartcms/apps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/ads/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.ads.apps.AdsConfig' -------------------------------------------------------------------------------- /dartcms/apps/ads/ad/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/ads/ad/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/ads/ad/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms import get_model 2 | from dartcms.utils.config import DartCMSConfig 3 | 4 | app_name = 'ad' 5 | 6 | Ad = get_model('ads', 'Ad') 7 | 8 | config = DartCMSConfig({ 9 | 'model': Ad, 10 | 'grid': { 11 | 'grid_columns': [ 12 | {'field': 'name', 'width': '30%'}, 13 | {'field': 'place', 'width': '20%'}, 14 | {'field': 'date_from', 'width': '20%'}, 15 | {'field': 'date_to', 'width': '20%'}, 16 | {'field': 'is_enabled', 'width': '10%'}, 17 | ] 18 | } 19 | }) 20 | 21 | urlpatterns = config.get_urls() 22 | -------------------------------------------------------------------------------- /dartcms/apps/ads/admin.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.contrib import admin 3 | 4 | AdPlace = get_model('ads', 'AdPlace') 5 | AdSection = get_model('ads', 'AdSection') 6 | 7 | 8 | class AdPlaceAdmin(admin.ModelAdmin): 9 | pass 10 | 11 | 12 | admin.site.register(AdPlace, AdPlaceAdmin) 13 | 14 | 15 | class AdSectionAdmin(admin.ModelAdmin): 16 | pass 17 | 18 | 19 | admin.site.register(AdSection, AdSectionAdmin) 20 | -------------------------------------------------------------------------------- /dartcms/apps/ads/adplace/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/ads/adplace/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/ads/adplace/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.ads.models import AdPlace 2 | from dartcms.utils.config import DartCMSConfig 3 | from django.forms import modelform_factory 4 | 5 | app_name = 'adplace' 6 | 7 | config = DartCMSConfig({ 8 | 'model': AdPlace, 9 | 'grid': { 10 | 'grid_columns': [ 11 | {'field': 'name', 'width': '80%'}, 12 | {'field': 'is_enabled', 'width': '20%'}, 13 | ], 14 | 'base_grid_actions': ['update'] 15 | }, 16 | 'form': { 17 | 'form_class': modelform_factory(AdPlace, exclude=['slug']), 18 | }, 19 | }) 20 | 21 | urlpatterns = config.get_urls(exclude=['insert', 'delete']) 22 | -------------------------------------------------------------------------------- /dartcms/apps/ads/adsection/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/ads/adsection/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/ads/adsection/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.ads.models import AdSection 2 | from dartcms.utils.config import DartCMSConfig 3 | 4 | app_name = 'adsection' 5 | 6 | config = DartCMSConfig({ 7 | 'model': AdSection, 8 | 'grid': { 9 | 'grid_columns': [ 10 | {'field': 'name', 'width': '80%'}, 11 | {'field': 'is_enabled', 'width': '20%'}, 12 | ] 13 | } 14 | }) 15 | 16 | urlpatterns = config.get_urls() 17 | -------------------------------------------------------------------------------- /dartcms/apps/ads/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class AdsConfig(AppConfig): 6 | name = 'dartcms.apps.ads' 7 | verbose_name = _('Ads') 8 | -------------------------------------------------------------------------------- /dartcms/apps/ads/migrations/0003_auto_20181114_1721.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.3 on 2018-11-14 10:21 2 | 3 | from django.db import migrations 4 | import versatileimagefield.fields 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ads', '0002_auto_20170829_0515'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='ad', 16 | name='picture', 17 | field=versatileimagefield.fields.VersatileImageField(blank=True, null=True, upload_to='b/%Y/%m/%d', verbose_name='Picture'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/ads/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/ads/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/ads/models.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import is_model_registered 2 | 3 | from .abstract_models import * 4 | 5 | __all__ = [ 6 | 'AdPlace', 7 | 'AdSection' 8 | ] 9 | 10 | if not is_model_registered('ads', 'Ad'): 11 | class Ad(AbstractAd): 12 | pass 13 | 14 | __all__.append('Ad') 15 | -------------------------------------------------------------------------------- /dartcms/apps/ads/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- -------------------------------------------------------------------------------- /dartcms/apps/ads/templatetags/ads.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | 3 | from dartcms.apps.ads.models import AdPlace 4 | from dartcms.utils.loading import get_model 5 | from django import template 6 | 7 | register = template.Library() 8 | 9 | 10 | @register.inclusion_tag('dartcms/apps/ads/place.html', name='ad_place', takes_context=True) 11 | def ad_place(context, place, limit=1): 12 | return get_ads(context, place, limit) 13 | 14 | 15 | def get_ads(context, place, limit): 16 | if not hasattr(context['request'], 'page') or context['request'].page is None: 17 | return {} 18 | 19 | section = context['request'].page.ad_section 20 | place = AdPlace.objects.get(slug=place) 21 | 22 | ad_model = get_model('ads', 'Ad') 23 | 24 | ads = ad_model.objects.filter( 25 | section=section, 26 | place=place, 27 | date_from__lt=datetime.now(), 28 | date_to__gt=datetime.now() 29 | ).order_by('?')[0:limit] 30 | 31 | return {'object_list': ads} 32 | -------------------------------------------------------------------------------- /dartcms/apps/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/auth/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/auth/backends.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.backends import ModelBackend 2 | 3 | from .utils import get_user_model 4 | 5 | 6 | class DartCMSAuthBackend(ModelBackend): 7 | @property 8 | def user_model(self): 9 | return get_user_model() 10 | 11 | def authenticate(self, username=None, password=None, **kwargs): 12 | try: 13 | user = self.user_model.objects.get(username=username, is_active=True, is_staff=True) 14 | if user.check_password(password): 15 | return user 16 | except self.user_model.DoesNotExist: 17 | return None 18 | 19 | def get_user(self, user_id): 20 | try: 21 | return self.user_model.objects.get(pk=user_id) 22 | except self.user_model.DoesNotExist: 23 | return None 24 | -------------------------------------------------------------------------------- /dartcms/apps/auth/mixins.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.mixins import UserPassesTestMixin 2 | 3 | 4 | class StaffRequiredMixin(UserPassesTestMixin): 5 | login_url = 'dartcms:auth:login' 6 | 7 | def test_func(self): 8 | return self.request.user.is_staff 9 | -------------------------------------------------------------------------------- /dartcms/apps/auth/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from .views import LoginView, LogoutView 4 | 5 | app_name = 'auth' 6 | 7 | urlpatterns = [ 8 | url(r'^login/$', LoginView.as_view(), name='login'), 9 | url(r'^logout/$', LogoutView.as_view(), name='logout'), 10 | ] 11 | -------------------------------------------------------------------------------- /dartcms/apps/auth/utils.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.conf import settings 3 | 4 | 5 | def get_user_model(): 6 | app_label, model_name = getattr(settings, 'AUTH_USER_MODEL', 'auth.User').split('.') 7 | return get_model(app_label, model_name) 8 | -------------------------------------------------------------------------------- /dartcms/apps/auth/views.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth import login, logout 2 | from django.shortcuts import redirect 3 | from django.urls import reverse_lazy 4 | from django.views.generic import FormView, RedirectView 5 | 6 | from .forms import LoginForm 7 | 8 | 9 | class LoginView(FormView): 10 | template_name = "dartcms/apps/auth/login.html" 11 | form_class = LoginForm 12 | 13 | def get_initial(self): 14 | if 'next' in self.request.GET: 15 | return {'next': self.request.GET['next']} 16 | return {} 17 | 18 | def form_valid(self, form): 19 | data = form.cleaned_data 20 | user = form.get_user() 21 | login(self.request, user) 22 | 23 | redirect_url = data.get('next', reverse_lazy('dartcms:dashboard:index')) 24 | return redirect(redirect_url) 25 | 26 | 27 | class LogoutView(RedirectView): 28 | url = 'dartcms:dashboard:index' 29 | 30 | def get(self, request, *args, **kwargs): 31 | logout(request) 32 | return redirect(self.url) 33 | -------------------------------------------------------------------------------- /dartcms/apps/dashboard/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/dashboard/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/dashboard/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from .views import DashboardIndexView 4 | 5 | app_name = 'dashboard' 6 | 7 | urlpatterns = [ 8 | url(r'^$', DashboardIndexView.as_view(), name='index'), 9 | ] 10 | -------------------------------------------------------------------------------- /dartcms/apps/dashboard/views.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.auth.mixins import StaffRequiredMixin 2 | from django.views.generic import TemplateView 3 | 4 | 5 | class DashboardIndexView(StaffRequiredMixin, TemplateView): 6 | template_name = 'dartcms/apps/dashboard/index.html' 7 | -------------------------------------------------------------------------------- /dartcms/apps/dicts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/dicts/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/dicts/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.views import (DeleteObjectView, GridView, InsertObjectView, 2 | UpdateObjectView) 3 | from django.conf.urls import url 4 | 5 | app_name = 'dicts' 6 | 7 | urlpatterns = [ 8 | url(r'^$', GridView.as_view(search=['name']), name='index'), 9 | url(r'^insert/$', InsertObjectView.as_view(), name='insert'), 10 | url(r'^update/(?P\d+)/$', UpdateObjectView.as_view(), name='update'), 11 | url(r'^delete/(?P\d+)/$', DeleteObjectView.as_view(), name='delete'), 12 | ] 13 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.feedback.apps.FeedbackConfig' -------------------------------------------------------------------------------- /dartcms/apps/feedback/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import FormType 4 | 5 | 6 | class FormTypeAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | admin.site.register(FormType, FormTypeAdmin) 11 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class FeedbackConfig(AppConfig): 6 | name = 'dartcms.apps.feedback' 7 | verbose_name = _('Feedback') 8 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/config.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class FeedbackConfig(AppConfig): 5 | name = 'dartcms.apps.feedback' 6 | verbose_name = 'Feedback' 7 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/messages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/feedback/messages/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/feedback/migrations/0002_auto_20160713_0349.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-13 03:49 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feedback', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='questionmessage', 16 | name='answer', 17 | field=models.TextField(blank=True, null=True, verbose_name='Answer'), 18 | ), 19 | migrations.AddField( 20 | model_name='questionmessage', 21 | name='is_visible', 22 | field=models.BooleanField(default=False, verbose_name='Is Visible'), 23 | ), 24 | ] 25 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/migrations/0003_auto_20160801_1607.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.8 on 2016-08-01 16:07 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feedback', '0002_auto_20160713_0349'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterModelOptions( 15 | name='formtype', 16 | options={'verbose_name': 'Form type', 'verbose_name_plural': 'Form types'}, 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/migrations/0004_auto_20170829_0515.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.10.4 on 2017-08-29 05:15 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feedback', '0003_auto_20160801_1607'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='formtype', 16 | name='slug', 17 | field=models.SlugField(choices=[('contact', 'Contact form'), ('question', 'Questions form')], verbose_name='Type ID'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/feedback/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/feedback/models.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import is_model_registered 2 | 3 | from .abstract_models import * 4 | 5 | __all__ = [ 6 | 'FormType', 7 | ] 8 | 9 | if not is_model_registered('feedback', 'QuestionMessage'): 10 | class QuestionMessage(AbstractQuestionMessage): 11 | pass 12 | 13 | __all__.append('QuestionMessage') 14 | 15 | if not is_model_registered('feedback', 'ContactMessage'): 16 | class ContactMessage(AbstractContactMessage): 17 | pass 18 | 19 | __all__.append('ContactMessage') 20 | -------------------------------------------------------------------------------- /dartcms/apps/feedback/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.config import DartCMSConfig 2 | 3 | from .models import FormType 4 | 5 | app_name = 'feedback' 6 | 7 | config = DartCMSConfig({ 8 | 'model': FormType, 9 | 'grid': { 10 | 'grid_columns': [ 11 | {'field': 'name', 'width': '70%'}, 12 | {'field': 'slug', 'width': '30%'}, 13 | ], 14 | 'additional_grid_actions': [ 15 | {'url': 'messages', 'kwarg_name': 'form_type', 'include_urls': 'dartcms.apps.feedback.messages.urls'} 16 | ] 17 | }, 18 | }) 19 | 20 | urlpatterns = config.get_urls() 21 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.feeds.apps.FeedsConfig' -------------------------------------------------------------------------------- /dartcms/apps/feeds/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import FeedType 4 | 5 | 6 | class FeedTypeAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | admin.site.register(FeedType, FeedTypeAdmin) 11 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/apps.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.fields import monkeypatch_versatile_image_field 2 | from django.apps import AppConfig 3 | from django.utils.translation import ugettext_lazy as _ 4 | 5 | 6 | class FeedsConfig(AppConfig): 7 | name = 'dartcms.apps.feeds' 8 | verbose_name = _('Feeds') 9 | 10 | def ready(self): 11 | monkeypatch_versatile_image_field() 12 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/items/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/feeds/items/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/feeds/items/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django import forms 3 | 4 | 5 | class FeedItemForm(forms.ModelForm): 6 | class Meta: 7 | model = get_model('feeds', 'FeedItem') 8 | exclude = ['feed', 'slug'] 9 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/items/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.config import DartCMSConfig 2 | from dartcms.utils.loading import get_model 3 | 4 | from .forms import FeedItemForm 5 | 6 | app_name = 'feeditems' 7 | 8 | FeedItem = get_model('feeds', 'FeedItem') 9 | 10 | config = DartCMSConfig({ 11 | 'model': FeedItem, 12 | 'parent_kwarg_name': 'feed', 13 | 'parent_model_fk': 'feed_id', 14 | 'grid': { 15 | 'grid_columns': [ 16 | {'field': 'name', 'width': '60%'}, 17 | {'field': 'is_visible', 'width': '20%'}, 18 | {'field': 'date_published', 'width': '20%'}, 19 | ], 20 | 'search': [ 21 | 'name', 'date_published', 'is_visible' 22 | ] 23 | }, 24 | 'form': { 25 | 'form_class': FeedItemForm, 26 | } 27 | }) 28 | 29 | urlpatterns = config.get_urls() 30 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0002_auto_20160706_0827.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.6 on 2016-07-06 08:27 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feeds', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterUniqueTogether( 15 | name='feed', 16 | unique_together=set([]), 17 | ), 18 | migrations.RemoveField( 19 | model_name='feed', 20 | name='slug', 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0003_auto_20160712_1142.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-12 11:42 2 | from __future__ import unicode_literals 3 | 4 | import django.db.models.deletion 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('feeds', '0002_auto_20160706_0827'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='feeditem', 17 | name='feed', 18 | field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='feeds.Feed', verbose_name='Feed'), 19 | ), 20 | migrations.AlterField( 21 | model_name='feeditem', 22 | name='picture', 23 | field=models.ImageField(blank=True, null=True, upload_to=b'feeds/%Y/%m/%d', verbose_name='Picture'), 24 | ), 25 | ] 26 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0005_auto_20160801_1607.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.8 on 2016-08-01 16:07 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feeds', '0004_auto_20160728_1326'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='feeditem', 16 | name='is_main', 17 | field=models.BooleanField(default=True, verbose_name='Is Main'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0006_auto_20170829_0515.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.10.4 on 2017-08-29 05:15 2 | from __future__ import unicode_literals 3 | 4 | import autoslug.fields 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('feeds', '0005_auto_20160801_1607'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='feeditem', 17 | name='picture', 18 | field=models.ImageField(blank=True, null=True, upload_to='feeds/%Y/%m/%d', verbose_name='Picture'), 19 | ), 20 | migrations.AlterField( 21 | model_name='feeditem', 22 | name='slug', 23 | field=autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='URL'), 24 | ), 25 | ] 26 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0007_auto_20180123_1113.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.1 on 2018-01-23 11:13 2 | 3 | import django.db.models.deletion 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feeds', '0006_auto_20170829_0515'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='feed', 16 | name='type', 17 | field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='feeds', to='feeds.FeedType', verbose_name='Type'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/0008_auto_20180214_1330.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.1 on 2018-02-14 13:30 2 | 3 | import versatileimagefield.fields 4 | from django.db import migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('feeds', '0007_auto_20180123_1113'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='feeditem', 16 | name='picture', 17 | field=versatileimagefield.fields.VersatileImageField(blank=True, null=True, upload_to='feeds/%Y/%m/%d', verbose_name='Picture'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/feeds/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/feeds/models.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import is_model_registered 2 | 3 | from .abstract_models import * 4 | 5 | __all__ = [ 6 | 'FeedType', 7 | 'Feed' 8 | ] 9 | 10 | if not is_model_registered('feeds', 'FeedItem'): 11 | class FeedItem(AbstractFeedItem): 12 | pass 13 | 14 | __all__.append('FeedItem') 15 | -------------------------------------------------------------------------------- /dartcms/apps/feeds/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.config import DartCMSConfig 2 | from dartcms.utils.loading import get_model 3 | from django.forms import modelform_factory 4 | 5 | app_name = 'feeds' 6 | 7 | Feed = get_model('feeds', 'Feed') 8 | 9 | config = DartCMSConfig({ 10 | 'model': Feed, 11 | 'grid': { 12 | 'grid_columns': [ 13 | {'field': 'type', 'width': '10%'}, 14 | {'field': 'name', 'width': '90%'}, 15 | ], 16 | 'additional_grid_actions': [ 17 | {'url': 'items', 'kwarg_name': 'feed', 'include_urls': 'dartcms.apps.feeds.items.urls'} 18 | ] 19 | }, 20 | 'form': { 21 | 'form_class': modelform_factory(Feed, exclude=[]), 22 | } 23 | }) 24 | 25 | urlpatterns = config.get_urls() 26 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.filemanager.apps.FileManagerConfig' 2 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class FileManagerConfig(AppConfig): 6 | name = 'dartcms.apps.filemanager' 7 | verbose_name = _('FileManager') 8 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/forms.py: -------------------------------------------------------------------------------- 1 | from django.forms import ModelForm 2 | 3 | from .models import Folder 4 | 5 | 6 | class FolderForm(ModelForm): 7 | class Meta: 8 | model = Folder 9 | fields = ['name'] 10 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/migrations/0002_auto_20160711_1627.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-11 16:27 2 | from __future__ import unicode_literals 3 | 4 | import django.db.models.deletion 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('filemanager', '0001_initial'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='file', 17 | name='folder', 18 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='filemanager.Folder'), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/migrations/0003_auto_20170829_0515.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.10.4 on 2017-08-29 05:15 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('filemanager', '0002_auto_20160711_1627'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='file', 16 | name='path', 17 | field=models.FileField(max_length=300, upload_to='uploads/%Y/%m/%d'), 18 | ), 19 | migrations.AlterField( 20 | model_name='folder', 21 | name='name', 22 | field=models.CharField(error_messages={'unique': 'Folder with this name is already exists'}, max_length=255, unique=True), 23 | ), 24 | ] 25 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/migrations/0004_auto_20211008_1237.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.8 on 2021-10-08 12:37 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('filemanager', '0003_auto_20170829_0515'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='file', 15 | name='id', 16 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 17 | ), 18 | migrations.AlterField( 19 | model_name='folder', 20 | name='id', 21 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /dartcms/apps/filemanager/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/filemanager/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/filemanager/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.db.models.signals import pre_delete 3 | from django.dispatch.dispatcher import receiver 4 | from django.utils.translation import ugettext_lazy as _ 5 | 6 | 7 | class Folder(models.Model): 8 | name = models.CharField(max_length=255, unique=True, 9 | error_messages={'unique': _('Folder with this name is already exists')}) 10 | date_created = models.DateTimeField(auto_now_add=True) 11 | 12 | 13 | class File(models.Model): 14 | folder = models.ForeignKey(Folder, related_name='files', on_delete=models.CASCADE) 15 | path = models.FileField(upload_to='uploads/%Y/%m/%d', max_length=300) 16 | date_created = models.DateTimeField(auto_now_add=True) 17 | 18 | 19 | @receiver(pre_delete, sender=File) 20 | def files_delete(sender, instance, **kwargs): 21 | instance.path.delete(False) 22 | -------------------------------------------------------------------------------- /dartcms/apps/modules/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.modules.apps.ModulesConfig' -------------------------------------------------------------------------------- /dartcms/apps/modules/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import Module, ModuleGroup, ModulePermission 4 | 5 | 6 | class ModuleGroupAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | admin.site.register(ModuleGroup, ModuleGroupAdmin) 11 | 12 | 13 | class ModuleAdmin(admin.ModelAdmin): 14 | pass 15 | 16 | 17 | admin.site.register(Module, ModuleAdmin) 18 | 19 | 20 | class ModulePermissionAdmin(admin.ModelAdmin): 21 | pass 22 | 23 | 24 | admin.site.register(ModulePermission, ModulePermissionAdmin) 25 | -------------------------------------------------------------------------------- /dartcms/apps/modules/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class ModulesConfig(AppConfig): 6 | name = 'dartcms.apps.modules' 7 | verbose_name = _('DartCMS Modules') 8 | -------------------------------------------------------------------------------- /dartcms/apps/modules/functions.py: -------------------------------------------------------------------------------- 1 | from django.urls import NoReverseMatch, reverse 2 | 3 | from .models import Module, ModulePermission 4 | 5 | 6 | def get_current_module(path): 7 | try: 8 | dartcms_path = reverse('dartcms:dashboard:index') 9 | except NoReverseMatch: 10 | return {} 11 | 12 | module_slug = path.replace(dartcms_path, '', 1).split('/')[0] 13 | if module_slug: 14 | try: 15 | return Module.objects.get(slug=module_slug) 16 | except Module.DoesNotExist: 17 | pass 18 | 19 | 20 | def get_current_module_perms(request): 21 | cms_module = get_current_module(request.path) 22 | if cms_module: 23 | return ModulePermission.objects.filter(user=request.user, module=cms_module).first() 24 | -------------------------------------------------------------------------------- /dartcms/apps/modules/migrations/0008_module_config.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-29 02:29 2 | from __future__ import unicode_literals 3 | 4 | import jsonfield.fields 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('modules', '0007_insert_shop_modules'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='module', 17 | name='config', 18 | field=jsonfield.fields.JSONField(blank=True, null=True, verbose_name='Config'), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /dartcms/apps/modules/migrations/0012_auto_20211008_1237.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.8 on 2021-10-08 12:37 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('modules', '0011_insert_modules'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='module', 15 | name='id', 16 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 17 | ), 18 | migrations.AlterField( 19 | model_name='modulegroup', 20 | name='id', 21 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 22 | ), 23 | migrations.AlterField( 24 | model_name='modulepermission', 25 | name='id', 26 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /dartcms/apps/modules/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/modules/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/pages/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.pages.apps.PagesConfig' -------------------------------------------------------------------------------- /dartcms/apps/pages/admin.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.contrib import admin 3 | 4 | PageModule = get_model('pages', 'PageModule') 5 | Page = get_model('pages', 'Page') 6 | 7 | 8 | class PageModuleAdmin(admin.ModelAdmin): 9 | pass 10 | 11 | 12 | admin.site.register(PageModule, PageModuleAdmin) 13 | 14 | 15 | class PageAdmin(admin.ModelAdmin): 16 | pass 17 | 18 | 19 | admin.site.register(Page, PageAdmin) 20 | -------------------------------------------------------------------------------- /dartcms/apps/pages/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class PagesConfig(AppConfig): 6 | name = 'dartcms.apps.pages' 7 | verbose_name = _('Pages') 8 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0002_related_models.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.6 on 2016-07-06 06:56 2 | from __future__ import unicode_literals 3 | 4 | import django.db.models.deletion 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('pages', '0001_initial'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='pagemodule', 17 | name='related_model', 18 | field=models.CharField(default=None, max_length=32, null=True, verbose_name='Related Model'), 19 | ), 20 | migrations.AlterField( 21 | model_name='page', 22 | name='ad_section', 23 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pages_page_related', to='ads.AdSection', verbose_name='Ads'), 24 | ), 25 | ] 26 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0006_auto_20160711_1627.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-11 16:27 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('pages', '0005_pagemodules_relationships'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='page', 16 | name='url', 17 | field=models.CharField(max_length=512, unique=True), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0007_feedback_pagemodule.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.6 on 2016-07-06 06:54 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations 5 | from django.utils import translation 6 | from django.utils.translation import gettext_lazy as _ 7 | 8 | 9 | def insert_module(apps, schema): 10 | from django.conf import settings 11 | translation.activate(settings.LANGUAGE_CODE) 12 | 13 | PageModule = apps.get_model('pages', 'PageModule') 14 | 15 | PageModule.objects.create(slug='feedback', name=_('Feedback'), related_model='feedback.FormType'), 16 | 17 | translation.deactivate() 18 | 19 | 20 | def drop_module(apps, schema): 21 | PageModule = apps.get_model('pages', 'PageModule') 22 | 23 | PageModule.objects.get(slug='feedback').delete() 24 | 25 | 26 | class Migration(migrations.Migration): 27 | dependencies = [ 28 | ('pages', '0006_auto_20160711_1627'), 29 | ] 30 | 31 | operations = [ 32 | migrations.RunPython(insert_module, drop_module) 33 | ] 34 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0009_auto_20161130_1207.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.9 on 2016-11-30 12:07 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('pages', '0008_auto_20161026_0711'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterModelOptions( 15 | name='pagemodule', 16 | options={'ordering': ['name'], 'verbose_name': 'module', 'verbose_name_plural': 'modules'}, 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0012_homepage_security.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.10.4 on 2016-12-14 03:36 2 | from __future__ import unicode_literals 3 | 4 | from dartcms.utils.loading import get_model 5 | from django.db import migrations 6 | 7 | 8 | def set_homepage_security(apps, schema): 9 | Page = get_model('pages', 'Page') 10 | Page.objects.filter(module__slug='homepage').update(security_type='DEFAULT') 11 | 12 | 13 | class Migration(migrations.Migration): 14 | dependencies = [ 15 | ('pages', '0011_insert_homepage'), 16 | ] 17 | 18 | operations = [ 19 | migrations.RunPython(set_homepage_security) 20 | ] 21 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/0014_auto_20180123_1113.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.1 on 2018-01-23 11:13 2 | 3 | import django.db.models.deletion 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('pages', '0013_auto_20170829_0515'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='page', 16 | name='ad_section', 17 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='pages_page_related', to='ads.AdSection', verbose_name='Ads'), 18 | ), 19 | migrations.AlterField( 20 | model_name='page', 21 | name='module', 22 | field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='pages_page_related', to='pages.PageModule', verbose_name='Module'), 23 | ), 24 | ] 25 | -------------------------------------------------------------------------------- /dartcms/apps/pages/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/pages/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/pages/models.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model, is_model_registered 2 | from django.db.models.signals import post_save, pre_delete, pre_save 3 | 4 | from .abstract_models import * 5 | from .signals import * 6 | 7 | __all__ = [ 8 | 'PageModule' 9 | ] 10 | 11 | if is_model_registered('pages', 'Page'): 12 | page_model = get_model('pages', 'Page') 13 | else: 14 | class Page(AbstractPage): 15 | pass 16 | 17 | __all__.append('Page') 18 | 19 | page_model = Page 20 | 21 | pre_save.connect(pre_save_handler, sender=page_model) 22 | post_save.connect(post_save_handler, sender=page_model) 23 | pre_delete.connect(pre_delete_handler, sender=page_model) 24 | -------------------------------------------------------------------------------- /dartcms/apps/shop/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.shop.apps.ShopConfig' -------------------------------------------------------------------------------- /dartcms/apps/shop/admin.py: -------------------------------------------------------------------------------- 1 | from dartcms import get_model 2 | from django.contrib import admin 3 | 4 | OrderShippingType = get_model('shop', 'OrderShippingType') 5 | OrderPaymentType = get_model('shop', 'OrderPaymentType') 6 | OrderStatus = get_model('shop', 'OrderStatus') 7 | 8 | 9 | class ModelAdmin(admin.ModelAdmin): 10 | pass 11 | 12 | admin.site.register(OrderShippingType, ModelAdmin) 13 | admin.site.register(OrderPaymentType, ModelAdmin) 14 | admin.site.register(OrderStatus, ModelAdmin) 15 | -------------------------------------------------------------------------------- /dartcms/apps/shop/apps.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.fields import monkeypatch_versatile_image_field 2 | from django.apps import AppConfig 3 | from django.utils.translation import ugettext_lazy as _ 4 | 5 | 6 | class ShopConfig(AppConfig): 7 | name = 'dartcms.apps.shop' 8 | verbose_name = _('Shop') 9 | 10 | def ready(self): 11 | monkeypatch_versatile_image_field() 12 | -------------------------------------------------------------------------------- /dartcms/apps/shop/catalog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/catalog/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/catalog/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.utils.translation import ugettext_lazy as _ 3 | from django.forms import ModelForm 4 | 5 | 6 | class ProductCatalogForm(ModelForm): 7 | class Meta: 8 | model = get_model('shop', 'ProductCatalog') 9 | exclude = [] 10 | 11 | fieldsets = ( 12 | ('main', {'fields': ( 13 | 'slug', 14 | 'name', 15 | 'description', 16 | ), 'legend': _('Main')}), 17 | ('seo', {'fields': ( 18 | 'seo_keywords', 19 | 'seo_description', 20 | ), 'legend': _('SEO')}), 21 | ('advanced', {'fields': ( 22 | 'image', 23 | 'is_visible', 24 | ), 'legend': _('Advanced')})) 25 | -------------------------------------------------------------------------------- /dartcms/apps/shop/catalog/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms import get_model 2 | from dartcms.utils.config import DartCMSConfig 3 | from django.utils.translation import ugettext_lazy as _ 4 | 5 | from .forms import ProductCatalogForm 6 | 7 | app_name = 'catalog' 8 | 9 | ProductCatalog = get_model('shop', 'ProductCatalog') 10 | 11 | config = DartCMSConfig({ 12 | 'model': ProductCatalog, 13 | 'grid': { 14 | 'grid_columns': [ 15 | {'field': 'name', 'width': '50%'}, 16 | {'field': 'slug', 'width': '40%'}, 17 | {'field': 'is_visible', 'width': '10%'}, 18 | ], 19 | 'additional_grid_actions': [ 20 | {'url': 'sections', 'label': _('Sections'), 21 | 'kwarg_name': 'catalog', 'include_urls': 'dartcms.apps.shop.section.urls'} 22 | ] 23 | }, 24 | 'form': { 25 | 'form_class': ProductCatalogForm 26 | } 27 | }) 28 | 29 | urlpatterns = config.get_urls() 30 | -------------------------------------------------------------------------------- /dartcms/apps/shop/migrations/0007_runtime_config.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 1.9.7 on 2016-07-29 03:45 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations 5 | 6 | 7 | def update_runtime_config(apps, schema): 8 | Module = apps.get_model('modules', 'Module') 9 | models_mapping = { 10 | 'shop-manufactures': 'shop.ProductManufacturer', 11 | 'shop-labels': 'shop.ProductLabel', 12 | } 13 | for module in ('shop-manufactures', 'shop-labels'): 14 | try: 15 | m = Module.objects.get(slug=module) 16 | except Module.DoesNotExist: 17 | continue 18 | 19 | m.slug = 'dict-%s' % m.slug 20 | m.config = { 21 | "model": models_mapping.get(module) 22 | } 23 | m.save() 24 | 25 | 26 | class Migration(migrations.Migration): 27 | dependencies = [ 28 | ('shop', '0006_insert_order_statuses'), 29 | ] 30 | 31 | operations = [ 32 | migrations.RunPython(update_runtime_config) 33 | ] 34 | -------------------------------------------------------------------------------- /dartcms/apps/shop/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/order/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/order/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/order/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.forms import ModelForm 3 | 4 | 5 | class OrderForm(ModelForm): 6 | class Meta: 7 | model = get_model('shop', 'Order') 8 | exclude = ['user'] 9 | -------------------------------------------------------------------------------- /dartcms/apps/shop/order_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/order_detail/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/order_detail/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.forms import ModelForm 3 | 4 | 5 | class OrderDatailForm(ModelForm): 6 | class Meta: 7 | model = get_model('shop', 'OrderDetail') 8 | exclude = [] 9 | -------------------------------------------------------------------------------- /dartcms/apps/shop/order_detail/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms import get_model 2 | from dartcms.utils.config import DartCMSConfig 3 | 4 | from .forms import OrderDatailForm 5 | 6 | app_name = 'order_details' 7 | 8 | Order = get_model('shop', 'OrderDetail') 9 | 10 | config = DartCMSConfig({ 11 | 'model': Order, 12 | 'parent_kwarg_name': 'order', 13 | 'parent_model_fk': 'order_id', 14 | 'grid': { 15 | 'grid_columns': [ 16 | {'field': 'name', 'width': '60%'}, 17 | {'field': 'price', 'width': '20%'}, 18 | {'field': 'quantity', 'width': '20%'}, 19 | ], 20 | 'base_grid_actions': ['update', 'delete'], 21 | }, 22 | 'form': { 23 | 'form_class': OrderDatailForm 24 | } 25 | }) 26 | 27 | urlpatterns = config.get_urls(exclude=['insert']) 28 | -------------------------------------------------------------------------------- /dartcms/apps/shop/product/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/product/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/product/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.utils.translation import ugettext_lazy as _ 3 | from django.forms import ModelForm 4 | 5 | 6 | class ProductForm(ModelForm): 7 | class Meta: 8 | model = get_model('shop', 'Product') 9 | exclude = ['section'] 10 | 11 | fieldsets = ( 12 | ('main', {'fields': ( 13 | 'slug', 14 | 'name', 15 | 'code', 16 | 'short_description', 17 | 'description', 18 | 'manufacturer', 19 | 'residue', 20 | 'price', 21 | ), 'legend': _('Main')}), 22 | ('seo', {'fields': ( 23 | 'seo_keywords', 24 | 'seo_description', 25 | ), 'legend': _('SEO')}), 26 | ('advanced', {'fields': ( 27 | 'labels', 28 | 'image', 29 | 'is_visible', 30 | ), 'legend': _('Advanced')})) 31 | -------------------------------------------------------------------------------- /dartcms/apps/shop/product/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms import get_model 2 | from dartcms.utils.config import DartCMSConfig 3 | 4 | from .forms import ProductForm 5 | 6 | app_name = 'products' 7 | 8 | Product = get_model('shop', 'Product') 9 | 10 | config = DartCMSConfig({ 11 | 'model': Product, 12 | 'parent_kwarg_name': 'section', 13 | 'parent_model_fk': 'section_id', 14 | 'grid': { 15 | 'grid_columns': [ 16 | {'field': 'name', 'width': '40%'}, 17 | {'field': 'code', 'width': '20%'}, 18 | {'field': 'manufacturer', 'width': '20%'}, 19 | {'field': 'residue', 'width': '10%'}, 20 | {'field': 'price', 'width': '10%'}, 21 | ] 22 | }, 23 | 'form': { 24 | 'form_class': ProductForm, 25 | } 26 | }) 27 | 28 | urlpatterns = config.get_urls() 29 | -------------------------------------------------------------------------------- /dartcms/apps/shop/section/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/shop/section/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/shop/section/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.loading import get_model 2 | from django.forms import HiddenInput 3 | from django.utils.translation import ugettext_lazy as _ 4 | from django.forms import ModelForm 5 | 6 | 7 | class ProductSectionForm(ModelForm): 8 | class Meta: 9 | model = get_model('shop', 'ProductSection') 10 | exclude = ['catalog', 'sort'] 11 | 12 | widgets = {'parent': HiddenInput()} 13 | 14 | fieldsets = ( 15 | ('main', {'fields': ( 16 | 'parent', 17 | 'name', 18 | 'description', 19 | ), 'legend': _('Main')}), 20 | ('seo', {'fields': ( 21 | 'seo_keywords', 22 | 'seo_description', 23 | ), 'legend': _('SEO')}), 24 | ('advanced', {'fields': ( 25 | 'image', 26 | 'is_visible', 27 | ), 'legend': _('Advanced')})) 28 | -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/__init__.py: -------------------------------------------------------------------------------- 1 | default_app_config = 'dartcms.apps.sitesettings.apps.SitesettingsConfig' 2 | -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import SiteSettings 4 | 5 | 6 | class SiteSettingsAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | admin.site.register(SiteSettings, SiteSettingsAdmin) 11 | -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | 5 | class SitesettingsConfig(AppConfig): 6 | name = 'dartcms.apps.sitesettings' 7 | verbose_name = _('Site settings') 8 | -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/migrations/0005_alter_sitesettings_id.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.8 on 2021-10-08 12:37 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('sitesettings', '0004_auto_20180130_1217'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='sitesettings', 15 | name='id', 16 | field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/sitesettings/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/sitesettings/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.utils.config import DartCMSConfig 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | from .forms import SiteSettingsForm 5 | from .models import SiteSettings 6 | 7 | app_name = 'sitesettings' 8 | 9 | config = DartCMSConfig({ 10 | 'model': SiteSettings, 11 | 'grid': { 12 | 'grid_columns': [ 13 | {'field': 'description', 'width': '20%'}, 14 | {'field': 'type_display', 'width': '20%', 'label': _('Type')}, 15 | {'field': 'value_for_grid', 'width': '60%', 'label': _('Value')}, 16 | ], 17 | 'base_grid_actions': ['update'], 18 | 'model_properties': ['type_display', 'value_for_grid'] 19 | }, 20 | 'form': { 21 | 'form_class': SiteSettingsForm, 22 | } 23 | }) 24 | 25 | urlpatterns = config.get_urls(exclude=['insert', 'delete']) 26 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | from .models import SiteUser 4 | 5 | 6 | class UserForm(forms.ModelForm): 7 | class Meta: 8 | model = SiteUser 9 | exclude = ('password', 'last_login', 'date_joined', 'user_permissions', 'groups', 'is_staff', 'is_superuser') 10 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/managers.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.base_user import BaseUserManager 2 | 3 | 4 | class SiteUserManager(BaseUserManager): 5 | def get_queryset(self): 6 | return super(SiteUserManager, self).get_queryset().filter(is_staff=False) 7 | 8 | def create(self, **kwargs): 9 | kwargs.update({'is_staff': False}) 10 | return super(SiteUserManager, self).create(**kwargs) 11 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.8 on 2021-10-08 19:26 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ('auth', '0012_alter_user_first_name_max_length'), 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='SiteUser', 17 | fields=[ 18 | ], 19 | options={ 20 | 'verbose_name': 'Site User', 21 | 'verbose_name_plural': 'Site Users', 22 | 'proxy': True, 23 | 'indexes': [], 24 | 'constraints': [], 25 | }, 26 | bases=('auth.user',), 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/siteusers/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/siteusers/models.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.auth.utils import get_user_model 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | from .managers import SiteUserManager 5 | 6 | User = get_user_model() 7 | 8 | 9 | class SiteUser(User): 10 | class Meta: 11 | verbose_name = _('Site User') 12 | verbose_name_plural = _('Site Users') 13 | proxy = True 14 | 15 | def save(self, *args, **kwargs): 16 | self.is_staff = False 17 | super(SiteUser, self).save(*args, **kwargs) 18 | 19 | objects = SiteUserManager() 20 | -------------------------------------------------------------------------------- /dartcms/apps/siteusers/views.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.users.views import \ 2 | ChangePasswordView as CMSChangePasswordView 3 | from django.urls import reverse_lazy 4 | 5 | 6 | class ChangePasswordView(CMSChangePasswordView): 7 | success_url = reverse_lazy('dartcms:siteusers:index') 8 | -------------------------------------------------------------------------------- /dartcms/apps/users/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dartcms/apps/users/forms.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.modules.models import Module 2 | from django import forms 3 | from django.utils.translation import ugettext_lazy as _ 4 | 5 | from .models import CMSUser, UserGroup 6 | 7 | 8 | class UserForm(forms.ModelForm): 9 | class Meta: 10 | model = CMSUser 11 | exclude = ('password', 'last_login', 'date_joined', 'user_permissions', 'groups', 'is_staff') 12 | 13 | modules = forms.ModelMultipleChoiceField(required=False, label=_('Modules'), 14 | queryset=Module.objects.all()) 15 | user_groups = forms.ModelMultipleChoiceField(required=False, label=_('Groups'), 16 | queryset=UserGroup.objects.all()) 17 | -------------------------------------------------------------------------------- /dartcms/apps/users/groups/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/users/groups/__init__.py -------------------------------------------------------------------------------- /dartcms/apps/users/groups/urls.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.users.models import UserGroup 2 | from dartcms.utils.config import DartCMSConfig 3 | from django.forms.models import modelform_factory 4 | 5 | app_name = 'groups' 6 | 7 | config = DartCMSConfig({ 8 | 'model': UserGroup, 9 | 'grid': { 10 | 'grid_columns': [ 11 | {'field': 'name', 'width': '100%'}, 12 | ] 13 | }, 14 | 'form': { 15 | 'form_class': modelform_factory(model=UserGroup, exclude=['users']) 16 | } 17 | }) 18 | 19 | urlpatterns = config.get_urls() 20 | -------------------------------------------------------------------------------- /dartcms/apps/users/managers.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.base_user import BaseUserManager 2 | 3 | 4 | class CMSUserManager(BaseUserManager): 5 | def get_queryset(self): 6 | return super(CMSUserManager, self).get_queryset().filter(is_staff=True) 7 | 8 | def create(self, **kwargs): 9 | kwargs.update({'is_staff': True}) 10 | return super(CMSUserManager, self).create(**kwargs) 11 | -------------------------------------------------------------------------------- /dartcms/apps/users/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/apps/users/migrations/__init__.py -------------------------------------------------------------------------------- /dartcms/context_processors.py: -------------------------------------------------------------------------------- 1 | from dartcms.apps.modules.functions import get_current_module 2 | 3 | 4 | def modules_data(request): 5 | if not request.is_ajax() and request.user.is_authenticated and request.user.is_staff: 6 | modules = request.user.module_set.all() 7 | 8 | module_groups = [m.group for m in modules] 9 | module_groups_set = set(module_groups) 10 | 11 | res = dict(module_groups=module_groups_set) 12 | 13 | module = get_current_module(request.path) 14 | if module: 15 | res.update( 16 | dict(active_module_slug=module.slug, 17 | active_group_slug=module.group.slug) 18 | ) 19 | return res 20 | else: 21 | return {} 22 | -------------------------------------------------------------------------------- /dartcms/locale/ru/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/locale/ru/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /dartcms/locale/ru/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/locale/ru/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /dartcms/middleware/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/middleware/__init__.py -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/boostrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/boostrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/readme.txt: -------------------------------------------------------------------------------- 1 | Current Version: 1.5.4.x 2 | ======================== 3 | This software is allowed to use under freeware license or you need to buy commercial license for better support or other purpose. 4 | Please contact us at info@jeasyui.com 5 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #666; 23 | } 24 | .combo-arrow { 25 | background-color: #3d3d3d; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #777; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #777; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #777; 27 | color: #fff; 28 | } 29 | .combobox-item-selected { 30 | background-color: #0052A3; 31 | color: #fff; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #555; 33 | } 34 | .datebox-button a { 35 | color: #fff; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/black/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #000; 24 | } 25 | .progressbar-text { 26 | color: #fff; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0052A3; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #222; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #3d3d3d; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #222; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #3d3d3d; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #cccccc; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/black/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #F2F2F2; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #e6e6e6; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #e6e6e6; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #e6e6e6; 27 | color: #00438a; 28 | } 29 | .combobox-item-selected { 30 | background-color: #0081c2; 31 | color: #fff; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #F5F5F5; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/bootstrap/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #D4D4D4; 24 | } 25 | .progressbar-text { 26 | color: #333; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0081c2; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #e6e6e6; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #F2F2F2; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #e6e6e6; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #F2F2F2; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #bbb; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/bootstrap/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #E0ECFF; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #eaf2ff; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #eaf2ff; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #eaf2ff; 27 | color: #000000; 28 | } 29 | .combobox-item-selected { 30 | background-color: #ffe48d; 31 | color: #000000; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #F4F4F4; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/default/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #95B8E7; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #ffe48d; 31 | color: #000000; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #dddddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #E0ECFF; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #dddddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #E0ECFF; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #aac5e7; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/default/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #f3f3f3; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #e2e2e2; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #e2e2e2; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #e2e2e2; 27 | color: #000000; 28 | } 29 | .combobox-item-selected { 30 | background-color: #0092DC; 31 | color: #fff; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fafafa; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/gray/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #D3D3D3; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0092DC; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #ddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #f3f3f3; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #ddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #f3f3f3; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #bfbfbf; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/gray/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/back.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/cancel.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/chevron.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/clear.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/cut.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/download.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/edit_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/edit_add.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/edit_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/edit_remove.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/filesave.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/filter.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/folder.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/help.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/large_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/large_chart.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/large_clipart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/large_clipart.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/large_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/large_picture.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/large_shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/large_shapes.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/large_smartart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/large_smartart.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/lock.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/man.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/mini_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/mini_add.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/mini_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/mini_edit.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/mini_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/mini_refresh.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/more.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/move.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/next.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/no.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/ok.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/pencil.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/print.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/redo.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/reload.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/search.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/sort.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/sum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/sum.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/tip.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/undo.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/icons/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/icons/upload.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #f5f5f5; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #eee; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #eee; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #eee; 27 | color: #404040; 28 | } 29 | .combobox-item-selected { 30 | background-color: #00bbee; 31 | color: #fff; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fafafa; 33 | } 34 | .datebox-button a { 35 | color: #404040; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/Thumbs.db -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/material/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 4px 4px 4px 4px; 5 | -webkit-border-radius: 4px 4px 4px 4px; 6 | border-radius: 4px 4px 4px 4px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 4px 0 0 4px; 19 | -webkit-border-radius: 4px 0 0 4px; 20 | border-radius: 4px 0 0 4px; 21 | } 22 | .progressbar { 23 | border-color: #ddd; 24 | } 25 | .progressbar-text { 26 | color: #404040; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #00bbee; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #eee; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #f5f5f5; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #eee; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #f5f5f5; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #ccc; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/material/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff; 4 | color: #404040; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #fff; 23 | } 24 | .combo-arrow { 25 | background-color: #ffffff; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #E6E6E6; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #E6E6E6; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #E6E6E6; 27 | color: #444; 28 | } 29 | .combobox-item-selected { 30 | background-color: #CCE6FF; 31 | color: #000; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fff; 33 | } 34 | .datebox-button a { 35 | color: #777; 36 | } 37 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/accordion_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/blank.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/calendar_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/combo_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/datagrid_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/datebox_arrow.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/layout_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/linkbutton_bg.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/loading.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/menu_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/messager_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/pagination_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/panel_tools.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/searchbox_button.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/slider_handle.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/spinner_arrows.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/tabs_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/tree_icons.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/images/validatebox_warning.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/numberbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/easyui/themes/metro/numberbox.css -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 0px 0px 0px 0px; 5 | -webkit-border-radius: 0px 0px 0px 0px; 6 | border-radius: 0px 0px 0px 0px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 0px 0 0 0px; 19 | -webkit-border-radius: 0px 0 0 0px; 20 | border-radius: 0px 0 0 0px; 21 | } 22 | .progressbar { 23 | border-color: #ddd; 24 | } 25 | .progressbar-text { 26 | color: #444; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #CCE6FF; 31 | color: #000; 32 | } 33 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #ddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #ffffff; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #ddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #ffffff; 28 | } 29 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #b3b3b3; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/easyui/themes/metro/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "spinning.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | 13 | .fa-icon-rotate(@degrees, @rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 15 | -webkit-transform: rotate(@degrees); 16 | -ms-transform: rotate(@degrees); 17 | transform: rotate(@degrees); 18 | } 19 | 20 | .fa-icon-flip(@horiz, @vert, @rotation) { 21 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 22 | -webkit-transform: scale(@horiz, @vert); 23 | -ms-transform: scale(@horiz, @vert); 24 | transform: scale(@horiz, @vert); 25 | } 26 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 9 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 10 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 11 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/spinning.less: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 9 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 10 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 11 | //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/langs/readme.md: -------------------------------------------------------------------------------- 1 | This is where language files should be placed. 2 | 3 | Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/ 4 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/code/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(t){return t.getParam("code_dialog_width",600)},i=function(t){return t.getParam("code_dialog_height",Math.min(n.DOM.getViewPort().h-200,500))},c=function(t,n){t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged()},d=function(t){return t.getContent({source_view:!0})},e=function(n){var t=o(n),e=i(n);n.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:t,minHeight:e,spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(t){c(n,t.data.code)}}).find("#code").value(d(n))},u=function(t){t.addCommand("mceCodeEditor",function(){e(t)})},a=function(t){t.addButton("code",{icon:"code",tooltip:"Source code",onclick:function(){e(t)}}),t.addMenuItem("code",{icon:"code",text:"Source code",onclick:function(){e(t)}})};t.add("code",function(t){return u(t),a(t),{}})}(); -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/directionality/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}(); -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/example/dialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Custom dialog

5 | Input some text: 6 | 7 | 8 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/example/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("example",function(a,b){a.addButton("example",{text:"My button",icon:!1,onclick:function(){a.windowManager.open({title:"Example plugin",body:[{type:"textbox",name:"title",label:"Title"}],onsubmit:function(b){a.insertContent("Title: "+b.data.title)}})}}),a.addMenuItem("example",{text:"Example plugin",context:"tools",onclick:function(){a.windowManager.open({title:"TinyMCE site",url:b+"/dialog.html",width:600,height:400,buttons:[{text:"Insert",onclick:function(){var b=a.windowManager.getWindows()[0];a.insertContent(b.getContentWindow().document.getElementById("content").value),b.close()}},{text:"Close",onclick:"close"}]})}})}); -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/example_dependency/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("example_dependency",function(){},["example"]); -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/de.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('de', { 2 | 'Icons': 'Icons', 3 | 'Web Application': 'Web-Anwendung', 4 | 'File Type': 'Dateitypen', 5 | 'Spinner': 'Drehend', 6 | 'Form Control': 'Formularfelder', 7 | 'Currency': 'Währungen', 8 | 'Text Editor': 'Texteditor', 9 | 'Directional': 'Richtung', 10 | 'Video Player': 'Videoplayer', 11 | 'Brand': 'Marken', 12 | 'Medical': 'Medizinisch', 13 | 'Transportation': 'Transport', 14 | 'Gender': 'Geschlecht', 15 | 'Payment': 'Bezahlung', 16 | 'Chart': 'Diagramm', 17 | 'Hand': 'Hand', 18 | 'Search': 'Suchen', 19 | 'No icons matched your search': 'Keine Icons entsprechen Ihrer Suche' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/en.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('en', { 2 | 'Icons': 'Icons', 3 | 'Web Application': 'Web Application', 4 | 'File Type': 'File Type', 5 | 'Spinner': 'Spinner', 6 | 'Form Control': 'Form Control', 7 | 'Currency': 'Currency', 8 | 'Text Editor': 'Text Editor', 9 | 'Directional': 'Directional', 10 | 'Video Player': 'Video Player', 11 | 'Brand': 'Brand', 12 | 'Medical': 'Medical', 13 | 'Transportation': 'Transportation', 14 | 'Gender': 'Gender', 15 | 'Payment': 'Payment', 16 | 'Chart': 'Chart', 17 | 'Hand': 'Hand', 18 | 'Search': 'Search', 19 | 'No icons matched your search': 'No icons matched your search' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/es.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('es', { 2 | 'Icons': 'Iconos', 3 | 'Web Application': 'Aplicación Web', 4 | 'File Type': 'Tipos de Fichero', 5 | 'Spinner': 'Carga', 6 | 'Form Control': 'Elementos de Formulario', 7 | 'Currency': 'Divisas', 8 | 'Text Editor': 'Editor de Texto', 9 | 'Directional': 'Direccional', 10 | 'Video Player': 'Reproductor de Video', 11 | 'Brand': 'Marcas', 12 | 'Medical': 'Médicos', 13 | 'Transportation': 'Transportes', 14 | 'Gender': 'Géneros', 15 | 'Payment': 'Formas de Pago', 16 | 'Chart': 'Gráficos', 17 | 'Hand': 'Mano', 18 | 'Search': 'Buscar', 19 | 'No icons matched your search': 'No hay iconos que coincidan con tu búsqueda' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/fr.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('fr', { 2 | 'Icons': 'Icônes', 3 | 'Web Application': 'Application Web', 4 | 'File Type': 'Type de fichier', 5 | 'Spinner': 'Spinner', 6 | 'Form Control': 'Contrôle formulaire', 7 | 'Currency': 'Monnaies', 8 | 'Text Editor': 'Editeur de texte', 9 | 'Directional': 'Directionel', 10 | 'Video Player': 'Video Player', 11 | 'Brand': 'Marque', 12 | 'Medical': 'Médical', 13 | 'Transportation': 'Transport', 14 | 'Gender': 'Genre', 15 | 'Payment': 'Paiement', 16 | 'Chart': 'Diagramme', 17 | 'Hand': 'Main', 18 | 'Search': 'Recherche', 19 | 'No icons matched your search': 'Aucune icône correspondant à votre recherche' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/ja.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('ja', { 2 | 'Icons': 'Icon', 3 | 'Web Application': '一般', 4 | 'File Type': 'ファイルタイプ', 5 | 'Spinner': 'スピナー(回転)', 6 | 'Form Control': 'フォーム・コントロール', 7 | 'Currency': '通貨', 8 | 'Text Editor': 'エディタ', 9 | 'Directional': '矢印・方向', 10 | 'Video Player': 'プレイヤー', 11 | 'Brand': 'ブランド', 12 | 'Medical': '医療', 13 | 'Transportation': '交通', 14 | 'Gender': '性', 15 | 'Payment': '支払い', 16 | 'Chart': 'チャート', 17 | 'Hand': '手', 18 | 'Search': '検索', 19 | 'No icons matched your search': 'いいえアイコンは、検索条件に一致しません' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/nl.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('nl', { 2 | 'Icons': 'Iconen', 3 | 'Web Application': 'Webapplicaties', 4 | 'File Type': 'Bestandstypen', 5 | 'Spinner': 'Laad iconen', 6 | 'Form Control': 'Formulieren', 7 | 'Currency': 'Valuta', 8 | 'Text Editor': 'Tekstbewerker', 9 | 'Directional': 'Richting', 10 | 'Video Player': 'Video speler', 11 | 'Brand': 'Merken', 12 | 'Medical': 'Medisch', 13 | 'Transportation': 'Transport', 14 | 'Gender': 'Geslacht', 15 | 'Payment': 'Betalen', 16 | 'Chart': 'Grafieken', 17 | 'Hand': 'Handen', 18 | 'Search': 'Zoeken', 19 | 'No icons matched your search': 'Geen iconen gevonden die aan je zoekopdracht voldoen' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/fontawesome/langs/ru.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('ru', { 2 | 'Icons': 'Иконки', 3 | 'Web Application': 'Веб-приложения', 4 | 'File Type': 'Типы файлов', 5 | 'Spinner': 'Вращающиеся', 6 | 'Form Control': 'Элементы форм', 7 | 'Currency': 'Валюты', 8 | 'Text Editor': 'Редактирование', 9 | 'Directional': 'Направление', 10 | 'Video Player': 'Видео-плеер', 11 | 'Brand': 'Бренды', 12 | 'Medical': 'Медицина', 13 | 'Transportation': 'Транспорт', 14 | 'Gender': 'Гендерные иконки', 15 | 'Payment': 'Платежные системы', 16 | 'Chart': 'Диаграммы', 17 | 'Hand': 'Иконки жестов', 18 | 'Search': 'поиск', 19 | 'No icons matched your search': 'Значки не соответствуют Вашему запросу' 20 | }); 21 | -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/help/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/static/dartcms/assets/tinymce/plugins/help/img/logo.png -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}(); -------------------------------------------------------------------------------- /dartcms/static/dartcms/assets/tinymce/plugins/nonbreaking/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n,e){var t,i=(t=n).plugins.visualchars&&t.plugins.visualchars.isEnabled()?' ':" ";n.insertContent(function(n,e){for(var t="",i=0;i 7 |

{% trans 'DartCMS Dashboard' %}

8 | 9 |
10 |

11 | 12 |

{% trans 'Welcome to DartCMS, your content management system.' %}

13 |
14 | {% endblock %} -------------------------------------------------------------------------------- /dartcms/templates/dartcms/apps/pages/delete.html: -------------------------------------------------------------------------------- 1 | {% extends 'dartcms/views/delete.html' %} 2 | 3 | {% load i18n %} 4 | 5 | {% block form %} 6 | {% if has_perm %} 7 | {{ block.super }} 8 | {% else %} 9 | {% trans 'You do not have permission to delete this page.' as security_message %} 10 | {% include 'dartcms/views/partials/security_alert.html' with message=security_message %} 11 | {% endif %} 12 | {% endblock %} -------------------------------------------------------------------------------- /dartcms/templates/dartcms/apps/pages/insert.html: -------------------------------------------------------------------------------- 1 | {% extends 'dartcms/views/insert.html' %} 2 | 3 | {% load static i18n %} 4 | 5 | {% block js %} 6 | {{ block.super }} 7 | 8 | {% endblock %} 9 | 10 | {% block form_content %} 11 | {% if has_perm %} 12 | {{ block.super }} 13 |
14 | {% else %} 15 | {% trans 'You do not have permission to add page in this section.' as security_message %} 16 | {% include 'dartcms/views/partials/security_alert.html' with message=security_message %} 17 | {% endif %} 18 | {% endblock %} -------------------------------------------------------------------------------- /dartcms/templates/dartcms/apps/pages/update.html: -------------------------------------------------------------------------------- 1 | {% extends 'dartcms/views/update.html' %} 2 | 3 | {% load static i18n %} 4 | 5 | {% block js %} 6 | {{ block.super }} 7 | 8 | {% endblock %} 9 | 10 | {% block form_content %} 11 | {% if not has_perm %} 12 | {% trans 'You do not have permission to edit this page.' as security_message %} 13 | {% include 'dartcms/views/partials/security_alert.html' with message=security_message hide_cancel=True %} 14 | 17 | {% endif %} 18 | 19 | {{ block.super }} 20 |
22 | {% endblock %} -------------------------------------------------------------------------------- /dartcms/templates/dartcms/forms/horizontal.html: -------------------------------------------------------------------------------- 1 | {% include 'dartcms/forms/partial/horizontal_form.html' %} 2 | {% include 'dartcms/forms/partial/horizontal_inlines.html' %} -------------------------------------------------------------------------------- /dartcms/templates/dartcms/views/partials/datepickers.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | 3 | {% get_current_language as LANG %} 4 | 5 | 26 | -------------------------------------------------------------------------------- /dartcms/templates/dartcms/views/partials/grid_search.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | 3 | 12 | -------------------------------------------------------------------------------- /dartcms/templates/dartcms/views/partials/loading_indicator.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 |
{% trans 'Loading..' %}
-------------------------------------------------------------------------------- /dartcms/templates/dartcms/views/partials/security_alert.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | 3 |
4 | {{ message }} 5 |
6 | {% if not hide_cancel %} 7 | {% trans 'Cancel' %} 8 | {% endif %} -------------------------------------------------------------------------------- /dartcms/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/templatetags/__init__.py -------------------------------------------------------------------------------- /dartcms/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/dartcms/utils/__init__.py -------------------------------------------------------------------------------- /dartcms/utils/translation.py: -------------------------------------------------------------------------------- 1 | from django.utils.translation import get_language 2 | 3 | 4 | def get_date_format(): 5 | return { 6 | 'ru-ru': '%d.%m.%Y', 7 | 'en-us': '%Y-%m-%d' 8 | }.get(get_language()) 9 | -------------------------------------------------------------------------------- /docs/_static/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrikov-d/dartcms/41af3ecfcff73d3fb6a483e3a6ca1c4acb6278fa/docs/_static/dashboard.png -------------------------------------------------------------------------------- /docs/_templates/sidebar.html: -------------------------------------------------------------------------------- 1 |
    {{ toctree(maxdepth=theme_globaltoc_depth|toint, collapse=False,includehidden=theme_globaltoc_includehidden|tobool) }}
-------------------------------------------------------------------------------- /docs/dynamic_loading.rst: -------------------------------------------------------------------------------- 1 | Dynamic Models Loading 2 | ====================== 3 | 4 | DartCMS package contains some useful apps, like news, feedback, shop etc. If you plan to redeclare these apps, 5 | you can load models from these apps via `get_model` function: 6 | 7 | .. code-block:: python 8 | 9 | from dartcms.core.loading import get_model 10 | 11 | Page = get_model('pages', 'Page') 12 | 13 | 14 | First argument of this function - label of application. Second - name of model class. 15 | This function checks if you have registered app named `pages` and then, if you have, returns you model `Page`. -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | norecursedirs = venv* .* 3 | addopts = 4 | -r fEsxXw 5 | -vvv 6 | --doctest-modules 7 | --ignore setup.py 8 | --cov-report=term-missing 9 | --cov-report=xml 10 | --cov-report=html 11 | --cov=packagename 12 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django>=2.0.0 2 | django-autoslug>=1.9.4 3 | django-extra-views>=0.7.1 4 | django-gravatar2>=1.4.0 5 | django-mptt>=0.8.4 6 | django-widget-tweaks>=1.4.1 7 | jsonfield>=1.0.3 8 | pytils>=0.3 9 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from tests.tests_helper import * 3 | import unittest 4 | from tests.helpers import * 5 | 6 | __all__ = [ 7 | 'pytest', 8 | 'unittest', 9 | 'tests_helper' 10 | ] 11 | --------------------------------------------------------------------------------