mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
Fix for changes in modern django-reversion
We have to upgrade django-reversion to 1.8 due to upgrading Django, but unfortunately in that same version the author has removed the type field on Version model, without a particularly good explanation as to why. This is really annoying as we were using it to provide a reasonable audit including for deletes. I suspect we'll need to move away from django-reversion and do our own thing in future, but for now at least allow the layer index to keep working. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
82c632ca2d
commit
2227102973
|
@ -630,29 +630,30 @@ def annotate_revision(sender, **kwargs):
|
||||||
for ver, inst in zip(versions, instances):
|
for ver, inst in zip(versions, instances):
|
||||||
currentVersion = ver.field_dict
|
currentVersion = ver.field_dict
|
||||||
modelmeta = ver.content_type.model_class()._meta
|
modelmeta = ver.content_type.model_class()._meta
|
||||||
if ver.type == reversion.models.VERSION_DELETE:
|
#FIXME modern django-reversion dropped the type field (argh!)
|
||||||
changelist.append("Deleted %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
#if ver.type == reversion.models.VERSION_DELETE:
|
||||||
|
# changelist.append("Deleted %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
||||||
|
#else:
|
||||||
|
pastver = reversion.get_for_object(inst)
|
||||||
|
if pastver:# and ver.type != reversion.models.VERSION_ADD:
|
||||||
|
pastVersion = pastver[0].field_dict
|
||||||
|
changes = set(currentVersion.items()) - set(pastVersion.items())
|
||||||
|
changedVars = [var[0] for var in changes]
|
||||||
|
fieldchanges = []
|
||||||
|
for field in changedVars:
|
||||||
|
if field not in ignorefields:
|
||||||
|
modelfield = modelmeta.get_field(field)
|
||||||
|
newvalue = currentVersion[field]
|
||||||
|
if modelfield.choices:
|
||||||
|
for v in modelfield.choices:
|
||||||
|
if v[0] == newvalue:
|
||||||
|
newvalue = v[1]
|
||||||
|
break
|
||||||
|
fieldchanges.append("%s to '%s'" % (modelfield.verbose_name.lower(), newvalue))
|
||||||
|
if fieldchanges:
|
||||||
|
changelist.append("Changed %s %s %s" % (modelmeta.verbose_name.lower(), ver.object_repr, ", ".join(fieldchanges)))
|
||||||
else:
|
else:
|
||||||
pastver = reversion.get_for_object(inst)
|
changelist.append("Added %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
||||||
if pastver and ver.type != reversion.models.VERSION_ADD:
|
|
||||||
pastVersion = pastver[0].field_dict
|
|
||||||
changes = set(currentVersion.items()) - set(pastVersion.items())
|
|
||||||
changedVars = [var[0] for var in changes]
|
|
||||||
fieldchanges = []
|
|
||||||
for field in changedVars:
|
|
||||||
if field not in ignorefields:
|
|
||||||
modelfield = modelmeta.get_field(field)
|
|
||||||
newvalue = currentVersion[field]
|
|
||||||
if modelfield.choices:
|
|
||||||
for v in modelfield.choices:
|
|
||||||
if v[0] == newvalue:
|
|
||||||
newvalue = v[1]
|
|
||||||
break
|
|
||||||
fieldchanges.append("%s to '%s'" % (modelfield.verbose_name.lower(), newvalue))
|
|
||||||
if fieldchanges:
|
|
||||||
changelist.append("Changed %s %s %s" % (modelmeta.verbose_name.lower(), ver.object_repr, ", ".join(fieldchanges)))
|
|
||||||
else:
|
|
||||||
changelist.append("Added %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
|
||||||
comment = '\n'.join(changelist)
|
comment = '\n'.join(changelist)
|
||||||
if not comment:
|
if not comment:
|
||||||
comment = 'No changes'
|
comment = 'No changes'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user