[Python-modules-commits] [django-model-utils] 02/07: merge patched into master

Brian May bam at moszumanska.debian.org
Sun Sep 11 03:13:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

bam pushed a commit to branch master
in repository django-model-utils.

commit 3fac06c76a2fdaaeeda18f0dcc130c1a691108cc
Merge: 04fbab7 68b99c5
Author: Brian May <bam at debian.org>
Date:   Sun Sep 11 12:22:58 2016 +1000

    merge patched into master

 debian/.git-dpm                                    |  4 +-
 ...Fix-FieldTracker-failing-with-Django-1.10.patch | 85 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 model_utils/tracker.py                             | 41 +++++++----
 4 files changed, 116 insertions(+), 15 deletions(-)

diff --cc debian/.git-dpm
index 7673363,0000000..a56e525
mode 100644,000000..100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@@ -1,11 -1,0 +1,11 @@@
 +# see git-dpm(1) from git-dpm package
- 3896a3775fa50d001bf7fe4104550e3055fb2cc0
- 3896a3775fa50d001bf7fe4104550e3055fb2cc0
++68b99c561780f771b8be73fa5940ee625d982f2b
++68b99c561780f771b8be73fa5940ee625d982f2b
 +3896a3775fa50d001bf7fe4104550e3055fb2cc0
 +3896a3775fa50d001bf7fe4104550e3055fb2cc0
 +django-model-utils_2.5.2.orig.tar.gz
 +d441ebadb9f6594fe5c385fa516bad022d604a61
 +41124
 +debianTag="debian/%e%v"
 +patchedTag="patched/%e%v"
 +upstreamTag="upstream/%e%u"
diff --cc debian/patches/0001-Fix-FieldTracker-failing-with-Django-1.10.patch
index 0000000,0000000..a3f4c12
new file mode 100644
--- /dev/null
+++ b/debian/patches/0001-Fix-FieldTracker-failing-with-Django-1.10.patch
@@@ -1,0 -1,0 +1,85 @@@
++From 68b99c561780f771b8be73fa5940ee625d982f2b Mon Sep 17 00:00:00 2001
++From: Brian May <bam at debian.org>
++Date: Sun, 11 Sep 2016 12:21:37 +1000
++Subject: Fix FieldTracker failing with Django 1.10
++
++From upstream pull
++requesthttps://github.com/carljm/django-model-utils/issues/232
++---
++ model_utils/tracker.py | 41 ++++++++++++++++++++++++++++-------------
++ 1 file changed, 28 insertions(+), 13 deletions(-)
++
++diff --git a/model_utils/tracker.py b/model_utils/tracker.py
++index a9c7f70..6aa7d8a 100644
++--- a/model_utils/tracker.py
+++++ b/model_utils/tracker.py
++@@ -2,8 +2,9 @@ from __future__ import unicode_literals
++ 
++ from copy import deepcopy
++ 
++-from django.db import models
+++import django
++ from django.core.exceptions import FieldError
+++from django.db import models
++ from django.db.models.query_utils import DeferredAttribute
++ 
++ 
++@@ -62,12 +63,14 @@ class FieldInstanceTracker(object):
++         )
++ 
++     def init_deferred_fields(self):
++-        self.instance._deferred_fields = []
+++        self.instance._deferred_fields = set()
++         if hasattr(self.instance, '_deferred') and not self.instance._deferred:
++             return
++ 
++         class DeferredAttributeTracker(DeferredAttribute):
++             def __get__(field, instance, owner):
+++                if instance is None:
+++                    return field
++                 data = instance.__dict__
++                 if data.get(field.field_name, field) is field:
++                     instance._deferred_fields.remove(field.field_name)
++@@ -76,19 +79,31 @@ class FieldInstanceTracker(object):
++                     self.saved_data[field.field_name] = deepcopy(value)
++                 return data[field.field_name]
++ 
++-        for field in self.fields:
++-            field_obj = self.instance.__class__.__dict__.get(field)
++-            if isinstance(field_obj, DeferredAttribute):
++-                self.instance._deferred_fields.append(field)
++-
++-                # Django 1.4
++-                model = None
++-                if hasattr(field_obj, 'model_ref'):
++-                    model = field_obj.model_ref()
++-
+++        if django.VERSION >= (1, 8):
+++            self.instance._deferred_fields = self.instance.get_deferred_fields()
+++            for field in self.instance._deferred_fields:
+++                if django.VERSION >= (1, 10):
+++                    field_obj = getattr(self.instance.__class__, field)
+++                else:
+++                    field_obj = self.instance.__class__.__dict__.get(field)
++                 field_tracker = DeferredAttributeTracker(
++-                    field_obj.field_name, model)
+++                    field_obj.field_name, None)
++                 setattr(self.instance.__class__, field, field_tracker)
+++        else:
+++            for field in self.fields:
+++                field_obj = self.instance.__class__.__dict__.get(field)
+++                if isinstance(field_obj, DeferredAttribute):
+++                    self.instance._deferred_fields.add(field)
+++
+++                    # Django 1.4
+++                    if django.VERSION >= (1, 5):
+++                        model = None
+++                    else:
+++                        model = field_obj.model_ref()
+++
+++                    field_tracker = DeferredAttributeTracker(
+++                        field_obj.field_name, model)
+++                    setattr(self.instance.__class__, field, field_tracker)
++ 
++ 
++ class FieldTracker(object):
diff --cc debian/patches/series
index 0000000,0000000..8f175f2
new file mode 100644
--- /dev/null
+++ b/debian/patches/series
@@@ -1,0 -1,0 +1,1 @@@
++0001-Fix-FieldTracker-failing-with-Django-1.10.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-model-utils.git



More information about the Python-modules-commits mailing list