From 5e1c910fbfacb15dd37ea8f0192561dcc15054bc Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 30 Apr 2020 12:00:34 +0200 Subject: [PATCH 1/3] misc: use postgres JSONField (#42312) --- debian/control | 1 - debian/pydist-overrides | 1 - .../apps/atos_genesys/migrations/0001_initial.py | 4 ++-- passerelle/apps/atos_genesys/models.py | 4 ++-- .../migrations/0016_auto_20200130_1604.py | 4 ++-- passerelle/apps/base_adresse/models.py | 2 +- .../cartads_cs/migrations/0002_cartadsdatacache.py | 6 +++--- .../0004_cartadsdossier_cartads_steps_cache.py | 4 ++-- .../0011_cartadsdossier_cartads_cache_infos.py | 4 ++-- passerelle/apps/cartads_cs/models.py | 2 +- .../migrations/0005_csvdatasource__dialect_options.py | 4 ++-- .../migrations/0006_auto_20160905_1031.py | 4 ++-- .../migrations/0011_auto_20180905_0936.py | 4 ++-- passerelle/apps/csvdatasource/models.py | 7 +++---- passerelle/apps/gesbac/migrations/0001_initial.py | 6 +++--- passerelle/apps/gesbac/models.py | 6 +++--- .../apps/jsondatastore/migrations/0001_initial.py | 4 ++-- passerelle/apps/jsondatastore/models.py | 3 +-- passerelle/apps/mdel_ddpacs/abstract.py | 5 ++--- .../apps/mdel_ddpacs/migrations/0001_initial.py | 4 ++-- .../opengis/migrations/0005_auto_20180227_1531.py | 2 +- .../apps/opengis/migrations/0008_featurecache.py | 4 ++-- passerelle/apps/opengis/models.py | 2 +- passerelle/apps/pastell/migrations/0001_initial.py | 4 ++-- passerelle/apps/pastell/models.py | 3 +-- passerelle/apps/phonecalls/migrations/0001_initial.py | 4 ++-- passerelle/apps/phonecalls/models.py | 2 +- passerelle/apps/sp_fr/migrations/0001_initial.py | 4 ++-- passerelle/apps/sp_fr/models.py | 3 +-- passerelle/base/migrations/0005_resourcelog.py | 4 ++-- passerelle/base/migrations/0012_job.py | 6 +++--- passerelle/base/migrations/0017_auto_20200310_1806.py | 4 ++-- passerelle/base/models.py | 11 ++++------- .../contrib/fake_family/migrations/0001_initial.py | 4 ++-- passerelle/contrib/fake_family/models.py | 3 +-- .../meyzieu_newsletters/migrations/0001_initial.py | 4 ++-- passerelle/contrib/meyzieu_newsletters/models.py | 6 +++--- .../0002_planitechconnector_custom_fields.py | 4 ++-- passerelle/contrib/planitech/models.py | 2 +- .../migrations/0002_management_billing_regies.py | 4 ++-- passerelle/contrib/teamnet_axel/models.py | 4 +--- requirements.txt | 1 - setup.py | 1 - 43 files changed, 75 insertions(+), 90 deletions(-) diff --git a/debian/control b/debian/control index c5f841d9..a1304bf3 100644 --- a/debian/control +++ b/debian/control @@ -21,7 +21,6 @@ Depends: ${python:Depends}, python-django-model-utils, python-requests, python-setuptools, - python-django-jsonfield, python-suds, python-cmislib, python-lxml, diff --git a/debian/pydist-overrides b/debian/pydist-overrides index cf35c895..5837774e 100644 --- a/debian/pydist-overrides +++ b/debian/pydist-overrides @@ -1,2 +1 @@ -jsonfield python-django-jsonfield django-jsonresponse python-django-jsonresponse diff --git a/passerelle/apps/atos_genesys/migrations/0001_initial.py b/passerelle/apps/atos_genesys/migrations/0001_initial.py index acebfa46..28738f10 100644 --- a/passerelle/apps/atos_genesys/migrations/0001_initial.py +++ b/passerelle/apps/atos_genesys/migrations/0001_initial.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -23,7 +23,7 @@ class Migration(migrations.Migration): ('name_id', models.CharField(max_length=256, verbose_name='NameID')), ('id_per', models.CharField(max_length=64, verbose_name='ID Per')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Creation date')), - ('extra', jsonfield.fields.JSONField(null=True, verbose_name='Anything')), + ('extra', django.contrib.postgres.fields.jsonb.JSONField(null=True, verbose_name='Anything')), ], options={ 'ordering': ['created'], diff --git a/passerelle/apps/atos_genesys/models.py b/passerelle/apps/atos_genesys/models.py index c4be2813..9f703a94 100644 --- a/passerelle/apps/atos_genesys/models.py +++ b/passerelle/apps/atos_genesys/models.py @@ -17,8 +17,8 @@ import datetime import requests import xml.etree.ElementTree as ET -import jsonfield +from django.contrib.postgres.fields import JSONField from django.db import models from django.utils import six from django.utils.six.moves.urllib import parse as urlparse @@ -511,7 +511,7 @@ class Link(models.Model): created = models.DateTimeField( verbose_name=_('Creation date'), auto_now_add=True) - extra = jsonfield.JSONField( + extra = JSONField( verbose_name=_('Anything'), null=True) diff --git a/passerelle/apps/base_adresse/migrations/0016_auto_20200130_1604.py b/passerelle/apps/base_adresse/migrations/0016_auto_20200130_1604.py index f6d215d8..edb9d8f1 100644 --- a/passerelle/apps/base_adresse/migrations/0016_auto_20200130_1604.py +++ b/passerelle/apps/base_adresse/migrations/0016_auto_20200130_1604.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -18,7 +18,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('api_id', models.CharField(max_length=30, unique=True)), - ('data', jsonfield.fields.JSONField(default=dict)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), ('timestamp', models.DateTimeField(auto_now=True)), ], ), diff --git a/passerelle/apps/base_adresse/models.py b/passerelle/apps/base_adresse/models.py index 4cafc968..e181729c 100644 --- a/passerelle/apps/base_adresse/models.py +++ b/passerelle/apps/base_adresse/models.py @@ -1,9 +1,9 @@ import datetime import gzip -from jsonfield import JSONField from requests import RequestException +from django.contrib.postgres.fields import JSONField from django.db import connection, models from django.db.models import Q from django.utils.http import urlencode diff --git a/passerelle/apps/cartads_cs/migrations/0002_cartadsdatacache.py b/passerelle/apps/cartads_cs/migrations/0002_cartadsdatacache.py index aee0ae65..d1b1947d 100644 --- a/passerelle/apps/cartads_cs/migrations/0002_cartadsdatacache.py +++ b/passerelle/apps/cartads_cs/migrations/0002_cartadsdatacache.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -18,8 +18,8 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data_type', models.CharField(max_length=50)), - ('data_parameters', jsonfield.fields.JSONField(default={})), - ('data_values', jsonfield.fields.JSONField(default={})), + ('data_parameters', django.contrib.postgres.fields.jsonb.JSONField(default={})), + ('data_values', django.contrib.postgres.fields.jsonb.JSONField(default={})), ('last_update_datetime', models.DateTimeField(auto_now=True)), ], ), diff --git a/passerelle/apps/cartads_cs/migrations/0004_cartadsdossier_cartads_steps_cache.py b/passerelle/apps/cartads_cs/migrations/0004_cartadsdossier_cartads_steps_cache.py index f82954f4..3676af4f 100644 --- a/passerelle/apps/cartads_cs/migrations/0004_cartadsdossier_cartads_steps_cache.py +++ b/passerelle/apps/cartads_cs/migrations/0004_cartadsdossier_cartads_steps_cache.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -16,6 +16,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='cartadsdossier', name='cartads_steps_cache', - field=jsonfield.fields.JSONField(default={}), + field=django.contrib.postgres.fields.jsonb.JSONField(default={}), ), ] diff --git a/passerelle/apps/cartads_cs/migrations/0011_cartadsdossier_cartads_cache_infos.py b/passerelle/apps/cartads_cs/migrations/0011_cartadsdossier_cartads_cache_infos.py index 5d22ddd1..f87a508a 100644 --- a/passerelle/apps/cartads_cs/migrations/0011_cartadsdossier_cartads_cache_infos.py +++ b/passerelle/apps/cartads_cs/migrations/0011_cartadsdossier_cartads_cache_infos.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -16,6 +16,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='cartadsdossier', name='cartads_cache_infos', - field=jsonfield.fields.JSONField(default={}), + field=django.contrib.postgres.fields.jsonb.JSONField(default={}), ), ] diff --git a/passerelle/apps/cartads_cs/models.py b/passerelle/apps/cartads_cs/models.py index 585a9dab..55abfbbd 100644 --- a/passerelle/apps/cartads_cs/models.py +++ b/passerelle/apps/cartads_cs/models.py @@ -31,6 +31,7 @@ import pdfrw.findobjs from Crypto.Cipher import AES from django.conf import settings +from django.contrib.postgres.fields import JSONField from django.core.files.storage import default_storage from django.core.signing import Signer from django.core.urlresolvers import reverse @@ -42,7 +43,6 @@ from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ from django.utils.six.moves.urllib import parse as urlparse -from jsonfield import JSONField import zeep.exceptions import zeep.helpers as zeep_helpers diff --git a/passerelle/apps/csvdatasource/migrations/0005_csvdatasource__dialect_options.py b/passerelle/apps/csvdatasource/migrations/0005_csvdatasource__dialect_options.py index 0acd54b9..e24f063c 100644 --- a/passerelle/apps/csvdatasource/migrations/0005_csvdatasource__dialect_options.py +++ b/passerelle/apps/csvdatasource/migrations/0005_csvdatasource__dialect_options.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -15,7 +15,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='csvdatasource', name='_dialect_options', - field=jsonfield.fields.JSONField(default=dict, editable=False), + field=django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False), preserve_default=True, ), ] diff --git a/passerelle/apps/csvdatasource/migrations/0006_auto_20160905_1031.py b/passerelle/apps/csvdatasource/migrations/0006_auto_20160905_1031.py index f4d132ee..353865f1 100644 --- a/passerelle/apps/csvdatasource/migrations/0006_auto_20160905_1031.py +++ b/passerelle/apps/csvdatasource/migrations/0006_auto_20160905_1031.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -19,6 +19,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='csvdatasource', name='_dialect_options', - field=jsonfield.fields.JSONField(null=True, editable=False), + field=django.contrib.postgres.fields.jsonb.JSONField(null=True, editable=False), ), ] diff --git a/passerelle/apps/csvdatasource/migrations/0011_auto_20180905_0936.py b/passerelle/apps/csvdatasource/migrations/0011_auto_20180905_0936.py index dcb22ee5..9dc7d1f7 100644 --- a/passerelle/apps/csvdatasource/migrations/0011_auto_20180905_0936.py +++ b/passerelle/apps/csvdatasource/migrations/0011_auto_20180905_0936.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -19,7 +19,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('line_number', models.IntegerField()), - ('data', jsonfield.fields.JSONField(blank=True, default=dict)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)), ], options={ 'ordering': ('line_number',), diff --git a/passerelle/apps/csvdatasource/models.py b/passerelle/apps/csvdatasource/models.py index 79f40827..32cc0544 100644 --- a/passerelle/apps/csvdatasource/models.py +++ b/passerelle/apps/csvdatasource/models.py @@ -26,8 +26,7 @@ import pytz from pyexcel_ods import get_data as get_data_ods from pyexcel_xls import get_data as get_data_xls -import jsonfield - +from django.contrib.postgres.fields import JSONField from django.utils.encoding import force_str, smart_text from django.utils.timezone import datetime, make_aware from django.conf import settings @@ -141,7 +140,7 @@ class CsvDataSource(BaseResource): default='id, text', help_text=_('ex: id,text,data1,data2'), blank=True) skip_header = models.BooleanField(_('Skip first line'), default=False) - _dialect_options = jsonfield.JSONField(editable=False, null=True) + _dialect_options = JSONField(editable=False, null=True) sheet_name = models.CharField(_('Sheet name'), blank=True, max_length=150) category = _('Data Sources') @@ -494,7 +493,7 @@ class CsvDataSource(BaseResource): class TableRow(models.Model): resource = models.ForeignKey('CsvDataSource', on_delete=models.CASCADE) line_number = models.IntegerField(null=False) - data = jsonfield.JSONField(blank=True) + data = JSONField(blank=True) class Meta: ordering = ('line_number',) diff --git a/passerelle/apps/gesbac/migrations/0001_initial.py b/passerelle/apps/gesbac/migrations/0001_initial.py index 3a715709..5117375d 100644 --- a/passerelle/apps/gesbac/migrations/0001_initial.py +++ b/passerelle/apps/gesbac/migrations/0001_initial.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb import passerelle.utils.sftp @@ -25,8 +25,8 @@ class Migration(migrations.Migration): ('creation_datetime', models.DateTimeField(auto_now_add=True)), ('filename', models.CharField(max_length=128, null=True)), ('status', models.CharField(choices=[(b'new', b'New'), (b'sent', b'Sent'), (b'closed', b'Closed')], default=b'new', max_length=8)), - ('demand_data', jsonfield.fields.JSONField(default=dict)), - ('card_data', jsonfield.fields.JSONField(default=dict)), + ('demand_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), + ('card_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), ], options={ 'get_latest_by': 'creation_datetime', diff --git a/passerelle/apps/gesbac/models.py b/passerelle/apps/gesbac/models.py index e9829392..f6cf8869 100644 --- a/passerelle/apps/gesbac/models.py +++ b/passerelle/apps/gesbac/models.py @@ -19,6 +19,7 @@ import io from collections import OrderedDict +from django.contrib.postgres.fields import JSONField from django.db import models, transaction, IntegrityError from django.utils import six from django.utils.encoding import force_bytes @@ -29,7 +30,6 @@ from passerelle.base.models import BaseResource from passerelle.utils.api import endpoint, APIError from passerelle.utils import SFTPField -from jsonfield import JSONField CSV_DELIMITER = ';' FILES_ENCODING = 'latin-1' @@ -403,8 +403,8 @@ class Form(models.Model): status = models.CharField(max_length=8, default='new', choices=FORM_STATUSES ) - demand_data = JSONField() - card_data = JSONField() + demand_data = JSONField(default=dict) + card_data = JSONField(default=dict) class Meta: get_latest_by = 'creation_datetime' diff --git a/passerelle/apps/jsondatastore/migrations/0001_initial.py b/passerelle/apps/jsondatastore/migrations/0001_initial.py index 4395365c..93d8596e 100644 --- a/passerelle/apps/jsondatastore/migrations/0001_initial.py +++ b/passerelle/apps/jsondatastore/migrations/0001_initial.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models import passerelle.apps.jsondatastore.models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -19,7 +19,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('uuid', models.CharField(default=passerelle.apps.jsondatastore.models.get_hex_uuid, verbose_name='uuid', unique=True, max_length=32, editable=False)), ('name_id', models.CharField(max_length=256, blank=True)), - ('content', jsonfield.fields.JSONField(default=dict, verbose_name='Content')), + ('content', django.contrib.postgres.fields.jsonb.JSONField(default=dict, verbose_name='Content')), ('creation_datetime', models.DateTimeField(auto_now_add=True)), ('last_update_datetime', models.DateTimeField(auto_now=True)), ], diff --git a/passerelle/apps/jsondatastore/models.py b/passerelle/apps/jsondatastore/models.py index 0e335e9e..ecd69fa9 100644 --- a/passerelle/apps/jsondatastore/models.py +++ b/passerelle/apps/jsondatastore/models.py @@ -16,12 +16,11 @@ import uuid +from django.contrib.postgres.fields import JSONField from django.db import models from django.template import Context, Template from django.utils.translation import ugettext_lazy as _ -from jsonfield import JSONField - from passerelle.base.models import BaseResource from passerelle.compat import json_loads from passerelle.utils.api import endpoint, APIError diff --git a/passerelle/apps/mdel_ddpacs/abstract.py b/passerelle/apps/mdel_ddpacs/abstract.py index e43d3654..ab3fd30d 100644 --- a/passerelle/apps/mdel_ddpacs/abstract.py +++ b/passerelle/apps/mdel_ddpacs/abstract.py @@ -24,14 +24,13 @@ import re import xml.etree.ElementTree as ET import zipfile +from django.contrib.postgres.fields import JSONField from django.db import models, IntegrityError, transaction from django.core.urlresolvers import reverse from django.http import HttpResponse from django.utils.translation import ugettext_lazy as _ from django.utils import six, functional -import jsonfield - from passerelle.base.models import BaseResource, SkipJob from passerelle.utils.api import endpoint from passerelle.utils.jsonresponse import APIError @@ -238,7 +237,7 @@ class Demand(models.Model): reference = models.CharField(max_length=32, null=False, unique=True) status = models.CharField(max_length=32, null=True, choices=STATUSES, default=STATUS_PENDING) step = models.IntegerField(default=0) - data = jsonfield.JSONField() + data = JSONField() @functional.cached_property def logger(self): diff --git a/passerelle/apps/mdel_ddpacs/migrations/0001_initial.py b/passerelle/apps/mdel_ddpacs/migrations/0001_initial.py index 66df1d6a..0c557f0d 100644 --- a/passerelle/apps/mdel_ddpacs/migrations/0001_initial.py +++ b/passerelle/apps/mdel_ddpacs/migrations/0001_initial.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb import passerelle.utils.sftp @@ -26,7 +26,7 @@ class Migration(migrations.Migration): ('reference', models.CharField(max_length=32, unique=True)), ('status', models.CharField(choices=[('pending', 'pending'), ('pushed', 'pushed'), ('error', 'error'), ('closed', 'closed'), ('rejected', 'rejected'), ('accepted', 'accepted'), ('information needed', 'information needed'), ('in progress', 'in progress'), ('invalid', 'invalid'), ('imported', 'imported')], default='pending', max_length=32, null=True)), ('step', models.IntegerField(default=0)), - ('data', jsonfield.fields.JSONField(default=dict)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), ], options={ 'verbose_name': 'MDEL compatible DDPACS request', diff --git a/passerelle/apps/opengis/migrations/0005_auto_20180227_1531.py b/passerelle/apps/opengis/migrations/0005_auto_20180227_1531.py index e866d62e..6722d50c 100644 --- a/passerelle/apps/opengis/migrations/0005_auto_20180227_1531.py +++ b/passerelle/apps/opengis/migrations/0005_auto_20180227_1531.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): diff --git a/passerelle/apps/opengis/migrations/0008_featurecache.py b/passerelle/apps/opengis/migrations/0008_featurecache.py index 07823cc6..bbf48c51 100644 --- a/passerelle/apps/opengis/migrations/0008_featurecache.py +++ b/passerelle/apps/opengis/migrations/0008_featurecache.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -20,7 +20,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('lat', models.FloatField()), ('lon', models.FloatField()), - ('data', jsonfield.fields.JSONField(default=dict)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), ('query', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='features', to='opengis.Query', verbose_name='Query')), ], ), diff --git a/passerelle/apps/opengis/models.py b/passerelle/apps/opengis/models.py index 9b04a1b9..9b5a9bca 100644 --- a/passerelle/apps/opengis/models.py +++ b/passerelle/apps/opengis/models.py @@ -20,8 +20,8 @@ import xml.etree.ElementTree as ET import six import pyproj -from jsonfield import JSONField +from django.contrib.postgres.fields import JSONField from django.core.cache import cache from django.db import models, transaction from django.http import HttpResponse diff --git a/passerelle/apps/pastell/migrations/0001_initial.py b/passerelle/apps/pastell/migrations/0001_initial.py index cd4baea3..d785f2f0 100644 --- a/passerelle/apps/pastell/migrations/0001_initial.py +++ b/passerelle/apps/pastell/migrations/0001_initial.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -25,7 +25,7 @@ class Migration(migrations.Migration): ('password', models.CharField(max_length=128, verbose_name='Password')), ('keystore', models.FileField(help_text='Certificate and private key in PEM format', upload_to=b'pastell', null=True, verbose_name='Keystore')), ('document_type', models.CharField(max_length=128, verbose_name='Document Type', blank=True)), - ('document_fields', jsonfield.fields.JSONField(null=True, verbose_name='Fields')), + ('document_fields', django.contrib.postgres.fields.jsonb.JSONField(null=True, verbose_name='Fields')), ('users', models.ManyToManyField(to='base.ApiUser', related_name='_pastell_users_+', related_query_name='+', blank=True)), ], options={ diff --git a/passerelle/apps/pastell/models.py b/passerelle/apps/pastell/models.py index 0bddcf2f..a7c8bad1 100644 --- a/passerelle/apps/pastell/models.py +++ b/passerelle/apps/pastell/models.py @@ -1,14 +1,13 @@ import requests from requests.auth import HTTPBasicAuth +from django.contrib.postgres.fields import JSONField from django.core.cache import cache from django.core.urlresolvers import reverse from django.db import models from django.template import Template, Context from django.utils.translation import ugettext_lazy as _ -from jsonfield import JSONField - from passerelle.base.models import BaseResource diff --git a/passerelle/apps/phonecalls/migrations/0001_initial.py b/passerelle/apps/phonecalls/migrations/0001_initial.py index 28eccc55..acd539c0 100644 --- a/passerelle/apps/phonecalls/migrations/0001_initial.py +++ b/passerelle/apps/phonecalls/migrations/0001_initial.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -24,7 +24,7 @@ class Migration(migrations.Migration): ('caller', models.CharField(max_length=64)), ('start_timestamp', models.DateTimeField(auto_now_add=True)), ('end_timestamp', models.DateTimeField(default=None, null=True)), - ('details', jsonfield.fields.JSONField(default={})), + ('details', django.contrib.postgres.fields.jsonb.JSONField(default={})), ], options={ 'ordering': ['-start_timestamp'], diff --git a/passerelle/apps/phonecalls/models.py b/passerelle/apps/phonecalls/models.py index 5654c9a1..8a4249b0 100644 --- a/passerelle/apps/phonecalls/models.py +++ b/passerelle/apps/phonecalls/models.py @@ -14,10 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from django.contrib.postgres.fields import JSONField from django.db import models from django.utils.timezone import now, timedelta, make_naive from django.utils.translation import ugettext_lazy as _ -from jsonfield import JSONField from passerelle.base.models import BaseResource from passerelle.utils.api import endpoint diff --git a/passerelle/apps/sp_fr/migrations/0001_initial.py b/passerelle/apps/sp_fr/migrations/0001_initial.py index 59dd6169..471d92f0 100644 --- a/passerelle/apps/sp_fr/migrations/0001_initial.py +++ b/passerelle/apps/sp_fr/migrations/0001_initial.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb import passerelle.apps.sp_fr.models import passerelle.utils.sftp import passerelle.utils.wcs @@ -25,7 +25,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('procedure', models.CharField(choices=[(b'DOC', 'Request for construction site opening'), (b'recensementCitoyen', 'Request for mandatory citizen census'), (b'depotDossierPACS', 'Pre-request for citizen solidarity pact')], max_length=32, unique=True, verbose_name='Procedure')), ('formdef', passerelle.utils.wcs.FormDefField(verbose_name='Formdef')), - ('rules', jsonfield.fields.JSONField(default=passerelle.apps.sp_fr.models.default_rule, verbose_name='Rules')), + ('rules', django.contrib.postgres.fields.jsonb.JSONField(default=passerelle.apps.sp_fr.models.default_rule, verbose_name='Rules')), ], options={ 'verbose_name': 'MDEL mapping', diff --git a/passerelle/apps/sp_fr/models.py b/passerelle/apps/sp_fr/models.py index 640a0535..110ff066 100644 --- a/passerelle/apps/sp_fr/models.py +++ b/passerelle/apps/sp_fr/models.py @@ -25,6 +25,7 @@ import datetime from lxml import etree as ET +from django.contrib.postgres.fields import JSONField from django.core.urlresolvers import reverse from django.core.files import File from django.db import models, transaction @@ -32,8 +33,6 @@ from django.template import engines from django.utils import six from django.utils.translation import ugettext_lazy as _, ugettext -from jsonfield import JSONField - from passerelle.base.models import BaseResource from passerelle.utils.api import endpoint from passerelle.utils.sftp import SFTPField diff --git a/passerelle/base/migrations/0005_resourcelog.py b/passerelle/base/migrations/0005_resourcelog.py index 12f826ad..fc7f3908 100644 --- a/passerelle/base/migrations/0005_resourcelog.py +++ b/passerelle/base/migrations/0005_resourcelog.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -22,7 +22,7 @@ class Migration(migrations.Migration): ('levelno', models.IntegerField(verbose_name=b'log level')), ('sourceip', models.GenericIPAddressField(null=True, verbose_name='Source IP', blank=True)), ('message', models.TextField(verbose_name=b'message')), - ('extra', jsonfield.fields.JSONField(default={}, verbose_name=b'extras')), + ('extra', django.contrib.postgres.fields.jsonb.JSONField(default={}, verbose_name=b'extras')), ], options={ 'permissions': (('view_resourcelog', 'Can view resource logs'),), diff --git a/passerelle/base/migrations/0012_job.py b/passerelle/base/migrations/0012_job.py index fe85b6a9..41f4e5b8 100644 --- a/passerelle/base/migrations/0012_job.py +++ b/passerelle/base/migrations/0012_job.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -22,12 +22,12 @@ class Migration(migrations.Migration): ('resource_pk', models.PositiveIntegerField()), ('method_name', models.CharField(max_length=50)), ('natural_id', models.CharField(blank=True, max_length=256, null=True)), - ('parameters', jsonfield.fields.JSONField(default={})), + ('parameters', django.contrib.postgres.fields.jsonb.JSONField(default={})), ('creation_timestamp', models.DateTimeField(auto_now_add=True)), ('update_timestamp', models.DateTimeField(auto_now=True)), ('done_timestamp', models.DateTimeField(null=True)), ('status', models.CharField(choices=[(b'registered', 'Registered'), (b'running', 'Running'), (b'failed', 'Failed'), (b'completed', 'Completed')], default=b'registered', max_length=20)), - ('status_details', jsonfield.fields.JSONField(default={})), + ('status_details', django.contrib.postgres.fields.jsonb.JSONField(default={})), ('resource_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), ], ), diff --git a/passerelle/base/migrations/0017_auto_20200310_1806.py b/passerelle/base/migrations/0017_auto_20200310_1806.py index 7ea54fa4..af0b5916 100644 --- a/passerelle/base/migrations/0017_auto_20200310_1806.py +++ b/passerelle/base/migrations/0017_auto_20200310_1806.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models -import jsonfield.fields +import django.contrib.postgres.fields.jsonb import passerelle.base.models @@ -47,7 +47,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='resourcelog', name='extra', - field=jsonfield.fields.JSONField(default={}, verbose_name='extras'), + field=django.contrib.postgres.fields.jsonb.JSONField(default={}, verbose_name='extras'), ), migrations.AlterField( model_name='resourcelog', diff --git a/passerelle/base/models.py b/passerelle/base/models.py index a5b4df74..f403e60b 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -13,6 +13,7 @@ import uuid from django.apps import apps from django.conf import settings +from django.contrib.postgres.fields import JSONField from django.core.exceptions import ValidationError, ObjectDoesNotExist, PermissionDenied from django.core.urlresolvers import reverse from django.db import connection, models, transaction @@ -30,12 +31,8 @@ from django.core.files.base import ContentFile from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import fields -from jsonfield import JSONField - from model_utils.managers import InheritanceManager as ModelUtilsInheritanceManager -import jsonfield - import passerelle import requests from passerelle.compat import json_loads @@ -697,7 +694,7 @@ class Job(models.Model): resource = fields.GenericForeignKey('resource_type', 'resource_pk') method_name = models.CharField(max_length=50) natural_id = models.CharField(max_length=256, blank=True, null=True) - parameters = jsonfield.JSONField(default={}) + parameters = JSONField(default={}) creation_timestamp = models.DateTimeField(auto_now_add=True) update_timestamp = models.DateTimeField(auto_now=True) done_timestamp = models.DateTimeField(null=True) @@ -711,7 +708,7 @@ class Job(models.Model): ('completed', _('Completed')) ), ) - status_details = jsonfield.JSONField(default={}) + status_details = JSONField(default={}) def set_after_timestamp(self, value): if isinstance(value, datetime.datetime): @@ -732,7 +729,7 @@ class ResourceLog(models.Model): levelno = models.IntegerField(verbose_name='log level') sourceip = models.GenericIPAddressField(blank=True, null=True, verbose_name=_('Source IP')) message = models.TextField(verbose_name='message') - extra = jsonfield.JSONField(verbose_name='extras', default={}) + extra = JSONField(verbose_name='extras', default={}) class Meta: ordering = ('id',) diff --git a/passerelle/contrib/fake_family/migrations/0001_initial.py b/passerelle/contrib/fake_family/migrations/0001_initial.py index e1ddbc72..a3feeff9 100644 --- a/passerelle/contrib/fake_family/migrations/0001_initial.py +++ b/passerelle/contrib/fake_family/migrations/0001_initial.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -19,7 +19,7 @@ class Migration(migrations.Migration): ('title', models.CharField(verbose_name='Title', max_length=50)), ('slug', models.SlugField(verbose_name='Identifier', unique=True)), ('description', models.TextField(verbose_name='Description')), - ('jsondatabase', jsonfield.fields.JSONField(default=dict, verbose_name='Fake Database (JSON)', blank=True)), + ('jsondatabase', django.contrib.postgres.fields.jsonb.JSONField(default=dict, verbose_name='Fake Database (JSON)', blank=True)), ('users', models.ManyToManyField(to='base.ApiUser', related_name='_fakefamily_users_+', related_query_name='+', blank=True)), ], options={ diff --git a/passerelle/contrib/fake_family/models.py b/passerelle/contrib/fake_family/models.py index 29e58355..c0823c90 100644 --- a/passerelle/contrib/fake_family/models.py +++ b/passerelle/contrib/fake_family/models.py @@ -14,12 +14,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from django.contrib.postgres.fields import JSONField from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned -from jsonfield import JSONField - from passerelle.base.models import BaseResource from .default_database import default_database diff --git a/passerelle/contrib/meyzieu_newsletters/migrations/0001_initial.py b/passerelle/contrib/meyzieu_newsletters/migrations/0001_initial.py index 8ed88bc9..02fcfd59 100644 --- a/passerelle/contrib/meyzieu_newsletters/migrations/0001_initial.py +++ b/passerelle/contrib/meyzieu_newsletters/migrations/0001_initial.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -21,7 +21,7 @@ class Migration(migrations.Migration): ('description', models.TextField(verbose_name='Description')), ('url', models.URLField(verbose_name='Newsletter service URL')), ('apikey', models.CharField(max_length=32, verbose_name='API key')), - ('transport_titles_mapping', jsonfield.fields.JSONField(default=dict, verbose_name='Mapping of transports ids and titles')), + ('transport_titles_mapping', django.contrib.postgres.fields.jsonb.JSONField(default=dict, verbose_name='Mapping of transports ids and titles')), ('users', models.ManyToManyField(to='base.ApiUser', related_name='_meyzieunewsletters_users_+', related_query_name='+', blank=True)), ], options={ diff --git a/passerelle/contrib/meyzieu_newsletters/models.py b/passerelle/contrib/meyzieu_newsletters/models.py index 9c9a5758..d77540a0 100644 --- a/passerelle/contrib/meyzieu_newsletters/models.py +++ b/passerelle/contrib/meyzieu_newsletters/models.py @@ -17,13 +17,12 @@ import requests import logging +from django.contrib.postgres.fields import JSONField from django.db import models from django.core.urlresolvers import reverse from django.db import models from django.utils.translation import ugettext_lazy as _ -from jsonfield import JSONField - from passerelle.base.models import BaseResource @@ -38,7 +37,8 @@ class SubscriptionsGetError(Exception): class MeyzieuNewsletters(BaseResource): url = models.URLField(verbose_name=_('Newsletter service URL')) apikey = models.CharField(max_length=32, verbose_name=_('API key')) - transport_titles_mapping = JSONField(_('Mapping of transports ids and titles')) + transport_titles_mapping = JSONField(_('Mapping of transports ids and titles'), + default=dict) category = _('Newsletter registration') diff --git a/passerelle/contrib/planitech/migrations/0002_planitechconnector_custom_fields.py b/passerelle/contrib/planitech/migrations/0002_planitechconnector_custom_fields.py index 67eba7dc..59ccb98a 100644 --- a/passerelle/contrib/planitech/migrations/0002_planitechconnector_custom_fields.py +++ b/passerelle/contrib/planitech/migrations/0002_planitechconnector_custom_fields.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -16,6 +16,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='planitechconnector', name='custom_fields', - field=jsonfield.fields.JSONField(blank=True, null=True, verbose_name='Custom places fields'), + field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True, verbose_name='Custom places fields'), ), ] diff --git a/passerelle/contrib/planitech/models.py b/passerelle/contrib/planitech/models.py index 56fac222..f2c9f869 100644 --- a/passerelle/contrib/planitech/models.py +++ b/passerelle/contrib/planitech/models.py @@ -21,6 +21,7 @@ import json import re import uuid +from django.contrib.postgres.fields import JSONField from django.core.cache import cache from django.db import models, transaction from django.utils import dateformat @@ -28,7 +29,6 @@ from django.utils import dateparse from django.utils.encoding import force_bytes from django.utils.six.moves.urllib import parse as urlparse from django.utils.translation import ugettext_lazy as _ -from jsonfield import JSONField from requests.exceptions import RequestException from passerelle.base.models import BaseResource diff --git a/passerelle/contrib/teamnet_axel/migrations/0002_management_billing_regies.py b/passerelle/contrib/teamnet_axel/migrations/0002_management_billing_regies.py index d894ead1..50f23c41 100644 --- a/passerelle/contrib/teamnet_axel/migrations/0002_management_billing_regies.py +++ b/passerelle/contrib/teamnet_axel/migrations/0002_management_billing_regies.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import jsonfield.fields +import django.contrib.postgres.fields.jsonb class Migration(migrations.Migration): @@ -15,7 +15,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='management', name='billing_regies', - field=jsonfield.fields.JSONField(default=dict, verbose_name='Mapping between regie ids and billing ids'), + field=django.contrib.postgres.fields.jsonb.JSONField(default=dict, verbose_name='Mapping between regie ids and billing ids'), preserve_default=True, ), ] diff --git a/passerelle/contrib/teamnet_axel/models.py b/passerelle/contrib/teamnet_axel/models.py index 6cee3bf4..df872a17 100644 --- a/passerelle/contrib/teamnet_axel/models.py +++ b/passerelle/contrib/teamnet_axel/models.py @@ -19,14 +19,12 @@ from datetime import datetime import logging import xml.etree.ElementTree as ET +from django.contrib.postgres.fields import JSONField from django.db import models from django.http import HttpResponse, HttpResponseNotFound from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import smart_text - -from jsonfield import JSONField - from passerelle.base.models import BaseResource from passerelle.compat import json_loads from passerelle.soap import client_to_jsondict diff --git a/requirements.txt b/requirements.txt index 9f44bef6..c77b53f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,6 @@ django >= 1.8, <1.12 django-jsonresponse >= 0.10, < 0.11 django-model-utils -django-jsonfield >= 0.9.3 requests -e git+http://repos.entrouvert.org/gadjo.git/#egg=gadjo SOAPpy diff --git a/setup.py b/setup.py index c8f72e7f..3d7390a4 100755 --- a/setup.py +++ b/setup.py @@ -86,7 +86,6 @@ setup(name='passerelle', install_requires=[ 'django >= 1.8, <1.12', 'django-model-utils<4', - 'django-jsonfield<1.3', 'requests', 'gadjo', 'phpserialize', -- 2.20.1