소스 검색

Create adminx.py

一个 xadmin 的插件扩展。
sai 12 년 전
부모
커밋
630dcc9eca
1개의 변경된 파일34개의 추가작업 그리고 0개의 파일을 삭제
  1. 34 0
      DjangoUeditor/adminx.py

+ 34 - 0
DjangoUeditor/adminx.py

@@ -0,0 +1,34 @@
+#coding:utf-8
+#__author__ = 'sai'
+#DjangoUeditor Xadmin plugin
+
+import xadmin
+from django.db.models import TextField
+from xadmin.views import BaseAdminPlugin, ModelFormAdminView, DetailAdminView
+from DjangoUeditor.models import UEditorField
+from DjangoUeditor.widgets import UEditorWidget
+from django.conf import settings
+
+class XadminUEditorWidget(UEditorWidget):
+    def __init__(self,**kwargs):
+        self.ueditor_options=kwargs
+        self.Media.js = None
+        super(UEditorWidget,self).__init__(kwargs)
+
+class UeditorPlugin(BaseAdminPlugin):
+
+    def get_field_style(self, attrs, db_field, style, **kwargs):
+        if style == 'ueditor':
+            if isinstance(db_field, UEditorField):
+                return {'widget': XadminUEditorWidget(**db_field.formfield().widget.ueditor_options)}
+            if isinstance(db_field, TextField):
+                return {'widget': XadminUEditorWidget}
+        return attrs
+
+    def block_extrahead(self, context, nodes):
+        js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/editor_config.js")
+        js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/editor_all_min.js")
+        nodes.append(js)
+
+xadmin.site.register_plugin(UeditorPlugin, DetailAdminView)
+xadmin.site.register_plugin(UeditorPlugin, ModelFormAdminView)