"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b,c;return b=this.search_contains?"":"^",c=this.case_sensitive_search?"":"i",new RegExp(b+a,c)},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(c){var d,e;return d=a(this),e=d.data("chosen"),"destroy"===b?void(e instanceof Chosen&&e.destroy()):void(e instanceof Chosen||d.data("chosen",new Chosen(this,b)))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("",c),this.is_multiple?this.container.html(''):this.container.html(''+this.default_text+'
'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.bind("touchend.chosen",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("",{"class":"search-choice"}).html(""+this.choice_label(b)+""),b.disabled?c.addClass("search-choice-disabled"):(d=a("",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),b.addClass("result-selected"),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(''),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return a("").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a(''+this.results_none_found+' ""'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}).call(this);
\ No newline at end of file
diff --git a/apps/static/js/cropper/cropper.min.js b/apps/static/js/plugins/cropper/cropper.min.js
similarity index 100%
rename from apps/static/js/cropper/cropper.min.js
rename to apps/static/js/plugins/cropper/cropper.min.js
diff --git a/apps/static/js/datapicker/bootstrap-datepicker.js b/apps/static/js/plugins/datapicker/bootstrap-datepicker.js
similarity index 100%
rename from apps/static/js/datapicker/bootstrap-datepicker.js
rename to apps/static/js/plugins/datapicker/bootstrap-datepicker.js
diff --git a/apps/static/js/demo/peity-demo.js b/apps/static/js/plugins/demo/peity-demo.js
similarity index 100%
rename from apps/static/js/demo/peity-demo.js
rename to apps/static/js/plugins/demo/peity-demo.js
diff --git a/apps/static/js/dropzone/dropzone.js b/apps/static/js/plugins/dropzone/dropzone.js
similarity index 100%
rename from apps/static/js/dropzone/dropzone.js
rename to apps/static/js/plugins/dropzone/dropzone.js
diff --git a/apps/static/js/echarts/chart/bar.js b/apps/static/js/plugins/echarts/chart/bar.js
similarity index 100%
rename from apps/static/js/echarts/chart/bar.js
rename to apps/static/js/plugins/echarts/chart/bar.js
diff --git a/apps/static/js/echarts/chart/chord.js b/apps/static/js/plugins/echarts/chart/chord.js
similarity index 100%
rename from apps/static/js/echarts/chart/chord.js
rename to apps/static/js/plugins/echarts/chart/chord.js
diff --git a/apps/static/js/echarts/chart/eventRiver.js b/apps/static/js/plugins/echarts/chart/eventRiver.js
similarity index 100%
rename from apps/static/js/echarts/chart/eventRiver.js
rename to apps/static/js/plugins/echarts/chart/eventRiver.js
diff --git a/apps/static/js/echarts/chart/force.js b/apps/static/js/plugins/echarts/chart/force.js
similarity index 100%
rename from apps/static/js/echarts/chart/force.js
rename to apps/static/js/plugins/echarts/chart/force.js
diff --git a/apps/static/js/echarts/chart/funnel.js b/apps/static/js/plugins/echarts/chart/funnel.js
similarity index 100%
rename from apps/static/js/echarts/chart/funnel.js
rename to apps/static/js/plugins/echarts/chart/funnel.js
diff --git a/apps/static/js/echarts/chart/gauge.js b/apps/static/js/plugins/echarts/chart/gauge.js
similarity index 100%
rename from apps/static/js/echarts/chart/gauge.js
rename to apps/static/js/plugins/echarts/chart/gauge.js
diff --git a/apps/static/js/echarts/chart/heatmap.js b/apps/static/js/plugins/echarts/chart/heatmap.js
similarity index 100%
rename from apps/static/js/echarts/chart/heatmap.js
rename to apps/static/js/plugins/echarts/chart/heatmap.js
diff --git a/apps/static/js/echarts/chart/k.js b/apps/static/js/plugins/echarts/chart/k.js
similarity index 100%
rename from apps/static/js/echarts/chart/k.js
rename to apps/static/js/plugins/echarts/chart/k.js
diff --git a/apps/static/js/echarts/chart/line.js b/apps/static/js/plugins/echarts/chart/line.js
similarity index 100%
rename from apps/static/js/echarts/chart/line.js
rename to apps/static/js/plugins/echarts/chart/line.js
diff --git a/apps/static/js/echarts/chart/map.js b/apps/static/js/plugins/echarts/chart/map.js
similarity index 100%
rename from apps/static/js/echarts/chart/map.js
rename to apps/static/js/plugins/echarts/chart/map.js
diff --git a/apps/static/js/echarts/chart/pie.js b/apps/static/js/plugins/echarts/chart/pie.js
similarity index 100%
rename from apps/static/js/echarts/chart/pie.js
rename to apps/static/js/plugins/echarts/chart/pie.js
diff --git a/apps/static/js/echarts/chart/radar.js b/apps/static/js/plugins/echarts/chart/radar.js
similarity index 100%
rename from apps/static/js/echarts/chart/radar.js
rename to apps/static/js/plugins/echarts/chart/radar.js
diff --git a/apps/static/js/echarts/chart/scatter.js b/apps/static/js/plugins/echarts/chart/scatter.js
similarity index 100%
rename from apps/static/js/echarts/chart/scatter.js
rename to apps/static/js/plugins/echarts/chart/scatter.js
diff --git a/apps/static/js/echarts/chart/tree.js b/apps/static/js/plugins/echarts/chart/tree.js
similarity index 100%
rename from apps/static/js/echarts/chart/tree.js
rename to apps/static/js/plugins/echarts/chart/tree.js
diff --git a/apps/static/js/echarts/chart/treemap.js b/apps/static/js/plugins/echarts/chart/treemap.js
similarity index 100%
rename from apps/static/js/echarts/chart/treemap.js
rename to apps/static/js/plugins/echarts/chart/treemap.js
diff --git a/apps/static/js/echarts/chart/venn.js b/apps/static/js/plugins/echarts/chart/venn.js
similarity index 100%
rename from apps/static/js/echarts/chart/venn.js
rename to apps/static/js/plugins/echarts/chart/venn.js
diff --git a/apps/static/js/echarts/chart/wordCloud.js b/apps/static/js/plugins/echarts/chart/wordCloud.js
similarity index 100%
rename from apps/static/js/echarts/chart/wordCloud.js
rename to apps/static/js/plugins/echarts/chart/wordCloud.js
diff --git a/apps/static/js/echarts/echarts-all.js b/apps/static/js/plugins/echarts/echarts-all.js
similarity index 100%
rename from apps/static/js/echarts/echarts-all.js
rename to apps/static/js/plugins/echarts/echarts-all.js
diff --git a/apps/static/js/echarts/echarts.js b/apps/static/js/plugins/echarts/echarts.js
similarity index 100%
rename from apps/static/js/echarts/echarts.js
rename to apps/static/js/plugins/echarts/echarts.js
diff --git a/apps/static/js/highcharts/adapters/standalone-framework.js b/apps/static/js/plugins/highcharts/adapters/standalone-framework.js
similarity index 100%
rename from apps/static/js/highcharts/adapters/standalone-framework.js
rename to apps/static/js/plugins/highcharts/adapters/standalone-framework.js
diff --git a/apps/static/js/highcharts/adapters/standalone-framework.src.js b/apps/static/js/plugins/highcharts/adapters/standalone-framework.src.js
similarity index 100%
rename from apps/static/js/highcharts/adapters/standalone-framework.src.js
rename to apps/static/js/plugins/highcharts/adapters/standalone-framework.src.js
diff --git a/apps/static/js/highcharts/highcharts-3d.js b/apps/static/js/plugins/highcharts/highcharts-3d.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts-3d.js
rename to apps/static/js/plugins/highcharts/highcharts-3d.js
diff --git a/apps/static/js/highcharts/highcharts-3d.src.js b/apps/static/js/plugins/highcharts/highcharts-3d.src.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts-3d.src.js
rename to apps/static/js/plugins/highcharts/highcharts-3d.src.js
diff --git a/apps/static/js/highcharts/highcharts-all.js b/apps/static/js/plugins/highcharts/highcharts-all.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts-all.js
rename to apps/static/js/plugins/highcharts/highcharts-all.js
diff --git a/apps/static/js/highcharts/highcharts-more.js b/apps/static/js/plugins/highcharts/highcharts-more.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts-more.js
rename to apps/static/js/plugins/highcharts/highcharts-more.js
diff --git a/apps/static/js/highcharts/highcharts-more.src.js b/apps/static/js/plugins/highcharts/highcharts-more.src.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts-more.src.js
rename to apps/static/js/plugins/highcharts/highcharts-more.src.js
diff --git a/apps/static/js/highcharts/highcharts.js b/apps/static/js/plugins/highcharts/highcharts.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts.js
rename to apps/static/js/plugins/highcharts/highcharts.js
diff --git a/apps/static/js/highcharts/highcharts.src.js b/apps/static/js/plugins/highcharts/highcharts.src.js
similarity index 100%
rename from apps/static/js/highcharts/highcharts.src.js
rename to apps/static/js/plugins/highcharts/highcharts.src.js
diff --git a/apps/static/js/highcharts/modules/canvas-tools.js b/apps/static/js/plugins/highcharts/modules/canvas-tools.js
similarity index 100%
rename from apps/static/js/highcharts/modules/canvas-tools.js
rename to apps/static/js/plugins/highcharts/modules/canvas-tools.js
diff --git a/apps/static/js/highcharts/modules/canvas-tools.src.js b/apps/static/js/plugins/highcharts/modules/canvas-tools.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/canvas-tools.src.js
rename to apps/static/js/plugins/highcharts/modules/canvas-tools.src.js
diff --git a/apps/static/js/highcharts/modules/data.js b/apps/static/js/plugins/highcharts/modules/data.js
similarity index 100%
rename from apps/static/js/highcharts/modules/data.js
rename to apps/static/js/plugins/highcharts/modules/data.js
diff --git a/apps/static/js/highcharts/modules/data.src.js b/apps/static/js/plugins/highcharts/modules/data.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/data.src.js
rename to apps/static/js/plugins/highcharts/modules/data.src.js
diff --git a/apps/static/js/highcharts/modules/drilldown.js b/apps/static/js/plugins/highcharts/modules/drilldown.js
similarity index 100%
rename from apps/static/js/highcharts/modules/drilldown.js
rename to apps/static/js/plugins/highcharts/modules/drilldown.js
diff --git a/apps/static/js/highcharts/modules/drilldown.src.js b/apps/static/js/plugins/highcharts/modules/drilldown.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/drilldown.src.js
rename to apps/static/js/plugins/highcharts/modules/drilldown.src.js
diff --git a/apps/static/js/highcharts/modules/exporting.js b/apps/static/js/plugins/highcharts/modules/exporting.js
similarity index 100%
rename from apps/static/js/highcharts/modules/exporting.js
rename to apps/static/js/plugins/highcharts/modules/exporting.js
diff --git a/apps/static/js/highcharts/modules/exporting.src.js b/apps/static/js/plugins/highcharts/modules/exporting.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/exporting.src.js
rename to apps/static/js/plugins/highcharts/modules/exporting.src.js
diff --git a/apps/static/js/highcharts/modules/funnel.js b/apps/static/js/plugins/highcharts/modules/funnel.js
similarity index 100%
rename from apps/static/js/highcharts/modules/funnel.js
rename to apps/static/js/plugins/highcharts/modules/funnel.js
diff --git a/apps/static/js/highcharts/modules/funnel.src.js b/apps/static/js/plugins/highcharts/modules/funnel.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/funnel.src.js
rename to apps/static/js/plugins/highcharts/modules/funnel.src.js
diff --git a/apps/static/js/highcharts/modules/heatmap.js b/apps/static/js/plugins/highcharts/modules/heatmap.js
similarity index 100%
rename from apps/static/js/highcharts/modules/heatmap.js
rename to apps/static/js/plugins/highcharts/modules/heatmap.js
diff --git a/apps/static/js/highcharts/modules/heatmap.src.js b/apps/static/js/plugins/highcharts/modules/heatmap.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/heatmap.src.js
rename to apps/static/js/plugins/highcharts/modules/heatmap.src.js
diff --git a/apps/static/js/highcharts/modules/no-data-to-display.js b/apps/static/js/plugins/highcharts/modules/no-data-to-display.js
similarity index 100%
rename from apps/static/js/highcharts/modules/no-data-to-display.js
rename to apps/static/js/plugins/highcharts/modules/no-data-to-display.js
diff --git a/apps/static/js/highcharts/modules/no-data-to-display.src.js b/apps/static/js/plugins/highcharts/modules/no-data-to-display.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/no-data-to-display.src.js
rename to apps/static/js/plugins/highcharts/modules/no-data-to-display.src.js
diff --git a/apps/static/js/highcharts/modules/solid-gauge.js b/apps/static/js/plugins/highcharts/modules/solid-gauge.js
similarity index 100%
rename from apps/static/js/highcharts/modules/solid-gauge.js
rename to apps/static/js/plugins/highcharts/modules/solid-gauge.js
diff --git a/apps/static/js/highcharts/modules/solid-gauge.src.js b/apps/static/js/plugins/highcharts/modules/solid-gauge.src.js
similarity index 100%
rename from apps/static/js/highcharts/modules/solid-gauge.src.js
rename to apps/static/js/plugins/highcharts/modules/solid-gauge.src.js
diff --git a/apps/static/js/highcharts/themes/dark-blue.js b/apps/static/js/plugins/highcharts/themes/dark-blue.js
similarity index 100%
rename from apps/static/js/highcharts/themes/dark-blue.js
rename to apps/static/js/plugins/highcharts/themes/dark-blue.js
diff --git a/apps/static/js/highcharts/themes/dark-green.js b/apps/static/js/plugins/highcharts/themes/dark-green.js
similarity index 100%
rename from apps/static/js/highcharts/themes/dark-green.js
rename to apps/static/js/plugins/highcharts/themes/dark-green.js
diff --git a/apps/static/js/highcharts/themes/dark-unica.js b/apps/static/js/plugins/highcharts/themes/dark-unica.js
similarity index 100%
rename from apps/static/js/highcharts/themes/dark-unica.js
rename to apps/static/js/plugins/highcharts/themes/dark-unica.js
diff --git a/apps/static/js/highcharts/themes/gray.js b/apps/static/js/plugins/highcharts/themes/gray.js
similarity index 100%
rename from apps/static/js/highcharts/themes/gray.js
rename to apps/static/js/plugins/highcharts/themes/gray.js
diff --git a/apps/static/js/highcharts/themes/grid-light.js b/apps/static/js/plugins/highcharts/themes/grid-light.js
similarity index 100%
rename from apps/static/js/highcharts/themes/grid-light.js
rename to apps/static/js/plugins/highcharts/themes/grid-light.js
diff --git a/apps/static/js/highcharts/themes/grid.js b/apps/static/js/plugins/highcharts/themes/grid.js
similarity index 100%
rename from apps/static/js/highcharts/themes/grid.js
rename to apps/static/js/plugins/highcharts/themes/grid.js
diff --git a/apps/static/js/highcharts/themes/sand-signika.js b/apps/static/js/plugins/highcharts/themes/sand-signika.js
similarity index 100%
rename from apps/static/js/highcharts/themes/sand-signika.js
rename to apps/static/js/plugins/highcharts/themes/sand-signika.js
diff --git a/apps/static/js/highcharts/themes/skies.js b/apps/static/js/plugins/highcharts/themes/skies.js
similarity index 100%
rename from apps/static/js/highcharts/themes/skies.js
rename to apps/static/js/plugins/highcharts/themes/skies.js
diff --git a/apps/static/js/layer/extend/layer.ext.js b/apps/static/js/plugins/layer/extend/layer.ext.js
similarity index 100%
rename from apps/static/js/layer/extend/layer.ext.js
rename to apps/static/js/plugins/layer/extend/layer.ext.js
diff --git a/apps/static/js/layer/layer.js b/apps/static/js/plugins/layer/layer.js
similarity index 100%
rename from apps/static/js/layer/layer.js
rename to apps/static/js/plugins/layer/layer.js
diff --git a/apps/static/js/layer/skin/default/icon-ext.png b/apps/static/js/plugins/layer/skin/default/icon-ext.png
similarity index 100%
rename from apps/static/js/layer/skin/default/icon-ext.png
rename to apps/static/js/plugins/layer/skin/default/icon-ext.png
diff --git a/apps/static/js/layer/skin/default/icon.png b/apps/static/js/plugins/layer/skin/default/icon.png
similarity index 100%
rename from apps/static/js/layer/skin/default/icon.png
rename to apps/static/js/plugins/layer/skin/default/icon.png
diff --git a/apps/static/js/layer/skin/default/loading-0.gif b/apps/static/js/plugins/layer/skin/default/loading-0.gif
similarity index 100%
rename from apps/static/js/layer/skin/default/loading-0.gif
rename to apps/static/js/plugins/layer/skin/default/loading-0.gif
diff --git a/apps/static/js/layer/skin/default/loading-1.gif b/apps/static/js/plugins/layer/skin/default/loading-1.gif
similarity index 100%
rename from apps/static/js/layer/skin/default/loading-1.gif
rename to apps/static/js/plugins/layer/skin/default/loading-1.gif
diff --git a/apps/static/js/layer/skin/default/loading-2.gif b/apps/static/js/plugins/layer/skin/default/loading-2.gif
similarity index 100%
rename from apps/static/js/layer/skin/default/loading-2.gif
rename to apps/static/js/plugins/layer/skin/default/loading-2.gif
diff --git a/apps/static/js/layer/skin/layer.css b/apps/static/js/plugins/layer/skin/layer.css
similarity index 100%
rename from apps/static/js/layer/skin/layer.css
rename to apps/static/js/plugins/layer/skin/layer.css
diff --git a/apps/static/js/layer/skin/layer.ext.css b/apps/static/js/plugins/layer/skin/layer.ext.css
similarity index 100%
rename from apps/static/js/layer/skin/layer.ext.css
rename to apps/static/js/plugins/layer/skin/layer.ext.css
diff --git a/apps/static/js/magnific/jquery.magnific-popup.min.js b/apps/static/js/plugins/magnific/jquery.magnific-popup.min.js
similarity index 100%
rename from apps/static/js/magnific/jquery.magnific-popup.min.js
rename to apps/static/js/plugins/magnific/jquery.magnific-popup.min.js
diff --git a/apps/static/js/validator/images/loading.gif b/apps/static/js/plugins/validator/images/loading.gif
similarity index 100%
rename from apps/static/js/validator/images/loading.gif
rename to apps/static/js/plugins/validator/images/loading.gif
diff --git a/apps/static/js/validator/images/validator_default.png b/apps/static/js/plugins/validator/images/validator_default.png
similarity index 100%
rename from apps/static/js/validator/images/validator_default.png
rename to apps/static/js/plugins/validator/images/validator_default.png
diff --git a/apps/static/js/validator/images/validator_simple.png b/apps/static/js/plugins/validator/images/validator_simple.png
similarity index 100%
rename from apps/static/js/validator/images/validator_simple.png
rename to apps/static/js/plugins/validator/images/validator_simple.png
diff --git a/apps/static/js/validator/jquery.validator.js b/apps/static/js/plugins/validator/jquery.validator.js
similarity index 100%
rename from apps/static/js/validator/jquery.validator.js
rename to apps/static/js/plugins/validator/jquery.validator.js
diff --git a/apps/static/js/validator/zh_CN.js b/apps/static/js/plugins/validator/zh_CN.js
similarity index 100%
rename from apps/static/js/validator/zh_CN.js
rename to apps/static/js/plugins/validator/zh_CN.js
diff --git a/apps/templates/_head_css_js.html b/apps/templates/_head_css_js.html
index 5a241d8b9..b7295bb2c 100644
--- a/apps/templates/_head_css_js.html
+++ b/apps/templates/_head_css_js.html
@@ -7,7 +7,7 @@
{##}
{##}
-
+
{##}
{##}
{##}
diff --git a/apps/users/forms.py b/apps/users/forms.py
index 5b9f5b6e3..b57b516ba 100644
--- a/apps/users/forms.py
+++ b/apps/users/forms.py
@@ -1,6 +1,7 @@
# ~*~ coding: utf-8 ~*~
from django.forms import ModelForm
+from django import forms
from .models import User, UserGroup
@@ -9,6 +10,11 @@ class UserForm(ModelForm):
class Meta:
model = User
fields = [
- 'username', 'password', 'name', 'email', 'groups', 'wechat',
+ 'username', 'name', 'email', 'groups', 'wechat',
'phone', 'enable_2FA', 'role', 'date_expired', 'comment',
]
+ # widgets = {
+ # 'groups': forms.SelectMultiple(attrs={'class': 'chosen-select'})
+ # }
+
+
diff --git a/apps/users/migrations/0005_auto_20160816_1358.py b/apps/users/migrations/0005_auto_20160816_1358.py
new file mode 100644
index 000000000..7f743eb7f
--- /dev/null
+++ b/apps/users/migrations/0005_auto_20160816_1358.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10 on 2016-08-16 05:58
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0004_auto_20160815_2257'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='comment',
+ field=models.TextField(blank=True, max_length=200, verbose_name='\u63cf\u8ff0'),
+ ),
+ ]
diff --git a/apps/users/templates/users/_user.html b/apps/users/templates/users/_user.html
index e7581bc76..3c6e08eac 100644
--- a/apps/users/templates/users/_user.html
+++ b/apps/users/templates/users/_user.html
@@ -1,5 +1,10 @@
{% extends 'base.html' %}
+{% load static %}
{% load bootstrap %}
+{% block custom_head_css_js %}
+
+
+{% endblock %}
{% block content %}
@@ -24,7 +29,7 @@
{% endblock %}
-{% block self_footer_js %}
-
-
{% endblock %}
\ No newline at end of file
diff --git a/apps/users/templates/users/user_add.html b/apps/users/templates/users/user_add.html
index 501df1baa..07b077b2a 100644
--- a/apps/users/templates/users/user_add.html
+++ b/apps/users/templates/users/user_add.html
@@ -1,4 +1,8 @@
{% extends 'users/_user.html' %}
+{% load bootstrap %}
+{% block username %}
+ {{ form.username|bootstrap_horizontal }}
+{% endblock %}
{% block password %}
密码