Пример #1
0
    def save_form_parts(self, form):
        is_new = (not self.object.pk)
        form_parts = self.get_form_parts(self.object)
        for form_part in form_parts:
            retval = form_part.form_valid(form)

            if retval is not None:  # Allow a form part to change the identity of the object
                self.object = retval
                for form_part in form_parts:
                    form_part.object = self.object
        if is_new:
            object_created.send(sender=type(self.object), object=self.object)
        add_create_or_change_message(self.request, self.object, is_new)

        if self.request.GET.get(
                "redirect") and not self.request.POST.get("__next"):
            return HttpResponseRedirect(self.request.GET.get("redirect"))

        if hasattr(self, "get_success_url"):
            return HttpResponseRedirect(self.get_success_url())

        if is_new:
            return HttpResponseRedirect(get_model_url(self.object))
        else:
            return HttpResponseRedirect(self.request.path)
Пример #2
0
    def form_valid(self, form):
        # This implementation is an amalgamation of
        # * django.views.generic.edit.ModelFormMixin#form_valid
        # * django.views.generic.edit.FormMixin#form_valid

        # trigger signal for extra form validations
        try:
            view_form_valid.send(sender=type(self),
                                 view=self,
                                 form=form,
                                 request=self.request)
        except ValidationError:
            return self.form_invalid(form)

        is_new = (not self.object.pk)
        self.save_form(form)
        if is_new:
            object_created.send(sender=type(self.object),
                                object=self.object,
                                request=self.request)

        object_saved.send(sender=type(self.object),
                          object=self.object,
                          request=self.request)
        self._add_create_or_change_message(self.request,
                                           self.object,
                                           is_new=is_new)
        return HttpResponseRedirect(self.get_success_url())
Пример #3
0
    def _handle_finalize(self, request):
        state = json.loads(self.get_request_body(request))["state"]
        self.object = self.get_object()
        if self.object.pk:  # Edit
            order = update_order_from_state(state,
                                            self.object,
                                            modified_by=request.user)
            assert self.object.pk == order.pk
            messages.success(request,
                             _("Order %(identifier)s updated.") % vars(order))
        else:  # Create
            order = create_order_from_state(
                state,
                creator=request.user,
                ip_address=request.META.get("REMOTE_ADDR"),
            )
            object_created.send(sender=Order, object=order, request=request)
            messages.success(request,
                             _("Order %(identifier)s created.") % vars(order))

        object_saved.send(sender=Order, object=order, request=request)
        return JsonResponse({
            "success":
            True,
            "orderIdentifier":
            order.identifier,
            "url":
            reverse("shuup_admin:order.detail", kwargs={"pk": order.pk})
        })
Пример #4
0
    def save_form_parts(self, form):
        # trigger signal for extra form validations
        try:
            view_form_valid.send(sender=type(self), view=self, form=form, request=self.request)
        except ValidationError:
            return self.form_invalid(form)

        is_new = (not self.object.pk)
        form_parts = self.get_form_parts(self.object)
        for form_part in form_parts:
            retval = form_part.form_valid(form)

            if retval is not None:  # Allow a form part to change the identity of the object
                self.object = retval
                for form_part in form_parts:
                    form_part.object = self.object
        if is_new:
            object_created.send(sender=type(self.object), object=self.object, request=self.request)

        object_saved.send(sender=type(self.object), object=self.object, request=self.request)
        self._add_create_or_change_message(self.request, self.object, is_new)

        if self.request.GET.get("redirect") and not self.request.POST.get("__next"):
            return HttpResponseRedirect(self.request.GET.get("redirect"))

        if hasattr(self, "get_success_url"):
            return HttpResponseRedirect(self.get_success_url())

        if is_new:
            return HttpResponseRedirect(get_model_url(self.object, shop=self.request.shop))
        else:
            return HttpResponseRedirect(self.request.path)
Пример #5
0
    def save_form_parts(self, form):
        is_new = (not self.object.pk)
        form_parts = self.get_form_parts(self.object)
        for form_part in form_parts:
            retval = form_part.form_valid(form)

            if retval is not None:  # Allow a form part to change the identity of the object
                self.object = retval
                for form_part in form_parts:
                    form_part.object = self.object
        if is_new:
            object_created.send(sender=type(self.object), object=self.object)

        self._add_create_or_change_message(self.request, self.object, is_new)

        if self.request.GET.get("redirect") and not self.request.POST.get("__next"):
            return HttpResponseRedirect(self.request.GET.get("redirect"))

        if hasattr(self, "get_success_url"):
            return HttpResponseRedirect(self.get_success_url())

        if is_new:
            return HttpResponseRedirect(get_model_url(self.object, shop=self.request.shop))
        else:
            return HttpResponseRedirect(self.request.path)
Пример #6
0
 def form_valid(self, form):
     # This implementation is an amalgamation of
     # * django.views.generic.edit.ModelFormMixin#form_valid
     # * django.views.generic.edit.FormMixin#form_valid
     is_new = (not self.object.pk)
     self.save_form(form)
     if is_new:
         object_created.send(sender=type(self.object), object=self.object)
     add_create_or_change_message(self.request, self.object, is_new=is_new)
     return HttpResponseRedirect(self.get_success_url())
Пример #7
0
 def form_valid(self, form):
     # This implementation is an amalgamation of
     # * django.views.generic.edit.ModelFormMixin#form_valid
     # * django.views.generic.edit.FormMixin#form_valid
     is_new = (not self.object.pk)
     self.save_form(form)
     if is_new:
         object_created.send(sender=type(self.object), object=self.object)
     add_create_or_change_message(self.request, self.object, is_new=is_new)
     return HttpResponseRedirect(self.get_success_url())
Пример #8
0
 def _handle_finalize(self, request):
     state = json.loads(request.body.decode("utf-8"))["state"]
     self.object = self.get_object()
     if self.object.pk:  # Edit
         order = update_order_from_state(
             state,
             self.object,
             modified_by=request.user
         )
         assert self.object.pk == order.pk
         messages.success(request, _("Order %(identifier)s updated.") % vars(order))
     else:  # Create
         order = create_order_from_state(
             state,
             creator=request.user,
             ip_address=request.META.get("REMOTE_ADDR"),
         )
         object_created.send(sender=Order, object=order)
         messages.success(request, _("Order %(identifier)s created.") % vars(order))
     return JsonResponse({
         "success": True,
         "orderIdentifier": order.identifier,
         "url": reverse("shuup_admin:order.detail", kwargs={"pk": order.pk})
     })