Browse Source

Fix #116: Remove default SOA in Extension & Force reversion context

- The default for extension SOA is now None, else a new SOA named `SOA
to edit` was created when adding a new extension (because of the
get_or_create() )
- The mixins are now inside a reversion context else sometimes the
reversion context was not set and re2o would crash on the set_comment
fix_force_demenagement
Maël Kervella 8 years ago
parent
commit
5eaa9a2feb
  1. 3
      machines/models.py
  2. 10
      re2o/mixins.py

3
machines/models.py

@ -541,8 +541,7 @@ class Extension(RevMixin, AclMixin, models.Model):
) )
soa = models.ForeignKey( soa = models.ForeignKey(
'SOA', 'SOA',
on_delete=models.CASCADE, on_delete=models.CASCADE
default=SOA.new_default_soa
) )
class Meta: class Meta:

10
re2o/mixins.py

@ -24,6 +24,7 @@ A set of mixins used all over the project to avoid duplicating code
""" """
from reversion import revisions as reversion from reversion import revisions as reversion
from django.db import transaction
class RevMixin(object): class RevMixin(object):
@ -33,13 +34,16 @@ class RevMixin(object):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
""" Creates a version of this object and save it to database """ """ Creates a version of this object and save it to database """
if self.pk is None: if self.pk is None:
reversion.set_comment("Création") with transaction.atomic(), reversion.create_revision():
reversion.set_comment("Création")
return super(RevMixin, self).save(*args, **kwargs)
return super(RevMixin, self).save(*args, **kwargs) return super(RevMixin, self).save(*args, **kwargs)
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
""" Creates a version of this object and delete it from database """ """ Creates a version of this object and delete it from database """
reversion.set_comment("Suppresion") with transaction.atomic(), reversion.create_revision():
return super(RevMixin, self).delete(*args, **kwargs) reversion.set_comment("Suppresion")
return super(RevMixin, self).delete(*args, **kwargs)
class FormRevMixin(object): class FormRevMixin(object):

Loading…
Cancel
Save