Ejemplo n.º 1
0
        },
    ],
               [
                   {
                       "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)
Ejemplo n.º 2
0
# 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)
Ejemplo n.º 3
0
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", )
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
# 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)
Ejemplo n.º 6
0
# 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)
Ejemplo n.º 7
0
    ]
    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)
Ejemplo n.º 8
0
        "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)
Ejemplo n.º 9
0
# -*- 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)
Ejemplo n.º 10
0
# 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)
Ejemplo n.º 11
0
# -*- 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)
Ejemplo n.º 12
0
            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)
Ejemplo n.º 13
0
# 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)
Ejemplo n.º 14
0
# -*- 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)



Ejemplo n.º 15
0
                    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)
Ejemplo n.º 16
0
# 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)
Ejemplo n.º 17
0
# 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)
Ejemplo n.º 18
0
    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)
Ejemplo n.º 19
0
# -*- 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)
Ejemplo n.º 20
0
# 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)
Ejemplo n.º 21
0
# 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)
Ejemplo n.º 22
0
# 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)
Ejemplo n.º 23
0
# 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)
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0


from .models import Article
from xadmin import site


class ArticleAdmin(object):
    model_icon = 'fa fa-home'


site.register(Article)

Ejemplo n.º 27
0
    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)
Ejemplo n.º 28
0
                           '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

Ejemplo n.º 29
0
                       '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)
Ejemplo n.º 30
0
#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)
Ejemplo n.º 31
0
    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
Ejemplo n.º 32
0
# -*- 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)
Ejemplo n.º 33
0
# 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)
Ejemplo n.º 34
0
# -*- 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)
Ejemplo n.º 35
0
# 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)
Ejemplo n.º 36
0
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
Ejemplo n.º 37
0
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,
Ejemplo n.º 38
0
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)