Commit 5eaa9a2f authored by Maël Kervella's avatar Maël Kervella

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
parent 52a35e52
......@@ -541,8 +541,7 @@ class Extension(RevMixin, AclMixin, models.Model):
)
soa = models.ForeignKey(
'SOA',
on_delete=models.CASCADE,
default=SOA.new_default_soa
on_delete=models.CASCADE
)
class Meta:
......
......@@ -24,6 +24,7 @@ A set of mixins used all over the project to avoid duplicating code
"""
from reversion import revisions as reversion
from django.db import transaction
class RevMixin(object):
......@@ -33,13 +34,16 @@ class RevMixin(object):
def save(self, *args, **kwargs):
""" Creates a version of this object and save it to database """
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)
def delete(self, *args, **kwargs):
""" Creates a version of this object and delete it from database """
reversion.set_comment("Suppresion")
return super(RevMixin, self).delete(*args, **kwargs)
with transaction.atomic(), reversion.create_revision():
reversion.set_comment("Suppresion")
return super(RevMixin, self).delete(*args, **kwargs)
class FormRevMixin(object):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment