Ejemplo n.º 1
0
    def delete(self, request, oid, mf=None):
        from freenasUI.freeadmin.navtree import navtree
        from freenasUI.freeadmin.views import JsonResp
        from freenasUI.freeadmin.utils import get_related_objects

        m = self._model
        instance = get_object_or_404(m, pk=oid)

        try:
            _temp = __import__('%s.forms' % m._meta.app_label, globals(),
                               locals(), [m._admin.delete_form], 0)
            form = getattr(_temp, m._admin.delete_form)
        except:
            form = None

        if not isinstance(navtree._modelforms[m], dict):
            mf = navtree._modelforms[m]
        else:
            if mf is None:
                try:
                    mf = navtree._modelforms[m][m._admin.edit_modelform]
                except:
                    mf = list(navtree._modelforms[m].values())[-1]
            else:
                mf = navtree._modelforms[m][mf]

        related, related_num = get_related_objects(instance)
        context = {
            'app': m._meta.app_label,
            'model': m._meta.model_name,
            'oid': oid,
            'object': instance,
            'model_name': m._meta.model_name,
            'verbose_name': instance._meta.verbose_name,
            'related': related,
            'related_num': related_num,
        }

        form_i = None
        mf = mf(data=request.POST, instance=instance)
        if request.method == "POST":
            if form:
                form_i = form(request.POST, instance=instance)
                if form_i.is_valid():
                    if '__confirm' not in request.POST:
                        message = self.get_confirm_message(
                            'delete',
                            obj=instance,
                            form=form_i,
                        )
                        if message:
                            return JsonResp(
                                request,
                                confirm=self.confirm(message),
                            )
                    events = []
                    if hasattr(form_i, "done"):
                        form_i.done(events=events)
                    mf.delete(events=events)
                    return JsonResp(request,
                                    message=_("%s successfully deleted.") %
                                    (m._meta.verbose_name, ),
                                    events=events)

            else:
                if '__confirm' not in request.POST:
                    message = self.get_confirm_message(
                        'delete',
                        obj=instance,
                        form=form_i,
                    )
                    if message:
                        return JsonResp(
                            request,
                            confirm=self.confirm(message),
                        )
                events = []
                mf.delete(events=events)
                return JsonResp(request,
                                message=_("%s successfully deleted.") %
                                (m._meta.verbose_name, ),
                                events=events)
        if form and form_i is None:
            form_i = form(instance=instance)
        if form:
            context.update({'form': form_i})

        template = "%s/%s_delete.html" % (
            m._meta.app_label,
            m._meta.object_name.lower(),
        )
        try:
            get_template(template)
        except TemplateDoesNotExist:
            template = 'freeadmin/generic_model_delete.html'

        return render(request, template, context)
Ejemplo n.º 2
0
    def delete(self, request, oid, mf=None):
        from freenasUI.freeadmin.navtree import navtree
        from freenasUI.freeadmin.views import JsonResp
        from freenasUI.freeadmin.utils import get_related_objects

        m = self._model
        instance = get_object_or_404(m, pk=oid)

        try:
            if m._admin.delete_form_filter:
                find = m.objects.filter(
                    id=instance.id,
                    **m._admin.delete_form_filter)
                if find.count() == 0:
                    raise
            _temp = __import__(
                '%s.forms' % m._meta.app_label,
                globals(),
                locals(),
                [m._admin.delete_form],
                -1)
            form = getattr(_temp, m._admin.delete_form)
        except:
            form = None

        if not isinstance(navtree._modelforms[m], dict):
            mf = navtree._modelforms[m]
        else:
            if mf is None:
                try:
                    mf = navtree._modelforms[m][m.FreeAdmin.edit_modelform]
                except:
                    mf = navtree._modelforms[m].values()[-1]
            else:
                mf = navtree._modelforms[m][mf]

        related, related_num = get_related_objects(instance)
        context = {
            'app': m._meta.app_label,
            'model': m._meta.module_name,
            'oid': oid,
            'object': instance,
            'verbose_name': instance._meta.verbose_name,
            'related': related,
            'related_num': related_num,
        }

        form_i = None
        mf = mf(instance=instance)
        if request.method == "POST":
            if form:
                form_i = form(request.POST, instance=instance)
                if form_i.is_valid():
                    events = []
                    if hasattr(form_i, "done"):
                        form_i.done(events=events)
                    mf.delete(events=events)
                    return JsonResp(
                        request,
                        message=_("%s successfully deleted.") % (
                            m._meta.verbose_name,
                        ),
                        events=events)

            else:
                events = []
                mf.delete(events=events)
                return JsonResp(
                    request,
                    message=_("%s successfully deleted.") % (
                        m._meta.verbose_name,
                    ),
                    events=events)
        if form and form_i is None:
            form_i = form(instance=instance)
        if form:
            context.update({'form': form_i})

        template = "%s/%s_delete.html" % (
            m._meta.app_label,
            m._meta.object_name.lower(),
        )
        try:
            get_template(template)
        except TemplateDoesNotExist:
            template = 'freeadmin/generic_model_delete.html'

        return render(request, template, context)
Ejemplo n.º 3
0
    def delete(self, request, oid, mf=None):
        from freenasUI.freeadmin.navtree import navtree
        from freenasUI.freeadmin.views import JsonResp
        from freenasUI.freeadmin.utils import get_related_objects

        m = self._model
        instance = get_object_or_404(m, pk=oid)

        try:
            _temp = __import__("%s.forms" % m._meta.app_label, globals(), locals(), [m._admin.delete_form], -1)
            form = getattr(_temp, m._admin.delete_form)
        except:
            form = None

        if not isinstance(navtree._modelforms[m], dict):
            mf = navtree._modelforms[m]
        else:
            if mf is None:
                try:
                    mf = navtree._modelforms[m][m._admin.edit_modelform]
                except:
                    mf = navtree._modelforms[m].values()[-1]
            else:
                mf = navtree._modelforms[m][mf]

        related, related_num = get_related_objects(instance)
        context = {
            "app": m._meta.app_label,
            "model": m._meta.model_name,
            "oid": oid,
            "object": instance,
            "model_name": m._meta.model_name,
            "verbose_name": instance._meta.verbose_name,
            "related": related,
            "related_num": related_num,
        }

        form_i = None
        mf = mf(data=request.POST, instance=instance)
        if request.method == "POST":
            if form:
                form_i = form(request.POST, instance=instance)
                if form_i.is_valid():
                    if "__confirm" not in request.POST:
                        message = self.get_confirm_message("delete", obj=instance, form=form_i)
                        if message:
                            return JsonResp(request, confirm=self.confirm(message))
                    events = []
                    if hasattr(form_i, "done"):
                        form_i.done(events=events)
                    mf.delete(events=events)
                    return JsonResp(
                        request, message=_("%s successfully deleted.") % (m._meta.verbose_name,), events=events
                    )

            else:
                if "__confirm" not in request.POST:
                    message = self.get_confirm_message("delete", obj=instance, form=form_i)
                    if message:
                        return JsonResp(request, confirm=self.confirm(message))
                events = []
                mf.delete(events=events)
                return JsonResp(request, message=_("%s successfully deleted.") % (m._meta.verbose_name,), events=events)
        if form and form_i is None:
            form_i = form(instance=instance)
        if form:
            context.update({"form": form_i})

        template = "%s/%s_delete.html" % (m._meta.app_label, m._meta.object_name.lower())
        try:
            get_template(template)
        except TemplateDoesNotExist:
            template = "freeadmin/generic_model_delete.html"

        return render(request, template, context)