def render_change_form(self, *args, **kwargs): request, context = args[:2] batch = context.get('original') attached_versions = [] if batch: context.update({ 'pushing': bool(batch.preflight), 'object': batch, }) else: context.update({'editable': True}) if batch: available_changes = [ item for item in utils.changed_items(batch.start_date, batch=batch) if item not in attached_versions ] else: available_changes = [ item for item in utils.changed_items(default_batch_start_date()) if item not in attached_versions ] context.update({'available_changes': available_changes}) return super(BatchAdmin, self).render_change_form(*args, **kwargs)
def test_batch_validation(self): batch1 = Batch(title="Best Batch Ever") batch1.save() batch2 = Batch(title="2nd Best Batch Ever") batch2.save() add_versions_to_batch(batch1, changed_items()) add_versions_to_batch(batch2, changed_items()) with self.assertRaises(BatchValidationError): batch1.is_valid(test_only=False)
def test_add_changes_to_batch(self): new_batch = Batch(title="Best Batch Ever") new_batch.save() add_versions_to_batch(new_batch, changed_items()) self.assertIn(self.new_author, [bi.version.object for bi in new_batch.batchitem_set.all()])
def test_batch_with_deletion(self): delete_with_reversion(self.new_author) add_versions_to_batch(self.batch, changed_items()) serialized = serialize_batch(self.key.decode('hex'), self.batch) with self.assertRaises(ObjectDoesNotExist): process_batch(self.key.decode('hex'), serialized['batch'], serialized['iv'])
def render_change_form(self, *args, **kwargs): request, context = args[:2] batch = context.get("original") attached_versions = [] if batch: context.update({"pushing": bool(batch.preflight), "object": batch}) else: context.update({"editable": True}) if batch: available_changes = [ item for item in utils.changed_items(batch.start_date, batch=batch) if item not in attached_versions ] else: available_changes = [ item for item in utils.changed_items(default_batch_start_date()) if item not in attached_versions ] context.update({"available_changes": available_changes}) return super(BatchAdmin, self).render_change_form(*args, **kwargs)
def test_identify_changes(self): self.assertIn(self.new_author, [version.object for version in changed_items()])
def test_batch_serialization_and_processing(self): add_versions_to_batch(self.batch, changed_items()) serialized = serialize_batch(self.key.decode('hex'), self.batch) process_batch(self.key.decode('hex'), serialized['batch'], serialized['iv'])
def collect_eligibles(batch): """Collects all changed items and adds them to supplied batch""" for e in changed_items(): e.batch = batch e.save()