예제 #1
0
    def delete(self, request, *args, **kwargs):
        try:
            d = self.get_object()
            print("d:", d)
            deps, msg = get_dep_objects(d)
            if deps:
                messages.warning(
                    self.request,
                    _('Cannot delete %(name)s') % {
                        "name":
                        capfirst(force_text(self.model._meta.verbose_name)) +
                        ' "' + force_text(d) + '"'
                    })
                raise Exception(msg)

            d.delete()
            msg = _('The %(name)s "%(obj)s" was deleted successfully.') % {
                'name': capfirst(force_text(self.model._meta.verbose_name)),
                'obj': force_text(d)
            }
            if not d.id:
                messages.success(self.request, msg)
                log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)
예제 #2
0
 def form_valid(self, form):
     self.object = form.save(commit=True)
     msg = _('The %(name)s "%(obj)s" was added successfully.') % {
         'name': capfirst(force_text(self.model._meta.verbose_name)),
         'obj': force_text(self.object)
     }
     if self.object.id:
         messages.success(self.request, msg)
         log.warning(msg, extra=log_params(self.request))
     return super(MenuCreateView, self).form_valid(form)
예제 #3
0
 def dispatch(self, request, *args, **kwargs):
     pk = self.kwargs['pk']
     if not pk:
         return HttpResponseRedirect(self.success_url)
     self.kwargs['pk'] = pk
     try:
         self.get_object()
     except Exception as e:
         messages.error(self.request, e)
         log.warning(force_text(e), extra=log_params(self.request))
         return HttpResponseRedirect(self.success_url)
     return super(MenuDeleteView, self).dispatch(request, *args, **kwargs)
예제 #4
0
    def dispatch(self, request, *args, **kwargs):
        state = self.kwargs['state']
        pk = self.kwargs['pk']
        if not pk:
            return HttpResponseRedirect(self.success_url)
        try:
            self.object = self.model.objects.get(pk=pk)
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
            return HttpResponseRedirect(self.success_url)

        msg = _('The %(name)s "%(obj)s" was %(action)s successfully.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action':
            (_('reactivated') if state == 'rea' else _('inactivated'))
        }
        mse = _('The %(name)s "%(obj)s" is already %(action)s.') % {
            'name': capfirst(force_text(self.model._meta.verbose_name)),
            'obj': force_text(self.object),
            'action': (_('active') if state == 'rea' else _('inactive'))
        }
        try:
            if state == 'ina' and not self.object.is_active:
                raise Exception(mse)
            else:
                if state == 'rea' and self.object.is_active:
                    raise Exception(mse)
                else:
                    self.object.is_active = (True if state == 'rea' else False)
                    self.object.save()
                    messages.success(self.request, msg)
                    log.warning(msg, extra=log_params(self.request))
        except Exception as e:
            messages.error(self.request, e)
            log.warning(force_text(e), extra=log_params(self.request))
        return HttpResponseRedirect(self.success_url)