def validate_entry(self, entry):
        batch_number = unicode(entry.get_text())
        if not batch_number:
            return

        available = StorableBatch.is_batch_number_available(
            self.store, batch_number, exclude_storable=self.model)
        if (not available or
            batch_number in self._get_used_batches(exclude=batch_number)):
            return ValidationError(_("'%s' is already in use") % batch_number)
Example #2
0
    def validate_entry(self, entry):
        batch_number = str(entry.get_text())
        if not batch_number:
            return

        available = StorableBatch.is_batch_number_available(
            self.store, batch_number, exclude_storable=self.model)
        if (not available or
            batch_number in self._get_used_batches(exclude=batch_number)):
            return ValidationError(_("'%s' is already in use") % batch_number)
Example #3
0
    def test_is_batch_number_available(self):
        self.assertTrue(StorableBatch.is_batch_number_available(
            self.store, u'123'))
        self.assertTrue(StorableBatch.is_batch_number_available(
            self.store, u'321'))

        storable = self.create_storable(is_batch=True)
        self.create_storable_batch(storable=storable, batch_number=u'123')
        self.create_storable_batch(batch_number=u'321')

        # Should not be available anymore since they now exist
        self.assertFalse(StorableBatch.is_batch_number_available(
            self.store, u'123'))
        self.assertFalse(StorableBatch.is_batch_number_available(
            self.store, u'321'))

        # But when excluding storable, only u'123' should be available
        self.assertTrue(StorableBatch.is_batch_number_available(
            self.store, u'123', exclude_storable=storable))
        self.assertFalse(StorableBatch.is_batch_number_available(
            self.store, u'321', exclude_storable=storable))