def __new__(cls, name, bases, attrs): from freenasUI.freeadmin.site import site new_class = ModelBase.__new__(cls, name, bases, attrs) if new_class._meta.abstract: pass elif hasattr(new_class, 'FreeAdmin'): site.register(new_class, freeadmin=new_class.FreeAdmin) return new_class
def __new__(cls, name, bases, attrs): from freenasUI.freeadmin.site import site bases = list(bases) appPool.hook_model_new(name, bases, attrs) new_class = ModelBase.__new__(cls, name, tuple(bases), attrs) if new_class._meta.abstract: pass elif hasattr(new_class, 'FreeAdmin'): site.register(new_class, freeadmin=new_class.FreeAdmin) return new_class
} return actions def get_datagrid_dblclick(self, request=None): func = """ grid.on(".dgrid-row:dblclick", function(evt) { var row = grid.row(evt); if (row.data.cert_type_CSR) { editObject('Edit', row.data._CSR_edit_url, [this, ]); } else { editObject('Edit', row.data._edit_url, [this, ]); } }); """ return func class UpdateFAdmin(BaseFreeAdmin): deletable = False resource_mixin = UpdateResourceMixin site.register(None, BootStatusFAdmin) site.register(models.CertificateAuthority, CertificateAuthorityFAdmin) site.register(models.Certificate, CertificateFAdmin) site.register(models.Settings, SettingsFAdmin) site.register(models.Update, UpdateFAdmin)
actions['delete'] = self._action_builder( 'jail_delete', label=_("Delete"), func='editScaryObject' ) return actions class NullMountPointFAdmin(BaseFreeAdmin): menu_child_of = u"jails" icon_model = u"MountPointIcon" icon_object = u"MountPointIcon" icon_add = u"AddMountPointIcon" icon_view = u"ViewMountPointIcon" resource = NullMountPointResource def get_datagrid_columns(self): columns = super(NullMountPointFAdmin,self).get_datagrid_columns() columns.insert(3, { 'name': 'mounted', 'label': _('Mounted?'), 'sortable': False, }) return columns site.register(models.Jails, JailsFAdmin) site.register(models.NullMountPoint, NullMountPointFAdmin)
def get_datagrid_columns(self): columns = super(NFSShareFAdmin, self).get_datagrid_columns() columns.insert(0, { 'name': 'nfs_paths', 'label': _('Paths'), 'sortable': True, }) return columns class WebDAVShareFAdmin(BaseFreeAdmin): icon_model = "WebDAVShareIcon" icon_add = "AddWebDAVShareIcon" icon_view = "ViewAllWebDAVSharesIcon" icon_object = "WebDAVShareIcon" fields = ( 'webdav_name', 'webdav_comment', 'webdav_path', 'webdav_ro', 'webdav_perm', ) resource_name = 'sharing/webdav' site.register(models.AFP_Share, AFPShareFAdmin) site.register(models.CIFS_Share, CIFSShareFAdmin) site.register(models.NFS_Share, NFSShareFAdmin) site.register(models.WebDAV_Share, WebDAVShareFAdmin)
dojo.addClass(pane2.domNode, [ "data_network_LAGGInterfaceMembers" + data.int_name, "objrefresh" ]); p.addChild(pane2); p.selectChild(pane2); } }""" % { 'lagg_members': _('LAGG Members'), } } return actions class LAGGInterfaceMembersFAdmin(BaseFreeAdmin): icon_object = u"LAGGIcon" icon_model = u"LAGGIcon" resource_mixin = LAGGInterfaceMembersResourceMixin def get_datagrid_filters(self, request): return { "lagg_interfacegroup__id": request.GET.get("id"), } site.register(models.Interfaces, InterfacesFAdmin) site.register(models.LAGGInterface, LAGGInterfaceFAdmin) site.register(models.LAGGInterfaceMembers, LAGGInterfaceMembersFAdmin)
'on_click': """function() { var mybtn = this; for (var i in grid.selection) { var data = grid.row(i).data; editObject('Delete', data._delete_url, [mybtn,]); } }""", } return actions def get_datagrid_dblclick(self, request=None): func = """ grid.on(".dgrid-row:dblclick", function(evt) { var row = grid.row(evt); if (row.data.cert_type_CSR) { editObject('Edit', row.data._CSR_edit_url, [this, ]); } else { editObject('Edit', row.data._edit_url, [this, ]); } }); """ return func site.register(models.Settings, SettingsFAdmin) site.register(models.CertificateAuthority, CertificateAuthorityFAdmin) site.register(models.Certificate, CertificateFAdmin)
columns.append({'name': "keytab_name", 'label': _("Name")}) return columns def get_datagrid_context(self, request): context = super(KerberosKeytabFAdmin, self).get_datagrid_context(request) context.update( {'add_url': reverse('directoryservice_kerberoskeytab_add')}) return context class KerberosSettingsFAdmin(BaseFreeAdmin): create_modelform = "KerberosSettingsForm" edit_modelform = "KerberosSettingsForm" icon_object = "SettingsIcon" icon_model = "SettingsIcon" icon_add = "SettingsIcon" icon_view = "SettingsIcon" deletable = False resource_mixin = KerberosSettingsResourceMixin site.register(models.ActiveDirectory, ActiveDirectoryFAdmin) site.register(models.LDAP, LDAPFAdmin) site.register(models.NIS, NISFAdmin) site.register(models.KerberosRealm, KerberosRealmFAdmin) site.register(models.KerberosKeytab, KerberosKeytabFAdmin) site.register(models.KerberosSettings, KerberosSettingsFAdmin)
query(".grid" + actionName).forEach(function(item, idx) { domStyle.set(item, "display", "none"); }); break; } } }""", } return actions def get_datagrid_columns(self): columns = super(VMFAdmin, self).get_datagrid_columns() columns.insert( 2, { 'name': 'info', 'label': _('Info'), 'sortable': False, 'formatter': """function(value,obj) { return value; }""", }) return columns site.register(models.Device, DeviceFAdmin) site.register(models.VM, VMFAdmin)
icon_view = u"ViewAllTargetExtentsIcon" resource_mixin = ISCSITargetToExtentResourceMixin class ISCSITargetExtentFAdmin(BaseFreeAdmin): delete_form = "ExtentDelete" delete_form_filter = {'iscsi_target_extent_type__exact': 'File'} menu_child_of = "services.ISCSI" icon_object = u"ExtentIcon" icon_model = u"ExtentIcon" icon_add = u"AddExtentIcon" icon_view = u"ViewAllExtentsIcon" resource_mixin = ISCSITargetExtentResourceMixin exclude_fields = ( 'id', 'iscsi_target_extent_filesize', ) site.register(models.FTP, FTPFAdmin) site.register(models.iSCSITarget, ISCSITargetFAdmin) site.register(models.iSCSITargetPortal, ISCSIPortalFAdmin) site.register(models.iSCSITargetAuthCredential, ISCSIAuthCredentialFAdmin) site.register(models.iSCSITargetToExtent, ISCSITargetToExtentFAdmin) site.register(models.iSCSITargetExtent, ISCSITargetExtentFAdmin) site.register(models.services, ServicesFAdmin)
href: data._members_url }); dojo.addClass(pane2.domNode, [ "data_network_LAGGInterfaceMembers" + data.int_name, "objrefresh" ]); p.addChild(pane2); p.selectChild(pane2); } }""" % { 'lagg_members': _('LAGG Members'), }} return actions class LAGGInterfaceMembersFAdmin(BaseFreeAdmin): icon_object = u"LAGGIcon" icon_model = u"LAGGIcon" resource_mixin = LAGGInterfaceMembersResourceMixin def get_datagrid_filters(self, request): return { "lagg_interfacegroup__id": request.GET.get("id"), } site.register(models.Interfaces, InterfacesFAdmin) site.register(models.LAGGInterface, LAGGInterfaceFAdmin) site.register(models.LAGGInterfaceMembers, LAGGInterfaceMembersFAdmin)
from freenasUI.freeadmin.site import site from freenasUI.sharing import models class NFSShareFAdmin(BaseFreeAdmin): icon_model = u"UNIXShareIcon" icon_add = u"AddUNIXShareIcon" icon_view = u"ViewAllUNIXSharesIcon" icon_object = u"UNIXShareIcon" inlines = [ { 'form': 'NFS_SharePathForm', 'prefix': 'path_set' }, ] resource = NFSShareResource exclude_fields = ('id', ) def get_datagrid_columns(self): columns = super(NFSShareFAdmin, self).get_datagrid_columns() columns.insert(0, { 'name': 'nfs_paths', 'label': _('Paths'), 'sortable': False, }) return columns site.register(models.NFS_Share, NFSShareFAdmin)
}""", } return actions def get_datagrid_dblclick(self, request=None): func = """ grid.on(".dgrid-row:dblclick", function(evt) { var row = grid.row(evt); if (row.data.cert_type_CSR) { editObject('Edit', row.data._CSR_edit_url, [this, ]); } else { editObject('Edit', row.data._edit_url, [this, ]); } }); """ return func class UpgradeFAdmin(BaseFreeAdmin): deletable = False resource_mixin = UpgradeResourceMixin site.register(models.CertificateAuthority, CertificateAuthorityFAdmin) site.register(models.Certificate, CertificateFAdmin) site.register(models.Settings, SettingsFAdmin) site.register(models.Upgrade, UpgradeFAdmin)
# are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # ##################################################################### from freenasUI.api import models from freenasUI.freeadmin.options import BaseFreeAdmin from freenasUI.freeadmin.site import site class APIClientFAdmin(BaseFreeAdmin): menu_child_of = "system" site.register(models.APIClient, APIClientFAdmin)
icon_object = u"TargetExtentIcon" icon_model = u"TargetExtentIcon" icon_add = u"AddTargetExtentIcon" icon_view = u"ViewAllTargetExtentsIcon" resource = ISCSITargetToExtentResource class ISCSITargetExtentFAdmin(BaseFreeAdmin): delete_form = "ExtentDelete" delete_form_filter = {'iscsi_target_extent_type__exact': 'File'} menu_child_of = "services.ISCSI" icon_object = u"ExtentIcon" icon_model = u"ExtentIcon" icon_add = u"AddExtentIcon" icon_view = u"ViewAllExtentsIcon" resource = ISCSITargetExtentResource exclude_fields = ( 'id', 'iscsi_target_extent_filesize', ) site.register(models.iSCSITargetPortal, ISCSIPortalFAdmin) site.register(models.iSCSITargetAuthCredential, ISCSIAuthCredentialFAdmin) site.register(models.iSCSITargetToExtent, ISCSITargetToExtentFAdmin) site.register(models.iSCSITargetExtent, ISCSITargetExtentFAdmin)
'attributes', ) class CloudCredentialsFAdmin(BaseFreeAdmin): exclude_fields = ( 'id', 'attributes', ) icon_object = "CloudCredentialsIcon" icon_model = "CloudCredentialsIcon" icon_add = "CloudCredentialsAddIcon" icon_view = "CloudCredentialsViewIcon" class UpdateFAdmin(BaseFreeAdmin): deletable = False resource_mixin = UpdateResourceMixin site.register(None, BootStatusFAdmin) site.register(models.CertificateAuthority, CertificateAuthorityFAdmin) site.register(models.Certificate, CertificateFAdmin) site.register(models.CloudCredentials, CloudCredentialsFAdmin) site.register(models.ACMEDNSAuthenticator, ACMEDNSAuthenticatorFAdmin) site.register(models.Settings, SettingsFAdmin) site.register(models.Update, UpdateFAdmin)
icon_view = u"ViewAllExtentsIcon" nav_extra = {'order': 15} resource_mixin = ISCSITargetExtentResourceMixin exclude_fields = ( 'id', 'iscsi_target_extent_filesize', 'iscsi_target_extent_naa', 'iscsi_target_extent_legacy', ) class NFSFAdmin(BaseFreeAdmin): resource_mixin = NFSResourceMixin deletable = False icon_model = 'NFSIcon' site.register(models.FibreChannelToTarget, FibreChannelToTargetFAdmin) site.register(models.FTP, FTPFAdmin) site.register(models.iSCSITarget, ISCSITargetFAdmin) site.register(models.iSCSITargetGroups, ISCSITargetGroupsFAdmin) site.register(models.iSCSITargetPortal, ISCSIPortalFAdmin) site.register(models.iSCSITargetAuthCredential, ISCSIAuthCredentialFAdmin) site.register(models.iSCSITargetToExtent, ISCSITargetToExtentFAdmin) site.register(models.iSCSITargetExtent, ISCSITargetExtentFAdmin) site.register(models.NFS, NFSFAdmin) site.register(models.services, ServicesFAdmin)
'lagg_members': _('LAGG Members'), }} return actions class LAGGInterfaceMembersFAdmin(BaseFreeAdmin): icon_object = u"LAGGIcon" icon_model = u"LAGGIcon" resource_mixin = LAGGInterfaceMembersResourceMixin def get_datagrid_filters(self, request): return { "lagg_interfacegroup__id": request.GET.get("id"), } class VLANFAdmin(NetworkInterruptMixin, BaseFreeAdmin): icon_object = u"VLANIcon" icon_model = u"VLANIcon" icon_add = u"AddVLANIcon" icon_view = u"ViewAllVLANsIcon" site.register(models.GlobalConfiguration, GlobalConfigurationFAdmin) site.register(models.Interfaces, InterfacesFAdmin) site.register(models.VLAN, VLANFAdmin) site.register(models.LAGGInterface, LAGGInterfaceFAdmin) site.register(models.LAGGInterfaceMembers, LAGGInterfaceMembersFAdmin)
# ##################################################################### import logging from collections import OrderedDict from django.utils.html import escapejs from django.utils.translation import ugettext as _ from freenasUI.api.resources import PluginsResourceMixin from freenasUI.freeadmin.options import BaseFreeAdmin from freenasUI.freeadmin.site import site from freenasUI.plugins import models log = logging.getLogger('plugins.admin') class PluginsFAdmin(BaseFreeAdmin): icon_model = "PluginsIcon" resource_mixin = PluginsResourceMixin fields = ( 'plugin_name', 'plugin_version', ) site.register(models.Plugins, PluginsFAdmin)
for idx, column in enumerate(human_colums): columns.insert(6 + idx, dict(column)) return columns class SMARTTestFAdmin(BaseFreeAdmin): icon_model = u"SMARTIcon" icon_object = u"SMARTIcon" icon_add = u"AddSMARTTestIcon" icon_view = u"ViewSMARTTestIcon" exclude_fields = ( 'id', 'smarttest_daymonth', 'smarttest_dayweek', 'smarttest_hour', 'smarttest_month', ) resource = SMARTTestResource def get_datagrid_columns(self): columns = super(SMARTTestFAdmin, self).get_datagrid_columns() for idx, column in enumerate(human_colums[1:]): columns.insert(3 + idx, dict(column)) return columns site.register(models.CronJob, CronJobFAdmin) site.register(models.Rsync, RsyncFAdmin) site.register(models.SMARTTest, SMARTTestFAdmin)
icon_view = u"ViewAllExtentsIcon" resource_mixin = ISCSITargetExtentResourceMixin exclude_fields = ( 'id', 'iscsi_target_extent_filesize', ) class NFSFAdmin(BaseFreeAdmin): resource_mixin = NFSResourceMixin deletable = False icon_model = 'NFSIcon' site.register(models.FTP, FTPFAdmin) site.register( models.iSCSITargetGlobalConfiguration, ISCSITargetGlobalConfigurationFAdmin, ) site.register(models.iSCSITarget, ISCSITargetFAdmin) site.register(models.iSCSITargetPortal, ISCSIPortalFAdmin) site.register(models.iSCSITargetAuthCredential, ISCSIAuthCredentialFAdmin) site.register(models.iSCSITargetToExtent, ISCSITargetToExtentFAdmin) site.register(models.iSCSITargetExtent, ISCSITargetExtentFAdmin) site.register(models.NFS, NFSFAdmin) site.register(models.services, ServicesFAdmin)
columns = super(RsyncFAdmin, self).get_datagrid_columns() for idx, column in enumerate(human_colums): columns.insert(6 + idx, dict(column)) return columns class SMARTTestFAdmin(BaseFreeAdmin): icon_model = u"SMARTIcon" icon_object = u"SMARTIcon" icon_add = u"AddSMARTTestIcon" icon_view = u"ViewSMARTTestIcon" exclude_fields = ( 'id', 'smarttest_daymonth', 'smarttest_dayweek', 'smarttest_hour', 'smarttest_month', ) resource_mixin = SMARTTestResourceMixin def get_datagrid_columns(self): columns = super(SMARTTestFAdmin, self).get_datagrid_columns() for idx, column in enumerate(human_colums[1:]): columns.insert(3 + idx, dict(column)) return columns site.register(models.CronJob, CronJobFAdmin) site.register(models.Rsync, RsyncFAdmin) site.register(models.SMARTTest, SMARTTestFAdmin)
var row = grid.row(evt); if (row.data.cert_type_CSR) { editObject('Edit', row.data._CSR_edit_url, [this, ]); } else { editObject('Edit', row.data._edit_url, [this, ]); } }); """ return func class UpdateFAdmin(BaseFreeAdmin): deletable = False resource_mixin = UpdateResourceMixin class VMWarePluginFAdmin(BaseFreeAdmin): exclude_fields = ( 'id', 'password', ) site.register(models.CertificateAuthority, CertificateAuthorityFAdmin) site.register(models.Certificate, CertificateFAdmin) site.register(models.Settings, SettingsFAdmin) site.register(models.Update, UpdateFAdmin) site.register(models.VMWarePlugin, VMWarePluginFAdmin)
data = { 'button_name': label, 'on_select_after': on_select_after, 'on_click': on_click, } return data def get_actions(self): actions = OrderedDict() actions['Members'] = self._action_builder( "members", label=_('Members'), ) actions['Modify'] = self._action_builder( "edit", label=_('Modify Group'), builtin=False, ) actions['Remove'] = self._action_builder( "delete", label=_('Delete Group'), builtin=False, ) return actions site.register(models.bsdUsers, BsdUserFAdmin) site.register(models.bsdGroups, BsdGroupFAdmin)
from django.utils.html import escapejs from django.utils.translation import ugettext as _ from freenasUI.freeadmin.options import BaseFreeAdmin from freenasUI.freeadmin.site import site from freenasUI.system import models class SettingsFAdmin(BaseFreeAdmin): deletable = False def get_extra_context(self, action): try: ssl = models.SSL.objects.order_by("-id")[0] except: ssl = None return { 'ssl': ssl, } site.register(models.Settings, SettingsFAdmin)
advanced_fields = ( 'nfs_network', 'nfs_hosts', 'nfs_quiet', 'nfs_maproot_user', 'nfs_maproot_group', 'nfs_mapall_user', 'nfs_mapall_group', 'nfs_security', ) fields = ( 'nfs_paths', 'nfs_comment', 'nfs_alldirs', 'nfs_ro' ) def get_datagrid_columns(self): columns = super(NFSShareFAdmin, self).get_datagrid_columns() columns.insert(0, { 'name': 'nfs_paths', 'label': _('Paths'), 'sortable': False, }) return columns site.register(models.AFP_Share, AFPShareFAdmin) site.register(models.CIFS_Share, CIFSShareFAdmin) site.register(models.NFS_Share, NFSShareFAdmin)
'label': _('Remote Hostname'), 'sortable': False, }) columns.insert(3, { 'name': 'repl_status', 'label': _('Status'), 'sortable': False, }) return columns class VMWarePluginFAdmin(BaseFreeAdmin): exclude_fields = ( 'id', 'password', ) icon_model = 'VMSnapshotIcon' icon_object = 'VMSnapshotIcon' icon_add = 'VMSnapshotIcon' icon_view = 'VMSnapshotIcon' site.register(models.Disk, DiskFAdmin) site.register(models.Scrub, ScrubFAdmin) site.register(models.Task, TaskFAdmin) site.register(models.Volume, VolumeFAdmin) site.register(models.Replication, ReplicationFAdmin) site.register(models.VMWarePlugin, VMWarePluginFAdmin) site.register(None, VolumeStatusFAdmin)
columns = [] columns.append({"name": "keytab_name", "label": _("Name")}) return columns def get_datagrid_context(self, request): context = super(KerberosKeytabFAdmin, self).get_datagrid_context(request) context.update({"add_url": reverse("directoryservice_kerberoskeytab_add")}) return context class KerberosSettingsFAdmin(BaseFreeAdmin): create_modelform = "KerberosSettingsForm" edit_modelform = "KerberosSettingsForm" icon_object = u"SettingsIcon" icon_model = u"SettingsIcon" icon_add = u"SettingsIcon" icon_view = u"SettingsIcon" resource_mixin = KerberosSettingsResourceMixin site.register(models.ActiveDirectory, ActiveDirectoryFAdmin) site.register(models.LDAP, LDAPFAdmin) site.register(models.NIS, NISFAdmin) site.register(models.NT4, NT4FAdmin) site.register(models.KerberosRealm, KerberosRealmFAdmin) site.register(models.KerberosKeytab, KerberosKeytabFAdmin) site.register(models.KerberosSettings, KerberosSettingsFAdmin)
def get_datagrid_context(self, request): context = super(JailTemplateFAdmin, self).get_datagrid_context(request) context.update({'add_url': reverse('jail_template_create')}) return context class JailMountPointFAdmin(BaseFreeAdmin): icon_model = u"MountPointIcon" icon_object = u"MountPointIcon" icon_add = u"AddMountPointIcon" icon_view = u"ViewMountPointIcon" resource_mixin = JailMountPointResourceMixin resource_name = 'jails/mountpoints' def get_datagrid_columns(self): columns = super(JailMountPointFAdmin, self).get_datagrid_columns() columns.insert(3, { 'name': 'mounted', 'label': _('Mounted?'), 'sortable': False, }) return columns site.register(models.Jails, JailsFAdmin) site.register(models.JailsConfiguration, JailsConfigurationFAdmin) site.register(models.JailTemplate, JailTemplateFAdmin) site.register(models.JailMountPoint, JailMountPointFAdmin)
resource = AvailablePluginsResource double_click = { 'label': _('Install'), 'field': '_install_url', } def get_actions(self): actions = OrderedDict() actions["Install"] = { 'button_name': _("Install"), 'on_click': """function() { var mybtn = this; for (var i in grid.selection) { var data = grid.row(i).data; editObject('Install plugin', data._install_url, [mybtn,]); } }""", } return actions def get_column_name_extra(self): return { 'formatter': """function(value, obj) { return '<img src="/plugins/plugin/available/icon/' + obj['id'] + '/" height="16" width="16"/> ' + value; }""" } site.register(models.Plugins, PluginsFAdmin) site.register(models.Available, AvailableFAdmin)
} """ actions['Edit']['on_select_after'] = on_select_after actions['Delete']['on_select_after'] = on_select_after return actions class NullMountPointFAdmin(BaseFreeAdmin): icon_model = u"MountPointIcon" icon_object = u"MountPointIcon" icon_add = u"AddMountPointIcon" icon_view = u"ViewMountPointIcon" resource_mixin = NullMountPointResourceMixin def get_datagrid_columns(self): columns = super(NullMountPointFAdmin, self).get_datagrid_columns() columns.insert(3, { 'name': 'mounted', 'label': _('Mounted?'), 'sortable': False, }) return columns site.register(models.Jails, JailsFAdmin) site.register(models.JailTemplate, JailTemplateFAdmin) site.register(models.NullMountPoint, NullMountPointFAdmin)
query(".grid" + actionName).forEach(function(item, idx) { domStyle.set(item, "display", "none"); }); break; } } }""", } return actions def get_datagrid_columns(self): columns = super(VMFAdmin, self).get_datagrid_columns() columns.insert(2, { 'name': 'info', 'label': _('Info'), 'sortable': False, 'formatter': """function(value,obj) { return value; }""", }) return columns def get_datagrid_context(self, request): return { 'add_url': reverse('vm_add'), } site.register(models.Device, DeviceFAdmin) site.register(models.VM, VMFAdmin)
} } return actions def get_confirm_message(self, action, **kwargs): if (hasattr(notifier, 'failover_status') and notifier().failover_status() == 'MASTER'): return _('This change will cause a failover event. ' 'Do you want to proceed?') else: return _('Network connectivity will be interrupted. ' 'Do you want to proceed?') class LAGGInterfaceMembersFAdmin(BaseFreeAdmin): icon_object = u"LAGGIcon" icon_model = u"LAGGIcon" resource_mixin = LAGGInterfaceMembersResourceMixin def get_datagrid_filters(self, request): return { "lagg_interfacegroup__id": request.GET.get("id"), } site.register(models.GlobalConfiguration, GlobalConfigurationFAdmin) site.register(models.Interfaces, InterfacesFAdmin) site.register(models.LAGGInterface, LAGGInterfaceFAdmin) site.register(models.LAGGInterfaceMembers, LAGGInterfaceMembersFAdmin)
icon_view = "ViewAllExtentsIcon" nav_extra = {'order': 15} resource_mixin = ISCSITargetExtentResourceMixin exclude_fields = ( 'id', 'iscsi_target_extent_filesize', 'iscsi_target_extent_naa', 'iscsi_target_extent_legacy', ) class NFSFAdmin(BaseFreeAdmin): resource_mixin = NFSResourceMixin deletable = False icon_model = 'NFSIcon' site.register(models.FibreChannelToTarget, FibreChannelToTargetFAdmin) site.register(models.FTP, FTPFAdmin) site.register(models.iSCSITarget, ISCSITargetFAdmin) site.register(models.iSCSITargetGroups, ISCSITargetGroupsFAdmin) site.register(models.iSCSITargetPortal, ISCSIPortalFAdmin) site.register(models.iSCSITargetAuthCredential, ISCSIAuthCredentialFAdmin) site.register(models.iSCSITargetToExtent, ISCSITargetToExtentFAdmin) site.register(models.iSCSITargetExtent, ISCSITargetExtentFAdmin) site.register(models.NFS, NFSFAdmin) site.register(models.services, ServicesFAdmin)
'field': '_install_url', } def get_actions(self): actions = OrderedDict() actions["Install"] = { 'button_name': _("Install"), 'on_click': """function() { var mybtn = this; for (var i in grid.selection) { var data = grid.row(i).data; editObject('%s', data._install_url, [mybtn,]); } }""" % (escapejs(_('Install plugin')), ), } return actions def get_column_name_extra(self): return { 'formatter': """function(value, obj) { return '<img src="/plugins/plugin/available/icon/' + obj['id'] + '/" height="16" width="16"/> ' + value; }""" } site.register(models.Plugins, PluginsFAdmin) site.register(models.Available, AvailableFAdmin)
class NFSShareFAdmin(BaseFreeAdmin): icon_model = u"UNIXShareIcon" icon_add = u"AddUNIXShareIcon" icon_view = u"ViewAllUNIXSharesIcon" icon_object = u"UNIXShareIcon" inlines = [ { 'form': 'NFS_SharePathForm', 'prefix': 'path_set' }, ] resource = NFSShareResource exclude_fields = ( 'id', ) def get_datagrid_columns(self): columns = super(NFSShareFAdmin, self).get_datagrid_columns() columns.insert(0, { 'name': 'nfs_paths', 'label': _('Paths'), 'sortable': False, }) return columns site.register(models.NFS_Share, NFSShareFAdmin)