# _*_ encoding:utf-8 _*_ from message.models import Msg from xadmin.sites import site class MsgAdmin(object): list_display = ['name', 'msg_content', 'msg_email', 'msg_time'] search_fileds = ['name', 'msg_content', 'msg_email', 'msg_time'] list_filter = ['name', 'msg_content', 'msg_email', 'msg_time', 'msg_sex'] model_icon = 'fa fa-book fa-fw' site.register(Msg, MsgAdmin)
from xadmin import views from job.models import job51 from xadmin.sites import site # Register your models here. class Job51Admin(object): refresh_times = [10,20,50] list_filter =['job','company','jobaddress','date','wages','joburl'] search_fields =['date','jobaddress'] list_display = ['job','company','jobaddress','date','wages','joburl'] model_icon = 'fa fa-home fa-fw' ordering = ['-date'] site.register(job51,Job51Admin) #添加主题功能 class BaseSetting(object): enable_themes = True use_bootswatch = True site.register(views.BaseAdminView, BaseSetting) #修改头文件及脚本显示 class GlobalSetting(object): site_title = "喻晓生后台管理系统" site_footer = "http://daydayup11.cn" menu_style = "accordion" site.register(views.CommAdminView, GlobalSetting)
model, list_per_page=10, list_editable=[])(req) def has_perm(self): return True def context(self, context): list_view = self.list_view list_view.make_result_list() base_fields = list_view.base_list_display if len(base_fields) > 5: base_fields = base_fields[0:5] context['result_headers'] = [ c for c in list_view.result_headers().cells if c.field_name in base_fields ] context['results'] = [[ o for i, o in enumerate( filter(lambda c: c.field_name in base_fields, r.cells)) ] for r in list_view.results()] context['result_count'] = list_view.result_count context['page_url'] = self.bookmark.url site.register(Bookmark, BookmarkAdmin) site.register_plugin(BookmarkPlugin, ListAdminView) site.register_modelview(r'^bookmark/$', BookmarkView, name='%s_%s_bookmark')
pos = [[w for w in col.split(',') if w != str(obj.id)] for col in portal_pos.value.split('|')] portal_pos.value = '|'.join([','.join(col) for col in pos]) portal_pos.save() def delete_model(self): self.update_dashboard(self.obj) super(UserWidgetAdmin, self).delete_model() def delete_models(self, queryset): for obj in queryset: self.update_dashboard(obj) super(UserWidgetAdmin, self).delete_models(queryset) site.register(UserWidget, UserWidgetAdmin) class WidgetManager(object): _widgets = None def __init__(self): self._widgets = {} def register(self, widget_class): self._widgets[widget_class.widget_type] = widget_class return widget_class def get(self, name): return self._widgets[name]
return __() return _method def do_action(self, __, queryset): return self.revision_context_manager.create_revision(manage_manually=False)(self.do_action_func(__))() class ReversionAdmin(object): model_icon = "exchange" class VersionAdmin(object): model_icon = "file" site.register(Revision, ReversionAdmin) site.register(Version, VersionAdmin) site.register_modelview(r"^recover/$", RecoverListView, name="%s_%s_recoverlist") site.register_modelview(r"^recover/([^/]+)/$", RecoverView, name="%s_%s_recover") site.register_modelview(r"^([^/]+)/revision/$", RevisionListView, name="%s_%s_revisionlist") site.register_modelview(r"^([^/]+)/revision/([^/]+)/$", RevisionView, name="%s_%s_revision") site.register_plugin(ReversionPlugin, ListAdminView) site.register_plugin(ReversionPlugin, ModelFormAdminView) site.register_plugin(ReversionPlugin, DeleteAdminView) site.register_plugin(InlineRevisionPlugin, InlineModelAdmin) site.register_plugin(ActionRevisionPlugin, BaseActionView)
super().delete_models(queryset) Ajax.connect('/message/refresh', Method.POST, {'articles': ','.join(articles)}) class VisitorAdmin(object): list_display = ['name', 'email', 'ban', 'date'] list_editable = ['ban', 'date'] list_filter = ('ban', 'date') search_fields = ('name', 'email', 'date') model_icon = 'fa fa-address-book-o' class MessageAdmin(object): list_display = ['visitor', 'article', 'message', 'date'] list_filter = ('visitor__name', 'article__title', 'date') model_icon = 'fa fa-commenting-o' actions = [ RefreshAction, ] def delete_model(self): self.log('delete', '', self.obj) self.obj.delete() Ajax.connect('/message/refresh', Method.POST, {'articles': str(self.obj.article.articleid)}) site.register(Visitor, VisitorAdmin) site.register(Message, MessageAdmin)
# coding=utf-8 from xadmin.sites import site from django.contrib.contenttypes.models import ContentType class ContentTypeAdmin(object): list_per_page = 20 list_display = ( 'name', 'app_label', 'model' ) ordering = ('app_label', 'model') list_filter = ('app_label', 'model') search_fields = ('name', 'app_label', 'model' ) site.register( ContentType, ContentTypeAdmin) from django.contrib.sessions.models import Session class SessionAdmin(object): list_per_page = 20 list_display = ( 'session_key', 'session_data', 'expire_date' ) ordering = ('-expire_date',) search_fields = ('session_key',) site.register( Session, SessionAdmin) from django.contrib.admin.models import LogEntry class LogEntryAdmin(object): list_per_page = 20 list_display = ('action_time', 'user', 'content_type', 'object_id', 'object_repr', 'action_flag', 'change_message') ordering = ('-action_time',) list_filter = ('content_type', 'action_flag', 'user') date_hierarchy = 'action_time'
), )) return super(UserAdmin, self).get_form_layout() class PermissionAdmin(object): def show_name(self, p): return get_permission_name(p) show_name.short_description = _('Permission Name') show_name.is_column = True model_icon = 'fa fa-lock' list_display = ('show_name', ) site.register(Group, GroupAdmin) site.register(User, UserAdmin) # 这里User其实用的是User = get_user_model(),是UserProfile site.register(Permission, PermissionAdmin) class UserFieldPlugin(BaseAdminPlugin): user_fields = [] def get_field_attrs(self, __, db_field, **kwargs): if self.user_fields and db_field.name in self.user_fields: return {'widget': forms.HiddenInput} return __() def get_form_datas(self, datas):
def change_status(self, request, querysets): # 自定制 # self 实例本身 CustomerAdmin # request request请求 # querysets 所有选中的对象 querysets.update(status=0) class CourseRecordAdmin(BaseXAdmin): list_display = ['class_grade', 'day_num', 'has_homework'] # 注意site只在被导入的时候初始化一次!!! # 将app_name, table_name, admin_class想关联 site.register(models.CustomerInfo, CustomerInfoAdmin) site.register(models.UserProfile) site.register(models.Role) site.register(models.Student) site.register(models.Course) site.register(models.CustomerFollowUp) site.register(models.ClassList) site.register(models.CourseRecord, CourseRecordAdmin) site.register(models.StudyRecord) site.register(models.Menus) site.register(models.Branch) site.register(models.PaymentRecord) site.register(models.StudentEnrollment) site.register(models.ContractTemplate)
def show_model_perm(self, menu): """ 是否在侧边栏展示 :param menu: :return: """ view_perm = 'model' in menu and self.user.has_perm( '%s.view_%s' % (menu['model']._meta.app_label, menu['model']._meta.model_name)) show_perm = self.user.has_perm('%s.show_%s' % (menu['model']._meta.app_label, menu['model']._meta.model_name)) hide_perm = self.user.has_perm('%s.hide_%s' % (menu['model']._meta.app_label, menu['model']._meta.model_name)) return view_perm if show_perm else view_perm and not hide_perm @filter_hook def get_context(self): context = super(GlobalSetting, self).get_context() context.update({ 'menu_style': self.menu_style, 'site_url': settings.SITE_PAGE, 'date': datetime.now().year, }) return context site.register(CommAdminView, GlobalSetting) site.register_plugin(SetHomePagePlugin, ListAdminView)
#coding:utf-8 from xadmin.sites import site from ams.models import AppComment, VersionManager class AppCommentAdmin(object): list_display = ('app_version', 'phone_info', 'comment') class VersionManagerAdmin(object): list_display = ('version_code', 'version_name', 'description', 'download_url') list_filter = ('version_code', 'version_name', 'description') site.register(AppComment, AppCommentAdmin) site.register(VersionManager, VersionManagerAdmin)
class TestCommView(CommAdminView): global_models_icon = {ModelB: 'test'} class TestAView(BaseAdminView): pass class OptionA(object): option_attr = 'option_test' class ModelPrimaryAdmin(object): model = ModelPrimary class ModelSecondaryAdmin(object): model = ModelSecondary site.register_modelview(r'^list$', ListAdminView, name='%s_%s_list') site.register_view(r"^test/base$", TestBaseView, 'test') site.register_view(r"^test/comm$", TestCommView, 'test_comm') site.register_view(r"^test/a$", TestAView, 'test_a') site.register(ModelA, ModelAAdmin) site.register(ModelB) normal_site.register(ModelPrimary, ModelPrimaryAdmin) normal_site.register(ModelSecondary, ModelSecondaryAdmin)
return bcs @never_cache def get(self, request, *args, **kwargs): return self.template_response('ansible.html', self.get_context()) site.register_view(r'^ansible/$', Ansible, name='ansible') class DeployAdmin(object): list_display = ('name', 'deploy_time', 'version', 'disconf', 'lts', 'mq', 'description') list_editable = ('deploy_time', 'version', 'description') list_display_links = ('name',) show_detail_fields = ("description") show_all_rel_details = ("xxxxx") relfield_style = 'fk-ajax' wizard_form_list = [ ('First\'s Form', ('name', 'deploy_time', 'version', 'description')), ('Second Form', ('db', 'disconf', 'lts', 'mq')), # ('Thread Form', ('customer_id',)) ] search_fields = ['name'] relfield_style = 'fk-ajax' reversion_enable = True # actions = [BatchChangeAction, ] # batch_fields = ('contact', 'create_time') site.register(Deploy, DeployAdmin)
# -*- coding: utf-8 -*- from djcelery.models import TaskState, WorkerState, PeriodicTask, IntervalSchedule, CrontabSchedule from xadmin.sites import site from .models import * class TaskAdmin(object): list_display = ['name', 'cname','create_time'] site.register(Task, TaskAdmin) site.register(IntervalSchedule) # 存储循环任务设置的时间 site.register(CrontabSchedule) # 存储定时任务设置的时间 site.register(PeriodicTask) # 存储任务 site.register(TaskState) # 存储任务执行状态 site.register(WorkerState) # 存储执行任务的worker
xadmin.site.register(UserInfo, UserInfoAdmin) xadmin.site.register(Group, GroupAdmin) from xadmin.sites import site from xadmin.views import BaseAdminView, CommAdminView class MyAdminView(BaseAdminView): def get(self, request, *args, **kwargs): return HttpResponse("nice") site.register_view(r'^me_test/$', MyAdminView, name='my_test') class AdminSettings(object): site_title = u'工单系统' site_footer = u'孙建春的公司' def get_site_menu(self): return ( {'title': '内容管理', 'perm': self.get_model_perm(UserInfo, 'change'), 'menus':( {'title': '游戏资料', 'icon': 'info-sign', 'url': self.get_model_url(UserInfo, 'changelist') + '?_rel_categories__id__exact=2'}, {'title': '网站文章', 'icon': 'file', 'url': self.get_model_url(UserInfo, 'changelist') + '?_rel_categories__id__exact=1'}, )}, {'title': '分类管理', 'perm': self.get_model_perm(UserInfo, 'change'), 'menus':( {'title': '主要分类', 'url': self.get_model_url(UserInfo, 'changelist') + '?_p_date__isnull=True'}, {'title': '游戏资料', 'url': self.get_model_url(UserInfo, 'changelist') + '?_rel_parent__id__exact=2'}, )}, ) site.register(CommAdminView, AdminSettings)
__author__ = 'ankang' __date__ = '2018/03/26 22:29' from apps.clone.models import CopyArticle, CopyLogin from apps.clone.views import CloneArticle from xadmin.sites import site from xadmin.views import BaseAdminView from .xplugin import CopyPlugin class CopyArticleAdmin(object): list_display = [ 'name', 'host', 'title', 'h2', 'h3', 'context', 'code', 'exclude' ] list_editable = [ 'name', 'host', 'title', 'h2', 'h3', 'context', 'code', 'exclude' ] model_icon = 'fa fa-building-o' class CopyLoginAdmin(object): list_display = ['host', 'username', 'password', 'signal', 'cookie', 'js'] list_editable = ['username', 'password', 'signal', 'cookie'] model_icon = 'fa fa-rocket' site.register(CopyArticle, CopyArticleAdmin) site.register(CopyLogin, CopyLoginAdmin) site.register_plugin(CopyPlugin, BaseAdminView) site.register_view(r'copy-article/$', CloneArticle, name='get_task_list')
return self.revision_manager._revision_context_manager def do_action_func(self, __): def _method(): self.revision_context_manager.set_user(self.user) action_view = self.admin_view comment = action_view.description % model_format_dict(self.opts) self.revision_context_manager.set_comment(comment) return __() return _method def do_action(self, __, queryset): return self.revision_context_manager.create_revision(manage_manually=False)(self.do_action_func(__))() site.register(Revision) site.register(Version) site.register_modelview(r'^recover/$', RecoverListView, name='%s_%s_recoverlist') site.register_modelview(r'^recover/([^/]+)/$', RecoverView, name='%s_%s_recover') site.register_modelview(r'^([^/]+)/revision/$', RevisionListView, name='%s_%s_revisionlist') site.register_modelview(r'^([^/]+)/revision/([^/]+)/$', RevisionView, name='%s_%s_revision') site.register_plugin(ReversionPlugin, ListAdminView) site.register_plugin(ReversionPlugin, ModelFormAdminView) site.register_plugin(ReversionPlugin, DeleteAdminView) site.register_plugin(InlineRevisionPlugin, InlineModelAdmin) site.register_plugin(ActionRevisionPlugin, BaseActionView)
) ) return super(UserAdmin, self).get_form_layout() class PermissionAdmin(object): def show_name(self, p): return get_permission_name(p) show_name.short_description = _('Permission Name') show_name.is_column = True model_icon = 'lock' list_display = ('show_name', ) site.register(Group, GroupAdmin) site.register(User, UserAdmin) site.register(Permission, PermissionAdmin) class UserFieldPlugin(BaseAdminPlugin): user_fields = [] def get_field_attrs(self, __, db_field, **kwargs): if self.user_fields and db_field.name in self.user_fields: return {'widget': forms.HiddenInput} return __() def get_form_datas(self, datas): if self.user_fields and 'data' in datas:
#coding:utf-8 from xadmin.sites import site from ams.models import AppComment, VersionManager class AppCommentAdmin(object): list_display = ('app_version','phone_info','comment') class VersionManagerAdmin(object): list_display = ('version_code','version_name','description','download_url') list_filter = ('version_code','version_name','description') site.register(AppComment, AppCommentAdmin) site.register(VersionManager, VersionManagerAdmin)
if not self.title: self.title = unicode(bookmark) req = self.make_get_request("", data.items()) self.list_view = self.get_view_class( ListAdminView, model, list_per_page=10, list_editable=[])(req) def has_perm(self): return True def context(self, context): list_view = self.list_view list_view.make_result_list() base_fields = list_view.base_list_display if len(base_fields) > 5: base_fields = base_fields[0:5] context['result_headers'] = [c for c in list_view.result_headers( ).cells if c.field_name in base_fields] context['results'] = [[o for i, o in enumerate(filter(lambda c:c.field_name in base_fields, r.cells))] for r in list_view.results()] context['result_count'] = list_view.result_count context['page_url'] = self.bookmark.url site.register(Bookmark, BookmarkAdmin) site.register_plugin(BookmarkPlugin, ListAdminView) site.register_modelview(r'^bookmark/$', BookmarkView, name='%s_%s_bookmark')
list_filter = ('is_admin', 'is_active', 'roles', 'groups') list_display_links = ('modify') search_fields = ('username', 'introduce_by', 'date_joined', 'email') fields = ['is_admin', 'roles', 'groups'] ordering = ('email',) style_fields = {'roles': 'm2m_transfer'} model_icon = 'fa fa-user' relfield_style = 'fk-ajax' use_related_menu = False remove_permissions = ['add', 'delete'] def get_list_display(self): list_display = ['username', 'is_admin', 'modify'] from jwt_auth.models import Role for role in Role.objects.all(): role_check = RoleCheck(role.id, role.name) setattr(self.__class__, role_check.name, role_check) list_display.insert(-1, role_check.name) return list_display def queryset(self): qs = super(UserAuthenticationAdmin, self).queryset().filter(is_superuser=False) return qs def get_model_form(self, **kwargs): self.form = UserAuthenticationChangeForm return super(UserAuthenticationAdmin, self).get_model_form(**kwargs) site.unregister(User) site.register(UserManagement, UserManagementAdmin) site.register(UserAuthentication, UserAuthenticationAdmin)
def delete_model(self): try: obj = self.obj portal_pos = UserSettings.objects.get( user=obj.user, key="dashboard:%s:pos" % obj.page_id) pos = [[w for w in col.split(',') if w != str( obj.id)] for col in portal_pos.value.split('|')] portal_pos.value = '|'.join([','.join(col) for col in pos]) portal_pos.save() except Exception: pass super(UserWidgetAdmin, self).delete_model() site.register(UserWidget, UserWidgetAdmin) class WidgetManager(object): _widgets = None def __init__(self): self._widgets = {} def register(self, widget_class): self._widgets[widget_class.widget_type] = widget_class return widget_class def get(self, name): return self._widgets[name]
from .xplugin import RefreshButton, RefreshPlugin # 基本的修改 class BaseSetting(object): enable_themes = True # 打开主题功能 use_bootswatch = True # refresh_cache_plugin = True class GlobalSetting(object): site_title = u'安康博客' site_footer = u'安康博客' site.register(BaseAdminView, BaseSetting) site.register(CommAdminView, GlobalSetting) class DeleteRelAction(DeleteSelectedAction): def delete_models(self, queryset): delete_path = 'img' if self.model_name == 'image' else 'ext' for obj in queryset: file = os.path.join(settings.MEDIA_ROOT, delete_path, obj.path.url.split('/')[-1]) if os.path.exists(file): os.remove(file) super().delete_models(queryset) class ArticleAdmin(object): list_display = ['title', 'group', 'comment', 'script', 'image', 'createdate']
) ) return super(UserAdmin, self).get_form_layout() class PermissionAdmin(object): def show_name(self, p): return get_permission_name(p) show_name.short_description = _('Permission Name') show_name.is_column = True model_icon = 'fa fa-lock' list_display = ('show_name', ) site.register(Group, GroupAdmin) site.register(User, UserAdmin) site.register(Permission, PermissionAdmin) class UserFieldPlugin(BaseAdminPlugin): user_fields = [] def get_field_attrs(self, __, db_field, **kwargs): if self.user_fields and db_field.name in self.user_fields: return {'widget': forms.HiddenInput} return __() def get_form_datas(self, datas): if self.user_fields and 'data' in datas:
from __future__ import absolute_import, unicode_literals from django_celery_beat.models import (PeriodicTask, IntervalSchedule, CrontabSchedule) from xadmin.sites import site site.register(IntervalSchedule) # 存储循环任务设置的时间 site.register(CrontabSchedule) # 存储定时任务设置的时间 site.register(PeriodicTask) # 存储任务 # site.register(TaskState) # 存储任务执行状态 # site.register(WorkerState) # 存储执行任务的worker
self.revision_context_manager.set_comment(comment) return __() return _method def do_action(self, __, queryset): return self.revision_context_manager.create_revision(manage_manually=False)(self.do_action_func(__))() class ReversionAdmin(object): model_icon = 'exchange' class VersionAdmin(object): model_icon = 'file' site.register(Revision, ReversionAdmin) site.register(Version, VersionAdmin) site.register_modelview( r'^recover/$', RecoverListView, name='%s_%s_recoverlist') site.register_modelview( r'^recover/([^/]+)/$', RecoverView, name='%s_%s_recover') site.register_modelview( r'^([^/]+)/revision/$', RevisionListView, name='%s_%s_revisionlist') site.register_modelview( r'^([^/]+)/revision/([^/]+)/$', RevisionView, name='%s_%s_revision') site.register_plugin(ReversionPlugin, ListAdminView) site.register_plugin(ReversionPlugin, ModelFormAdminView) site.register_plugin(ReversionPlugin, DeleteAdminView)
from xadmin.sites import site from elfinder.adminx.mptt_adminx import MPTTModelAdmin from elfinder.models import File, Directory, FileCollection from elfinder.conf import settings class mMPTTModelAdmin(MPTTModelAdmin): list_display = ("name", "collection") search_fields = ('name', ) if settings.ELFINDER_XADMIN_REGISTER: site.register(Directory, mMPTTModelAdmin) site.register(FileCollection) site.register(File)