本文整理汇总了Python中freenasUI.freeadmin.tree.TreeNode.append_child方法的典型用法代码示例。如果您正苦于以下问题:Python TreeNode.append_child方法的具体用法?Python TreeNode.append_child怎么用?Python TreeNode.append_child使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类freenasUI.freeadmin.tree.TreeNode
的用法示例。
在下文中一共展示了TreeNode.append_child方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
def __init__(self, *args, **kwargs):
super(Linkss, self).__init__(*args, **kwargs)
laggadd = TreeNode('Add')
laggadd.name = _(u'Create Link Aggregation')
laggadd.view = 'freeadmin_network_lagginterface_add'
laggadd.type = 'object'
laggadd.icon = u'AddLAGGIcon'
laggadd.model = 'LAGGInterface'
laggadd.app_name = 'network'
laggview = TreeNode('View')
laggview.gname = 'View'
laggview.name = _(u'View Link Aggregations')
laggview.type = 'opennetwork'
laggview.icon = u'ViewAllLAGGsIcon'
laggview.model = 'LAGGInterface'
laggview.app_name = 'network'
self.append_children([laggadd, laggview])
for value, name in LAGGType:
laggs = models.LAGGInterface.objects.filter(lagg_protocol__exact=value)
if laggs.count() > 0:
nav = TreeNode()
nav.name = name
nav.icon = u'LAGGIcon'
nav._children = []
self.append_child(nav)
for lagg in laggs:
subnav = TreeNode()
subnav.name = lagg.lagg_interface.int_name
subnav.icon = u'LAGGIcon'
subnav._children = []
nav.append_child(subnav)
laggm = models.LAGGInterfaceMembers.objects.filter(
lagg_interfacegroup__exact=lagg.id
).order_by('lagg_ordernum')
for member in laggm:
subsubnav = TreeNode()
subsubnav.name = member.lagg_physnic
subsubnav.type = 'editobject'
subsubnav.icon = u'LAGGIcon'
subsubnav.view = 'freeadmin_network_lagginterfacemembers_edit'
subsubnav.app_name = 'network'
subsubnav.model = 'LAGGInterfaceMembers' + lagg.lagg_interface.int_name
subsubnav.kwargs = {'oid': member.id}
subsubnav.append_url = '?deletable=false'
subsubnav._children = []
subnav.append_child(subsubnav)
示例2: __init__
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
def __init__(self, *args, **kwargs):
super(Linkss, self).__init__(*args, **kwargs)
laggadd = TreeNode("Add")
laggadd.name = _(u"Create Link Aggregation")
laggadd.view = "freeadmin_network_lagginterface_add"
laggadd.type = "object"
laggadd.icon = u"AddLAGGIcon"
laggadd.model = "LAGGInterface"
laggadd.app_name = "network"
laggview = TreeNode("View")
laggview.gname = "View"
laggview.name = _(u"View Link Aggregations")
laggview.type = "opennetwork"
laggview.icon = u"ViewAllLAGGsIcon"
laggview.model = "LAGGInterface"
laggview.app_name = "network"
self.append_children([laggadd, laggview])
for value, name in LAGGType:
laggs = models.LAGGInterface.objects.filter(lagg_protocol__exact=value)
if laggs.count() > 0:
nav = TreeNode()
nav.name = name
nav.icon = u"LAGGIcon"
nav._children = []
self.append_child(nav)
for lagg in laggs:
subnav = TreeNode()
subnav.name = lagg.lagg_interface.int_name
subnav.icon = u"LAGGIcon"
subnav._children = []
nav.append_child(subnav)
laggm = models.LAGGInterfaceMembers.objects.filter(lagg_interfacegroup__exact=lagg.id).order_by(
"lagg_ordernum"
)
for member in laggm:
subsubnav = TreeNode()
subsubnav.name = member.lagg_physnic
subsubnav.type = "editobject"
subsubnav.icon = u"LAGGIcon"
subsubnav.view = "freeadmin_network_lagginterfacemembers_edit"
subsubnav.app_name = "network"
subsubnav.model = "LAGGInterfaceMembers" + lagg.lagg_interface.int_name
subsubnav.kwargs = {"oid": member.id}
subsubnav.append_url = "?deletable=false"
subsubnav._children = []
subnav.append_child(subsubnav)
示例3: _gen_dataset
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
def _gen_dataset(self, node, dataset):
if dataset.name.startswith('.'):
return
nav = TreeNode(dataset.name)
nav.name = dataset.mountpoint
nav.icon = u'VolumesIcon'
ds = TreeNode('Dataset')
ds.name = _(u'Create Dataset')
ds.view = 'storage_dataset'
ds.icon = u'AddDatasetIcon'
ds.type = 'object'
ds.kwargs = {'fs': dataset.path}
nav.append_child(ds)
subnav = TreeNode('ChangePermissions')
subnav.name = _(u'Change Permissions')
subnav.type = 'editobject'
subnav.view = 'storage_mp_permission'
subnav.kwargs = {'path': dataset.mountpoint}
subnav.model = 'Volumes'
subnav.icon = u'ChangePasswordIcon'
subnav.app_name = 'storage'
zv = AddZVol()
zv.kwargs = {'parent': dataset.path}
node.append_child(nav)
nav.append_child(subnav)
nav.append_child(zv)
for child in dataset.children:
self._gen_dataset(nav, child)
示例4: __init__
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
def __init__(self, *args, **kwargs):
super(Volumes, self).__init__(*args, **kwargs)
self.append_children([
AddVolume(),
ImportVolume(),
AutoImportVolume(),
ViewVolumes(),
ViewDisks(),
])
if not appPool.hook_feature_disabled('ufs'):
self.append_child(AddVolumeUFS())
has_multipath = models.Disk.objects.exclude(
disk_multipath_name=''
).exists()
if has_multipath:
self.append_child(ViewMultipaths())
mp = models.MountPoint.objects.select_related().order_by('-id')
for i in mp:
nav = TreeNode(i.mp_volume.id)
nav.name = i.mp_path
nav.order = -i.id
nav.model = 'Volume'
nav.kwargs = {'oid': i.mp_volume.id, 'model': 'Volume'}
nav.icon = u'VolumesIcon'
if i.mp_volume.vol_fstype == 'ZFS':
ds = TreeNode('Dataset')
ds.name = _(u'Create ZFS Dataset')
ds.view = 'storage_dataset'
ds.icon = u'AddDatasetIcon'
ds.type = 'object'
ds.kwargs = {'fs': i.mp_volume.vol_name}
nav.append_child(ds)
zv = AddZVol()
zv.kwargs = {'parent': i.mp_volume.vol_name}
nav.append_child(zv)
subnav = TreeNode('ChangePermissions')
subnav.name = _('Change Permissions')
subnav.type = 'editobject'
subnav.view = 'storage_mp_permission'
subnav.kwargs = {'path': i.mp_path}
subnav.model = 'Volume'
subnav.icon = u'ChangePasswordIcon'
subnav.app_name = 'storage'
datasets = i.mp_volume.get_datasets(hierarchical=True)
if datasets:
for name, d in datasets.items():
# TODO: non-recursive algo
self._gen_dataset(nav, d)
nav.append_child(subnav)
self.insert_child(0, nav)
示例5: __init__
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
def __init__(self, *args, **kwargs):
super(Volumes, self).__init__(*args, **kwargs)
self.append_children([
AddVolume(),
ImportDisk(),
ImportVolume(),
ViewVolumes(),
ViewDisks(),
])
if not notifier().is_freenas():
self.append_child(ViewEnclosure())
has_multipath = models.Disk.objects.exclude(
disk_multipath_name=''
).exists()
if has_multipath:
self.append_child(ViewMultipaths())
for i in models.Volume.objects.order_by('-id'):
nav = TreeNode(i.id)
nav.name = i.vol_path
nav.order = -i.id
nav.model = 'Volume'
nav.kwargs = {'oid': i.id, 'model': 'Volume'}
nav.icon = 'VolumesIcon'
ds = TreeNode('Dataset')
ds.name = _('Create Dataset')
ds.view = 'storage_dataset'
ds.icon = 'AddDatasetIcon'
ds.type = 'object'
ds.kwargs = {'fs': i.vol_name}
nav.append_child(ds)
zv = AddZVol()
zv.kwargs = {'parent': i.vol_name}
nav.append_child(zv)
subnav = TreeNode('ChangePermissions')
subnav.name = _('Change Permissions')
subnav.type = 'editobject'
subnav.view = 'storage_mp_permission'
subnav.kwargs = {'path': i.vol_path}
subnav.model = 'Volume'
subnav.icon = 'ChangePasswordIcon'
subnav.app_name = 'storage'
datasets = i.get_datasets(hierarchical=True)
if datasets:
for name, d in list(datasets.items()):
# TODO: non-recursive algo
self._gen_dataset(nav, d)
nav.append_child(subnav)
self.insert_child(0, nav)
示例6: _generate_app
# 需要导入模块: from freenasUI.freeadmin.tree import TreeNode [as 别名]
# 或者: from freenasUI.freeadmin.tree.TreeNode import append_child [as 别名]
#.........这里部分代码省略.........
str(model._meta.object_name),
name=model._meta.verbose_name,
model=c, app_name=app, type='dialog')
try:
navopt.kwargs = {
'oid': model.objects.order_by("-id")[0].id,
}
navopt.view = 'freeadmin_%s_%s_edit' % (
model._meta.app_label,
model._meta.module_name,
)
except:
navopt.view = 'freeadmin_%s_%s_add' % (
model._meta.app_label,
model._meta.module_name,
)
else:
navopt = TreeNode(str(model._meta.object_name))
navopt.name = model._meta.verbose_name_plural
navopt.model = c
navopt.app_name = app
navopt.order_child = False
for key in model._admin.nav_extra.keys():
navopt.__setattr__(
key,
model._admin.nav_extra.get(key))
if model._admin.icon_model is not None:
navopt.icon = model._admin.icon_model
if model._admin.menu_child_of is not None:
childs_of.append((navopt, model))
reg = True
else:
reg = self.register_option(navopt, nav)
if reg and not navopt.type:
qs = model.objects.filter(
**model._admin.object_filters).order_by('-id')
if qs.count() > 0:
if model._admin.object_num > 0:
qs = qs[:model._admin.object_num]
for e in qs:
subopt = TreeNode('Edit')
subopt.type = 'editobject'
subopt.view = 'freeadmin_%s_%s_edit' % (
model._meta.app_label,
model._meta.module_name,
)
if model._admin.icon_object is not None:
subopt.icon = model._admin.icon_object
subopt.model = c
subopt.app_name = app
subopt.kwargs = {
'oid': e.id,
}
if model._admin.edit_modelform:
subopt.kwargs['mf'] = (
model._admin.edit_modelform
)
subopt.gname = e.id
try:
subopt.name = unicode(e)
except:
subopt.name = 'Object'
navopt.append_child(subopt)
# Node to add an instance of model
subopt = TreeNode('Add')
subopt.name = _(u'Add %s') % model._meta.verbose_name
subopt.view = 'freeadmin_%s_%s_add' % (
model._meta.app_label,
model._meta.module_name,
)
subopt.order = 500
subopt.type = 'dialog'
if model._admin.icon_add is not None:
subopt.icon = model._admin.icon_add
subopt.model = c
subopt.app_name = app
self.register_option(subopt, navopt)
# Node to view all instances of model
subopt = TreeNode('View')
subopt.name = _(u'View %s') % (
model._meta.verbose_name_plural,
)
subopt.view = u'freeadmin_%s_%s_datagrid' % (
model._meta.app_label,
model._meta.module_name,
)
if model._admin.icon_view is not None:
subopt.icon = model._admin.icon_view
subopt.model = c
subopt.app_name = app
subopt.order = 501
subopt.type = 'viewmodel'
self.register_option(subopt, navopt)