}, ], [ { "type": "qbutton", "title": "快速上手", "btns": [{ 'title': "FS系统配置", 'icon': fa_icon('cog'), 'url': "/xadmin/page/fsconf/" }, { 'model': models.SipInterface }, { 'model': models.Location }, { 'title': "官方主页", 'icon': fa_icon('github'), 'url': "https://github.com/JoneXiong/YouPBX" }] }, { "type": "html_sofia_status", "title": "VoIP状态" }, ]] site.register(IndexView, MainDashboard)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.base import models from apps.common import ReXmlAdmin class TrunkRoutePatternInline(object): model = models.TrunkRoutePattern extra = 0 class TrunkAdmin(ReXmlAdmin): inlines = [ TrunkRoutePatternInline ] menu_group = 'trunk_group' order = 2 model_icon = fa_icon('cogs') site.register(models.Trunk, TrunkAdmin)
class MovieAdmin(object): list_display = ("id", "title", "nickname", "photo", "showtime", "off_show_date", "presale_start_date", "presale_end_date", "duration", "recommend", "zy_id", "douban_id") list_display_links = ("title", ) list_filter = ("recommend", ) search_fields = ("title", "nickname", "zy_id", "douban_id") def photo(self, obj): pic = '<img src="%s"; width="98px";/>' % obj.small_vertical_photo return pic photo.allow_tags = True photo.short_description = "电影图片" site.register(Movie, MovieAdmin) class MoviePeopleAdmin(object): list_display = ("id", "name", "name_en", "professions", "born_place", "gender") list_display_links = ("name", ) list_filter = ("professions", ) search_fields = ("name", "name_en") site.register(MoviePeople, MoviePeopleAdmin) class MovieStillsAdmin(object): list_display = ("id", "movie", "image", "image_uri_md5", "inner_image_uri") list_display_links = ("movie", ) list_filter = ("movie__title", )
def level_text_show(self, obj): return logging.getLevelName(obj.level) level_text_show.short_description = _("Level") level_text_show.allow_tags = True level_text_show.is_column = True class LdapSearchAdmin(object): """""" refresh_times = range(15, 61, 15) inlines = (LdapSearchInline, ) readonly_fields = ["synchronizing", "total", "status"] list_filter = ("synchronizing", "created", "status") list_display = ("created", "synchronizing", "total", "status") class LdapObjectAdmin(object): """""" search_fields = ( "user__username", "user__first_name", "user__last_name", ) list_display = ("user", "account_name") site.register(LdapObject, LdapObjectAdmin) site.register(LdapSyncLog, LdapSearchAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from xadmin import widgets from apps.base import models from apps.common import ReXmlAdmin class LocationAdmin(ReXmlAdmin): menu_group = 'network_group' order = 2 model_icon = fa_icon('location-arrow') site.register(models.Location, LocationAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.funcs import models from apps.common import ReXmlAdmin class RingGroupDeviceInline(object): model = models.RingGroupDevice extra = 0 class RingGroupAdmin(ReXmlAdmin): inlines = [ RingGroupDeviceInline ] app_label = 'funcs' menu_group = 'application_group' order = 2 model_icon = fa_icon('users') site.register(models.RingGroup, RingGroupAdmin)
] search_fields = ("country", 'protocol', 'port') list_filter = ("country", 'protocol', 'port') list_display = ('file', "country", 'protocol', 'port', 'vpn_activate') def vpn_activate(self, instance): """ativate vpn""" return render_to_string("openvpn/w_buttom.html", context={'instance': instance}) vpn_activate.short_description = """VPN<span style="margin-left: 5px" class="badge badge-success" id="vpn-ip"></span>""" vpn_activate.allow_tags = True vpn_activate.is_column = False @filter_hook def get_media(self): media = super(OVPNAdmin, self).get_media() media.add_js(self.render_js_on_head) return media site.register(Vpn, VPNAdmin) site.register(Ovpn, OVPNAdmin) # plugins jshead.register(site)
"country", 'protocol', 'port', 'vpn_activate' ) def vpn_activate(self, instance): """ativate vpn""" return render_to_string("openvpn/w_buttom.html", context={ 'instance': instance }) vpn_activate.short_description = """VPN<span style="margin-left: 5px" class="badge badge-success" id="vpn-ip"></span>""" vpn_activate.allow_tags = True vpn_activate.is_column = False @filter_hook def get_media(self): media = super(OVPNAdmin, self).get_media() media.add_js(self.render_js_on_head) return media site.register(Vpn, VPNAdmin) site.register(Ovpn, OVPNAdmin) # plugins jshead.register(site)
# -*- coding: utf-8 -*- from xadmin import site from members.models import ChoirMembers class ChoirMembersAdmin(object): list_display = ('name', 'gender', 'native_place', 'join_time', 'baptize_time', 'telephone', 'qq', 'extra') search_fields = ['name', 'telephone'] list_filter = ('join_time', ) def join_time(self, obj): if obj.join_time: print obj.join_time return obj.join_time.strftime('%Y-%m-%d') return '' def baptize_time(self, obj): if obj.baptize_time: return obj.baptize_time.strftime('%Y-%m-%d') return '' site.register(ChoirMembers, ChoirMembersAdmin)
# coding=utf-8 ''' Access Control List acl.conf https://freeswitch.org/confluence/display/FREESWITCH/ACL ''' from xadmin import site from xadmin.utils import fa_icon from apps.base import models from apps.common import ReXmlAdmin class NetlistItemInline(object): model = models.NetlistItem extra = 0 class NetlistAdmin(ReXmlAdmin): inlines = [NetlistItemInline] menu_group = 'network_group' order = 3 model_icon = fa_icon('volume-control-phone') site.register(models.Netlist, NetlistAdmin)
# -*- coding: utf-8 -*- from xadmin import site from sign.forms import ChoirSignAdminForm from sign.models import ChoirSign class ChoirSignAdmin(object): list_display = ('member', 'sign_date', ) form = ChoirSignAdminForm list_filter = ('sign_date', ) search_fields = ['member__name'] site.register(ChoirSign, ChoirSignAdmin)
charwidget = widgets.AdminTextInputWidget() attrs['widget'] = widgets.SelectRelation( self, 'invalid_sound_type', { 'audio': fkwidget, 'tts': charwidget, 'number': charwidget, 'count': charwidget, 'tts_var': charwidget, 'number_var': charwidget, 'count_var': charwidget, }) if db_field.name == 'exit_sound_content': fkwidget = widgets.ForeignKeyPopupWidget(self, base_models.MediaFile, 'true_path') charwidget = widgets.AdminTextInputWidget() attrs['widget'] = widgets.SelectRelation( self, 'exit_sound_type', { 'audio': fkwidget, 'tts': charwidget, 'number': charwidget, 'count': charwidget, 'tts_var': charwidget, 'number_var': charwidget, 'count_var': charwidget, }) return attrs site.register(models.IVR, IVRAdmin)
# coding=utf-8 from xadmin import site from share_bill import models class BillAdmin(object): app_label = 'share_bill' menu_group = 'bill_base' order = 1 list_display = ("id", "title", "ware", "cost", "remark", "update_time", "create_time") site.register(models.Bill, BillAdmin)
# -*- coding: utf-8 -*- from xadmin import site from finance.forms import CompereWeeklyAdminForm from finance.models import ChoirFinances, TotalMoney class TotalMoneyAdmin(object): list_display = ('total_money', 'createtime') class ChoirFinancesAdmin(object): list_display = ('devote_time', 'money', 'operation', 'extra') form = CompereWeeklyAdminForm site.register(ChoirFinances, ChoirFinancesAdmin) site.register(TotalMoney, TotalMoneyAdmin)
widgets.ForeignKeyPopupWidget(self, models.Device, 'id'), 'ivr': widgets.ForeignKeyPopupWidget(self, models.IVR, 'id'), 'conference': widgets.ForeignKeyPopupWidget(self, models.Conference, 'id'), #'queue': widgets.ForeignKeyPopupWidget(self,models.Queue,'id'), 'voicemail': widgets.ForeignKeyPopupWidget(self, models.VoiceMail, 'id'), }) if db_field.name == 'sound_content': fkwidget = widgets.ForeignKeyPopupWidget(self, base_models.MediaFile, 'true_path') charwidget = widgets.AdminTextInputWidget() attrs['widget'] = widgets.SelectRelation( self, 'sound_type', { 'audio': fkwidget, 'tts': charwidget, 'number': charwidget, 'count': charwidget, 'tts_var': charwidget, 'number_var': charwidget, 'count_var': charwidget, }) return attrs site.register(models.Extension, ExtensionAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.funcs import models from apps.common import ReXmlAdmin class ConferenceAdmin(ReXmlAdmin): app_label = 'funcs' menu_group = 'application_group' order = 4 site.register(models.Conference, ConferenceAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from xadmin import widgets from apps.base import models from apps.common import ReXmlAdmin class ContextAdmin(ReXmlAdmin): menu_group = 'cat_group' order = 1 model_icon = fa_icon('group') site.register(models.Context, ContextAdmin)
title = settings.SITE_TITLE login_form = PasswordLoginAuthenticationForm @filter_hook def get_context(self): context = super(LoginViewAdmin, self).get_context() context.update({ 'site_web': settings.SITE_TITLE, 'bg_path': settings.LOGIN_BG_IMG, }) return context @never_cache def post(self, request, *args, **kwargs): view = self.get(request) # 登录成功,view 的类型是 HttpResponseRedirect # 帐号登录方式的用户名肯定是存在了,不然也不会成功登录,所以这里不用对用户是否存在做判断 if isinstance(view, HttpResponseRedirect): # 如果当前就是登录页,那么就不要跳到登录页 url_path = request.path if is_valid_path(request.path) is True and request.path != reverse( 'xadmin:login') else reverse(settings.SITE_NAME) return HttpResponseRedirect(url_path) return view site.register(LoginView, LoginViewAdmin)
# -*- coding: utf-8 -*- #!/usr/local/bin/python """ 电影排场管理页 __version__ = "1.0" __license__ = "Copyright (c) 2015-2010" __author__ = "madeling <*****@*****.**>" """ from xadmin import site from models import MovieSession class MovieSessionAdmin(object): list_display = ("id", "show_date", "price", "show_time", "movie", "city", "hall", "cinema") list_filter = ("movie__title", "cinema__name", "city__name", "hall__name") list_display_link = ("id", ) search_fields = ("id", ) site.register(MovieSession, MovieSessionAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.funcs import models from apps.common import ReXmlAdmin class AutoattendantKeymappingInline(object): model = models.AutoattendantKeymapping extra = 0 class AutoattendantAdmin(ReXmlAdmin): inlines = [AutoattendantKeymappingInline] app_label = 'funcs' menu_group = 'application_group' order = 3 model_icon = fa_icon('list') site.register(models.Autoattendant, AutoattendantAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.base import models from apps.common import ReXmlAdmin class ContextAdmin(ReXmlAdmin): menu_group = 'cat_group' order = 1 model_icon = fa_icon('group') site.register(models.Context, ContextAdmin) class LocationAdmin(ReXmlAdmin): menu_group = 'network_group' order = 2 model_icon = fa_icon('location-arrow') site.register(models.Location, LocationAdmin) class MediaFileAdmin(ReXmlAdmin): model_icon = fa_icon('file-sound-o') site.register(models.MediaFile, MediaFileAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.funcs import models from apps.common import ReXmlAdmin class TimeRoutesAdmin(ReXmlAdmin): app_label = 'funcs' menu_group = 'application_group' order = 6 model_icon = fa_icon('calendar-times-o') site.register(models.TimeRoutes, TimeRoutesAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.base import models from apps.common import ReXmlAdmin class SipInterfaceAdmin(ReXmlAdmin): menu_group = 'network_group' order = 1 model_icon = fa_icon('plug') def get_nav_btns(self): return [ '''<a href="/xadmin/page/sipinterfaceautoconf/" class="btn btn-primary"><i class="fa fa-inbox"></i> 自动检测</a> ''' ] site.register(models.SipInterface, SipInterfaceAdmin)
import xadmin from xadmin import site from xadmin import views from xadmin.views.dashboard import AppDashboard from app import models ### 全局变量设置 ### xadmin.site.site_title = 'DjangoX' xadmin.site.site_footer = 'My Footer' xadmin.site.head_fix = False xadmin.site.ext_ui = True #xadmin.site.menu_style = 'default' ### 公共类默认值设置 ### class BaseSetting(object): enable_themes = True use_bootswatch = False site.register(views.BaseView, BaseSetting) class GlobalSetting(object): global_search_models = [models.Host, models.IDC] site.register(views.SiteView, GlobalSetting) from . import dashboard from . import admins from . import pages
class NumberPool(ReXmlAdmin): menu_group = 'cat_group' order = 2 data_charts = { "number_count": { 'title': u"应用", "x-field": "name", "y-field": ("count", ), "order": ('id', ), "option": { "series": { "bars": { "align": "center", "barWidth": 0.6, 'show': True } }, "xaxis": { "aggregate": "sum", "mode": "categories" }, }, }, } site.register(models.Number, NumberAdmin) site.register(models.NumberPool, NumberPool)
from .models import Article from xadmin import site class ArticleAdmin(object): model_icon = 'fa fa-home' site.register(Article)
search_fields = ('name', 'alias') fields = ( 'name', 'alias', 'desc', 'category', 'tags', 'status', ) list_display = ('name', 'alias', 'category', 'create_time', 'preview') form = BookForm list_per_page = 15 save_on_top = True def preview(self, obj): return u'<a href="%s/">编辑</a>' % obj.id preview.short_description = u'操作' preview.allow_tags = True class CategoryAdmin(object): list_display = ('name', 'create_time') list_per_page = 15 site.register(Book, BookAdmin) site.register(Category, CategoryAdmin)
'model': models.Host }, { 'model': models.IDC }, { 'title': "DjangoX", 'url': "https://github.com/JoneXiong/DjangoX" }] }, { "type": "addform", "model": models.MaintainLog }, ]] site.register(views.website.IndexView, MainDashboard) # 各 App 默认首页设置 class AppIndex(AppDashboard): app_label = 'app' xadmin.site.register_appindex(AppIndex) # 如果没设定 appindex 则点击时自动进入第一菜单的页面 class AuthIndex(AppDashboard): app_label = 'xadmin' widget_customiz = False
'sip_invite_format', 'voicemail', 'registry_ignoreFWD', css_id='tab2')) ] def do_add(self): from apps.base import models obj = self.new_obj _number = obj.name try: models.Number.objects.get(number=_number) return u'号码已经存在' except: nb = models.Number() nb.number = _number nb.numberpool_id = 1 nb.save() obj.number_id = nb.id super(DeviceAdmin, self).do_add() @filter_hook def get_readonly_fields(self): if self.org_obj: return ['name'] else: return [] site.register(models.Device, DeviceAdmin)
#coding:utf-8 from xadmin import site from .models import Book, Category from .form import BookForm class BookAdmin(object): search_fields = ('name', 'alias') fields = ('name', 'alias', 'desc', 'category', 'tags', 'status',) list_display = ('name', 'alias', 'category', 'create_time', 'preview') form = BookForm list_per_page = 15 save_on_top = True def preview(self, obj): return u'<a href="%s/">编辑</a>' % obj.id preview.short_description = u'操作' preview.allow_tags = True class CategoryAdmin(object): list_display = ('name', 'create_time') list_per_page = 15 site.register(Book, BookAdmin) site.register(Category, CategoryAdmin)
app_label = 'funcs' menu_group = 'application_group' order = 4 class TimeRoutesAdmin(ReXmlAdmin): app_label = 'funcs' menu_group = 'application_group' order = 6 model_icon = fa_icon('calendar-times-o') class VoiceMailAdmin(ReXmlAdmin): app_label = 'funcs' menu_group = 'application_group' order = 5 model_icon = fa_icon('envelope') site.register(models.Conference, ConferenceAdmin) site.register(models.TimeRoutes, TimeRoutesAdmin) site.register(models.VoiceMail, VoiceMailAdmin) #import autoattendant_admin import ringgroup_admin import device_admin
# -*- coding: utf-8 -*- from xadmin import site from members.models import ChoirMembers class ChoirMembersAdmin(object): list_display = ('name', 'gender', 'native_place', 'join_time', 'baptize_time', 'telephone', 'qq', 'extra') search_fields = ['name', 'telephone'] list_filter = ('join_time', ) def join_time(self, obj): if obj.join_time: print obj.join_time return obj.join_time.strftime('%Y-%m-%d') return '' def baptize_time(self, obj): if obj.baptize_time: return obj.baptize_time.strftime('%Y-%m-%d') return '' site.register(ChoirMembers, ChoirMembersAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.base import models from apps.common import ReXmlAdmin class RoutePatternInline(object): model = models.RoutePattern extra = 0 class RouteAdmin(ReXmlAdmin): inlines = [ RoutePatternInline ] menu_group = 'trunk_group' order = 1 model_icon = fa_icon('sitemap') site.register(models.Route, RouteAdmin)
# -*- coding: utf-8 -*- from xadmin import site from sign.forms import ChoirSignAdminForm from sign.models import ChoirSign class ChoirSignAdmin(object): list_display = ( 'member', 'sign_date', ) form = ChoirSignAdminForm list_filter = ('sign_date', ) search_fields = ['member__name'] site.register(ChoirSign, ChoirSignAdmin)
# coding=utf-8 from xadmin import site from xadmin.utils import fa_icon from apps.funcs import models from apps.common import ReXmlAdmin class VoiceMailAdmin(ReXmlAdmin): app_label = 'funcs' menu_group = 'application_group' order = 5 model_icon = fa_icon('envelope') site.register(models.VoiceMail, VoiceMailAdmin)
from xadmin import site from xadmin.utils import fa_icon from xadmin import widgets from apps.base import models from apps.common import ReXmlAdmin class ContextAdmin(ReXmlAdmin): menu_group = 'cat_group' order = 1 model_icon = fa_icon('group') site.register(models.Context, ContextAdmin) class LocationAdmin(ReXmlAdmin): menu_group = 'network_group' order = 2 model_icon = fa_icon('location-arrow') site.register(models.Location, LocationAdmin) import route_admin import trunk_admin import netlist_admin import number_admin
class MediaFileAdmin(ReXmlAdmin): model_icon = fa_icon('file-sound-o') list_display = ['comment', 'tag', 'file_size', 'show_true_path'] menu_group = 'exten_group' app_label = 'funcs' list_per_page = 20 def show_true_path(self, obj): return '<audio src="/static/sounds/%s" controls="controls">' % obj.true_path show_true_path.allow_tags = True site.register(models.MediaFile, MediaFileAdmin) class PhraseItemInline(object): model = models.PhraseItem extra = 0 def get_field_attrs(self, db_field, **kwargs): attrs = super(PhraseItemInline, self).get_field_attrs(db_field, **kwargs) if db_field.name == 'sound_content': fkwidget = widgets.ForeignKeyPopupWidget(self, models.MediaFile, 'true_path') charwidget = widgets.AdminTextInputWidget() attrs['widget'] = widgets.SelectRelation( self,
from movie_session.models import MovieSession from xadmin import site from xadmin import views from models import CmArea class CmAreaAdmin(object): """影视资讯的后台管理""" list_display = ("id", "name", "zy_id", "citycode", "level", "sell_ticket", "is_valid") list_display_links = ("name", ) list_filter = ("level", "sell_ticket") search_fields = ("name", "zy_id",) site.register(CmArea, CmAreaAdmin) class MainDashboard(object): widgets = [ [ { "type": "html", "title": u"欢迎进入在线管理系统", "content": "<h3>Good morning, princess. </h3><p>Get busy living, or get busy dying.</p>" }, ] ] site.register(views.IndexView, MainDashboard)