def get_urls(self): """ If no resource has been set lets automatically create a REST tastypie model resource The name defaults to the django model name (lowercase) Set resource to False to do not create one """ from freenasUI.api.utils import ( APIAuthentication, APIAuthorization, DojoModelResource, DojoPaginator ) from freenasUI.freeadmin.navtree import navtree if self.resource is None and self._model: if self.resource_name is not None: resource_name=self.resource_name else: resource_name='%s/%s' % ( self.app_label, self.module_name, ) myArgs = dict( queryset=self._model.objects.all(), resource_name=resource_name, include_resource_uri=False, always_return_data=True, paginator_class=DojoPaginator, authentication=APIAuthentication, authorization=APIAuthorization(), ) mf = navtree._modelforms.get(self._model, None) if mf and not isinstance(mf, dict): myArgs['validation'] = FormValidation(form_class=mf) """ For models that represent a single object do not allow create neither delete, only get and update. """ if self._model._admin.deletable is False: myArgs['allowed_methods'] = ['get', 'put'] myMeta = type('Meta', (object, ), myArgs) mixins = [DojoModelResource] if self.resource_mixin is not None: mixins.insert(0, self.resource_mixin) if hasattr(self.resource_mixin, 'Meta'): myMeta = type( 'Meta', (self.resource_mixin.Meta, myMeta), {} ) myres = type( self._model._meta.object_name + 'Resource', tuple(mixins), dict(Meta=myMeta) ) res = myres() self.resource = myres elif self.resource is False or not self.resource: res = None elif self.resource: res = self.resource() if res: v1_api.register(res) def wrap(view): def wrapper(*args, **kwargs): return self._admin.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) info = self.app_label, self.module_name if self._model: urlpatterns = patterns( '', url(r'^add/(?P<mf>.+?)?$', wrap(self.add), name='freeadmin_%s_%s_add' % info), url(r'^edit/(?P<oid>\d+)/(?P<mf>.+?)?$', wrap(self.edit), name='freeadmin_%s_%s_edit' % info), url(r'^delete/(?P<oid>\d+)/$', wrap(self.delete), name='freeadmin_%s_%s_delete' % info), url(r'^empty-formset/$', wrap(self.empty_formset), name='freeadmin_%s_%s_empty_formset' % info), ) else: urlpatterns = patterns('') urlpatterns += patterns( '', url(r'^datagrid/$', wrap(self.datagrid), name='freeadmin_%s_%s_datagrid' % info), url(r'^structure/$', wrap(self.structure), name='freeadmin_%s_%s_structure' % info), url(r'^actions/$', wrap(self.actions), name='freeadmin_%s_%s_actions' % info), ) return urlpatterns
def get_urls(self): """ If no resource has been set lets automatically create a REST tastypie model resource The name defaults to the django model name (lowercase) Set resource to False to do not create one """ from freenasUI.api.utils import (APIAuthentication, APIAuthorization, DojoModelResource, DojoPaginator) from freenasUI.freeadmin.navtree import navtree if self.resource is None and self._model: if self.resource_name is not None: resource_name = self.resource_name else: resource_name = '%s/%s' % ( self.app_label, self.module_name, ) myArgs = dict( queryset=self._model.objects.all(), resource_name=resource_name, include_resource_uri=False, always_return_data=True, paginator_class=DojoPaginator, authentication=APIAuthentication, authorization=APIAuthorization(), ) mf = navtree._modelforms.get(self._model, None) if mf: if isinstance(mf, dict): for v in mf.values(): if getattr(v, "freeadmin_form", False): myArgs['validation'] = FormValidation(form_class=v) break else: myArgs['validation'] = FormValidation(form_class=mf) """ For models that represent a single object do not allow create neither delete, only get and update. """ if self._model._admin.deletable is False: myArgs['allowed_methods'] = ['get', 'put'] myMeta = type('Meta', (object, ), myArgs) mixins = [DojoModelResource] if self.resource_mixin is not None: mixins.insert(0, self.resource_mixin) if hasattr(self.resource_mixin, 'Meta'): myMeta = type('Meta', (self.resource_mixin.Meta, myMeta), {}) myres = type(self._model._meta.object_name + 'Resource', tuple(mixins), dict(Meta=myMeta)) res = myres() self.resource = myres elif self.resource is False or not self.resource: res = None elif self.resource: res = self.resource() if res: v1_api.register(res) def wrap(view): def wrapper(*args, **kwargs): return self._admin.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) info = self.app_label, self.module_name if self._model: urlpatterns = [ url(r'^add/(?P<mf>.+?)?$', wrap(self.add), name='freeadmin_%s_%s_add' % info), url(r'^edit/(?P<oid>.+)/(?P<mf>.+?)?$', wrap(self.edit), name='freeadmin_%s_%s_edit' % info), url(r'^delete/(?P<oid>.+)/$', wrap(self.delete), name='freeadmin_%s_%s_delete' % info), url(r'^empty-formset/$', wrap(self.empty_formset), name='freeadmin_%s_%s_empty_formset' % info), ] else: urlpatterns = [] urlpatterns += [ url(r'^datagrid/$', wrap(self.datagrid), name='freeadmin_%s_%s_datagrid' % info), url(r'^structure/$', wrap(self.structure), name='freeadmin_%s_%s_structure' % info), url(r'^actions/$', wrap(self.actions), name='freeadmin_%s_%s_actions' % info), ] return urlpatterns
JsonGroupResource, PermissionResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, VolumeImportResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(BootEnvResource()) v1_api.register(DatasetResource()) v1_api.register(DebugResource()) v1_api.register(ConfigFactoryRestoreResource()) v1_api.register(FCPortsResource()) v1_api.register(JsonUserResource()) v1_api.register(JsonGroupResource()) v1_api.register(PermissionResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) v1_api.register(VolumeImportResource()) navtree.prepare_modelforms()
from freenasUI import freeadmin from freenasUI.api import v1_api from freenasUI.api.resources import ( AlertResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n') urlpatterns = patterns('', url('^$', site.adminInterface, name="index"), (r'^static/(?P<path>.*)', public(serve), {'document_root': os.path.join(settings.HERE, "freeadmin/static")}),
BootEnvResource, FCPortsResource, PermissionResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(BootEnvResource()) v1_api.register(FCPortsResource()) v1_api.register(PermissionResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n') urlpatterns = patterns( '',
ConfigFactoryRestoreResource, FCPortsResource, PermissionResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(BootEnvResource()) v1_api.register(DebugResource()) v1_api.register(ConfigFactoryRestoreResource()) v1_api.register(FCPortsResource()) v1_api.register(PermissionResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n')
FCPortsResource, PermissionResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, VolumeImportResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(BootEnvResource()) v1_api.register(DebugResource()) v1_api.register(ConfigFactoryRestoreResource()) v1_api.register(FCPortsResource()) v1_api.register(PermissionResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) v1_api.register(VolumeImportResource()) navtree.prepare_modelforms() freeadmin.autodiscover() urlpatterns = [
BootEnvResource, FCPortsResource, PermissionResource, RebootResource, ShutdownResource, SnapshotResource, VersionResource, ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AlertResource()) v1_api.register(BootEnvResource()) v1_api.register(FCPortsResource()) v1_api.register(PermissionResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) v1_api.register(VersionResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n') urlpatterns = patterns('', url('^$', site.adminInterface, name="index"),
from django.conf import settings from django.template.loader import add_to_builtins from freenasUI import freeadmin from freenasUI.api import v1_api from freenasUI.api.resources import (AdminPasswordResource, AdminUserResource, RebootResource, ShutdownResource, SnapshotResource) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AdminPasswordResource()) v1_api.register(AdminUserResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n') urlpatterns = patterns( '', url('^$', site.adminInterface, name="index"), (r'^static/(?P<path>.*)', public(serve), { 'document_root': os.path.join(settings.HERE, "freeadmin/static")
from freenasUI import freeadmin from freenasUI.api import v1_api from freenasUI.api.resources import ( AdminPasswordResource, AdminUserResource, AlertResource, RebootResource, ShutdownResource, SnapshotResource ) from freenasUI.freeadmin.site import site from freenasUI.freeadmin.middleware import public from freenasUI.freeadmin.navtree import navtree handler500 = 'freenasUI.freeadmin.views.server_error' handler404 = 'freenasUI.freeadmin.views.page_not_found' v1_api.register(AdminPasswordResource()) v1_api.register(AdminUserResource()) v1_api.register(AlertResource()) v1_api.register(RebootResource()) v1_api.register(ShutdownResource()) v1_api.register(SnapshotResource()) navtree.prepare_modelforms() freeadmin.autodiscover() add_to_builtins('django.templatetags.i18n') urlpatterns = patterns('', url('^$', site.adminInterface, name="index"), (r'^static/(?P<path>.*)', public(serve),