Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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()
Пример #4
0
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")}),
Пример #5
0
    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(
    '',
Пример #6
0
    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')
Пример #7
0
    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 = [
Пример #8
0
    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"),
Пример #9
0
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")
Пример #10
0
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),