Example #1
0
# _*_ 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)
Example #2
0
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)


Example #3
0
                                             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')
Example #4
0
        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]
Example #5
0
            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)
Example #6
0
        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)
Example #7
0
# 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'
Example #8
0
                                    ), ))
        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):
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
#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)
Example #12
0
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)
Example #13
0
        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)
Example #14
0
# -*- 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
Example #15
0

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)
Example #16
0
__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')
Example #17
0
        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)

Example #18
0
                )
            )
        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:
Example #19
0
#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)
Example #20
0
        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')
Example #21
0
    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)
Example #22
0
    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]
Example #23
0
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']
Example #24
0
                )
            )
        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:
Example #25
0
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
Example #26
0
            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)
Example #27
0
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)