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)
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)
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)