def testDontSaveAutoInitialIgnoreDuplicatesOnAdd(self): with reversion.create_revision(): reversion.set_ignore_duplicates(True) reversion.set_auto_initial(True, [ReversionTestModel1]) self.test13.name = "model1 instance3 version2" self.test13.save() # Test that no revision at all is saved because it's a new object # and ignore duplicates is activated self.assertEqual(reversion.get_for_object(self.test13).count(), 0)
def testCanSaveAutoInitialIgnoreDuplicatesOnChange(self): self.assertEqual(reversion.get_for_object(self.test11).count(), 0) with reversion.create_revision(): reversion.set_ignore_duplicates(True) reversion.set_auto_initial(True, [ReversionTestModel1, ReversionTestModel2]) self.test11.name = "model1 instance1 version2" self.test11.save() self.test12.save() self.test21.save() self.test22.save() # Test that an initial is save because there's a data change and no previous revision self.assertEqual(reversion.get_for_object(self.test11).count(), 2)
def testCanSaveIgnoringDuplicates(self): with reversion.create_revision(): self.test11.save() self.test12.save() self.test21.save() self.test22.save() self.assertFalse(reversion.get_ignore_duplicates()) reversion.set_ignore_duplicates(True) self.assertTrue(reversion.get_ignore_duplicates()) self.assertEqual(reversion.get_for_object(self.test11).count(), 2) # Save a non-duplicate revision. with reversion.create_revision(): self.test11.save() self.assertFalse(reversion.get_ignore_duplicates()) reversion.set_ignore_duplicates(True) self.assertEqual(reversion.get_for_object(self.test11).count(), 3)
def testDontSaveAutoInitialIgnoreDuplicatesOnDelete(self): self.assertEqual(Version.objects.count(), 0) with reversion.create_revision(): self.test11.save() self.test12.save() self.test21.save() self.test22.save() self.assertEqual(reversion.get_for_object(self.test11).count(), 1) with reversion.create_revision(): reversion.set_ignore_duplicates(True) reversion.set_auto_initial(True, [ReversionTestModel1]) self.test11.delete() # Test that no initial is saved on delete versions = reversion.get_deleted(ReversionTestModel1) self.assertEqual(len(versions), 1) self.assertEqual(Version.objects.filter(type=VERSION_ADD).count(), 0) self.assertEqual(Version.objects.filter(type=VERSION_CHANGE).count(), 4) self.assertEqual(Version.objects.filter(type=VERSION_DELETE).count(), 1)
def testDontSaveAutoInitialIgnoreDuplicatesOnChange(self): self.assertEqual(reversion.get_for_object(self.test11).count(), 0) with reversion.create_revision(): reversion.set_ignore_duplicates(True) reversion.set_auto_initial(True, [ReversionTestModel1, ReversionTestModel2]) self.test11.save() self.test12.save() self.test21.save() self.test22.save() # Test that no revision at all is saved because there's no data change # and ignore duplicates is activated self.assertEqual(reversion.get_for_object(self.test11).count(), 0) with reversion.create_revision(): reversion.set_ignore_duplicates(True) reversion.set_auto_initial(True, [ReversionTestModel1]) self.test11.name = "model1 instance1 version3" self.test11.save() # Test that initial and normal revision are saved because there's data change self.assertEqual(reversion.get_for_object(self.test11).count(), 2)
def save(self, *args, **kwargs): with create_revision(): set_ignore_duplicates(True) concepto = False primer_tecnico = False if not self.pk: try: self.folio = Orden.objects.all().order_by('-folio')[0].folio + 1 except: self.folio = 10100# if self.servicio == 'Icon' and self.concepto == 'Armado': concepto = Concepto() concepto.nombre = '**Orden de armado' concepto.cantidad = 333.5 concepto.usuario = self.operador elif self.servicio == 'Icon' and self.concepto == 'Revision': concepto = Concepto() concepto.nombre = '**Icon revision' concepto.cantidad = 609 concepto.usuario = self.operador elif self.servicio == 'Icon' and self.concepto == 'OrdenesIcon': concepto = Concepto() concepto.nombre = '**Orden Icon' concepto.cantidad = 609 concepto.usuario = self.operador elif self.servicio == 'Icon' and self.concepto == 'Mantenimiento': concepto = Concepto() concepto.nombre = '**Icon mantenimiento' concepto.cantidad = 609 concepto.usuario = self.operador elif self.servicio == 'Icon' and self.concepto == 'Servicio': concepto = Concepto() concepto.nombre = '**Icon servicio' concepto.cantidad = 609 concepto.usuario = self.operador# primer_tecnico = Tecnico_orden() primer_tecnico.tecnico = self.tecnico primer_tecnico.usuario = self.operador# else: orig = Orden.objects.get(id=self.id) if orig.tecnico != self.tecnico: tecnico_orden = Tecnico_orden() tecnico_orden.tecnico = self.tecnico tecnico_orden.usuario = self.operador tecnico_orden.orden = self tecnico_orden.save(concepto_nombre='**Cambio de tecnico ('+orig.tecnico.username+' a '+self.tecnico.username+')') fail_silently = True c = Context({ 'tecnico': self.tecnico.username, 'folio': str(self.folio), 'link': reverse( 'editar_orden', args=[self.folio]), 'dominio': DOMINIO, }) html_content = get_template('email/mail_nueva_orden.html').render(c) plaintext = get_template('email/mail_nueva_orden.txt').render(c) msg = EmailMultiAlternatives( subject="Nueva orden asignada", body=plaintext, from_email=DEFAULT_FROM_EMAIL, to= (self.tecnico.email,), ) msg.attach_alternative(html_content, "text/html") msg.send(fail_silently) super(Orden, self).save(*args, **kwargs)# if concepto: concepto.orden = self corte = Corte() concepto.corte = corte.asignar() concepto.save()# if primer_tecnico: primer_tecnico.orden = self primer_tecnico.save(concepto_nombre='**Nuevo tecnico (' + self.tecnico.username +')')