def set_status(self, new_status):
        """
        Set a new status for this line

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

        old_status = self.status

        if new_status not in self.available_statuses():
            raise exceptions.InvalidLineStatus(
                _("'%(new_status)s' is not a valid status (current status:"
                  " '%(status)s')") % {
                      'new_status': new_status,
                      'status': self.status
                  })
        self.status = new_status
        self.save()

        # Send signal for handling status changed
        order_line_status_changed.send(
            sender=self,
            line=self,
            old_status=old_status,
            new_status=new_status,
        )
    def set_status(self, new_status):
        """
        Set a new status for this line

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

        old_status = self.status

        if new_status not in self.available_statuses():
            raise exceptions.InvalidLineStatus(
                _("'%(new_status)s' is not a valid status (current status:"
                  " '%(status)s')")
                % {'new_status': new_status, 'status': self.status})
        self.status = new_status
        self.save()

        # Send signal for handling status changed
        order_line_status_changed.send(sender=self,
                                       line=self,
                                       old_status=old_status,
                                       new_status=new_status,
                                       )