示例#1
0
    def set_status(self, new_status):
        """
        Set a new status for this order.

        If the requested status is not valid, then ``InvalidOrderStatus`` is
        raised.
        """
        if new_status == self.status:
            return

        old_status = self.status

        if new_status not in self.available_statuses():
            raise exceptions.InvalidOrderStatus(
                _("'%(new_status)s' is not a valid status for order %(number)s"
                  " (current status: '%(status)s')")
                % {'new_status': new_status,
                   'number': self.number,
                   'status': self.status})
        self.status = new_status
        if new_status in self.cascade:
            for line in self.lines.all():
                line.status = self.cascade[self.status]
                line.save()
        self.save()

        # Send signal for handling status changed
        order_status_changed.send(sender=self,
                                  order=self,
                                  old_status=old_status,
                                  new_status=new_status,
                                  )
示例#2
0
    def set_status(self, new_status):
        """
        Set a new status for this order.

        If the requested status is not valid, then ``InvalidOrderStatus`` is
        raised.
        """
        if new_status == self.status:
            return

        old_status = self.status

        if new_status not in self.available_statuses():
            raise exceptions.InvalidOrderStatus(
                _("'%(new_status)s' is not a valid status for order %(number)s"
                  " (current status: '%(status)s')") % {
                      'new_status': new_status,
                      'number': self.number,
                      'status': self.status
                  })
        self.status = new_status
        if new_status in self.cascade:
            for line in self.lines.all():
                line.status = self.cascade[self.status]
                line.save()
        self.save()

        # Send signal for handling status changed
        order_status_changed.send(
            sender=self,
            order=self,
            old_status=old_status,
            new_status=new_status,
        )
示例#3
0
 def set_status(self, new_status):
     old_status = self.status
     if new_status == self.status:
         return
     if new_status not in self.available_statuses():
         raise InvalidOrderStatus(
             "'%s' is not a valid status for order %s (currency status: '%s')"
             % (new_status, self.number, self.status)
         )
     self.status = new_status
     if new_status in self.cascade:
         for line in self.lines.all():
             line.status = self.cascade[self.status]
             line.save()
     self.save()
     order_status_changed.send(sender=self, order=self, user=self.user, old_status=old_status)