diff --git a/project/core/admin.py b/project/core/admin.py index 6fdc096608eecce62d4f0fdc9e540f4d41b8a29d..4696e82b661cfadc0ff07ef33a2740d021c1e323 100644 --- a/project/core/admin.py +++ b/project/core/admin.py @@ -1,7 +1,7 @@ """Core admin panel configuration.""" from django.contrib import admin -from .models import Document, Address +from .models import Document # Register your models here. @@ -15,29 +15,3 @@ class DocumentAdmin(admin.ModelAdmin): # reorganize fields fields = ('title', 'slug', 'content',) - - -@admin.register(Address) -class AddressAdmin(admin.ModelAdmin): - """Admin panel for addresses.""" - - list_display = ('id', '__str__',) - search_fields = ('line1', 'line2', 'post_code', 'city',) - - -class AutocompleteAddressMixin: - """Enable autocompletion on the address field of a model. - - Class Attributes - ---------------- - address_field_name : str, optional - The name of the address field on the model. Default is 'address'. - """ - - address_field_name = 'address' - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - initial = getattr(self, 'autocomplete_fields', ()) - if self.address_field_name not in initial: - self.autocomplete_fields = initial + (self.address_field_name,) diff --git a/project/core/factory.py b/project/core/factory.py index a812eedf66da680b44e704315bd4a2fc0f7810f6..cb08d1f59e3cd9d3a0911e2120c41446dce41470 100644 --- a/project/core/factory.py +++ b/project/core/factory.py @@ -13,16 +13,3 @@ class DocumentFactory(factory.DjangoModelFactory): title = factory.Faker('sentence', locale='fr') content = factory.Faker('text', max_nb_chars=1000, locale='fr') - - -class AddressFactory(factory.DjangoModelFactory): - """Address object factory.""" - - class Meta: # noqa - model = models.Address - - line1 = factory.Faker('street_address', locale='fr') - # line2: None (default) - post_code = factory.Faker('postcode', locale='fr') - city = factory.Faker('city', locale='fr') - # country: None (default) diff --git a/project/core/migrations/0002_delete_address.py b/project/core/migrations/0002_delete_address.py new file mode 100644 index 0000000000000000000000000000000000000000..55384cb529b1356293aeba7188268176ab853d2c --- /dev/null +++ b/project/core/migrations/0002_delete_address.py @@ -0,0 +1,16 @@ +# Generated by Django 2.0.5 on 2018-05-12 15:03 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0001_initial'), + ] + + operations = [ + migrations.DeleteModel( + name='Address', + ), + ] diff --git a/project/core/models.py b/project/core/models.py index a880117815592acf556723ca96ecc8e0e7af7dac..e6c71366866726ca6ee5707ff5444e5314d5efb0 100644 --- a/project/core/models.py +++ b/project/core/models.py @@ -4,7 +4,6 @@ from django.db import models from django.shortcuts import reverse from django.utils.text import slugify -from django_countries.fields import CountryField from markdownx.models import MarkdownxField @@ -39,40 +38,3 @@ class Document(models.Model): def __str__(self): return str(self.slug) - - -class Address(models.Model): - """Represents a physical address.""" - - line1 = models.CharField( - verbose_name='ligne 1', max_length=300, - help_text="Numéro, voie, rue…", - ) - line2 = models.CharField( - verbose_name='ligne 2', max_length=300, default='', blank=True, - help_text="Résidence, appartement, lieu-dit…", - ) - post_code = models.CharField( - verbose_name='code postal', max_length=20, - help_text="Code postal. Note : le format n'est pas vérifié.", - ) - city = models.CharField( - verbose_name='ville', max_length=100, - help_text='Ville', - ) - country = CountryField( - verbose_name='pays', - default='FR', - help_text="Pays (FR par défaut).", - ) - - class Meta: # noqa - verbose_name = 'adresse' - - def __str__(self): - return ', '.join(filter(None, [ - self.line1, - self.line2, - self.post_code + ' ' + self.city, - self.country.name, - ])) diff --git a/project/core/serializers.py b/project/core/serializers.py index 10449260468a9c63d617159f0831eef6c5e252a4..2c655ec1e7869671756d9eb673d55ed198a0adb3 100644 --- a/project/core/serializers.py +++ b/project/core/serializers.py @@ -3,9 +3,8 @@ from rest_framework import serializers from core.markdown import MarkdownField -from django_countries.serializer_fields import CountryField -from .models import Address, Document +from .models import Document class DocumentSerializer(serializers.HyperlinkedModelSerializer): @@ -22,15 +21,3 @@ class DocumentSerializer(serializers.HyperlinkedModelSerializer): 'lookup_field': 'slug', }, } - - -class AddressSerializer(serializers.ModelSerializer): - """Serializer for addresses.""" - - country = CountryField( - country_dict=True, # output country code and name - ) - - class Meta: # noqa - model = Address - fields = ('line1', 'line2', 'post_code', 'city', 'country') diff --git a/project/core/views.py b/project/core/views.py index 0d5c2f077067aa03a42b7bd0642f872b3935de5f..ab8af33c0189f9901d4d75849e2211dd179a6a42 100644 --- a/project/core/views.py +++ b/project/core/views.py @@ -1,6 +1,5 @@ """Core views.""" -from django.shortcuts import get_object_or_404 from rest_framework.mixins import RetrieveModelMixin, ListModelMixin from rest_framework.viewsets import GenericViewSet from .models import Document diff --git a/project/tests/test_core/test_address.py b/project/tests/test_core/test_address.py deleted file mode 100644 index 18b2e94efc8a6f731492696ccc21bed9cc867e66..0000000000000000000000000000000000000000 --- a/project/tests/test_core/test_address.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Address model tests.""" - -from core.models import Address -from core.factory import AddressFactory -from tests.utils import ModelTestCase - - -class ArticleTest(ModelTestCase): - """Test the Article model.""" - - model = Address - field_tests = { - 'line1': { - 'verbose_name': 'ligne 1', - 'blank': False, - 'max_length': 300, - }, - 'line2': { - 'verbose_name': 'ligne 2', - 'max_length': 300, - 'blank': True, - 'default': '', - }, - 'post_code': { - 'verbose_name': 'code postal', - 'blank': False, - 'max_length': 20, - }, - 'city': { - 'verbose_name': 'ville', - 'blank': False, - 'max_length': 100, - }, - 'country': { - 'verbose_name': 'pays', - 'blank': False, - 'default': 'FR', - }, - } - model_tests = { - 'verbose_name': 'adresse', - } - - @classmethod - def setUpTestData(cls): - cls.obj = AddressFactory.create( - line1='3 Rue Joliot Curie', - post_code='91190', - city='Gif-sur-Yvette', - ) - - def test_str(self): - expected = '3 Rue Joliot Curie, 91190 Gif-sur-Yvette, France' - self.assertEqual(expected, str(self.obj)) diff --git a/project/tests/test_core/test_address_api.py b/project/tests/test_core/test_address_api.py deleted file mode 100644 index 4db4cac1ce36dd1fbaf42711a4d7ff93fc5d9cc0..0000000000000000000000000000000000000000 --- a/project/tests/test_core/test_address_api.py +++ /dev/null @@ -1,19 +0,0 @@ -"""Address API tests.""" - -from django.test import TestCase - -from core.factory import AddressFactory -from core.serializers import AddressSerializer -from tests.utils import SerializerTestCaseMixin - - -class TestArticleSerializer(SerializerTestCaseMixin, TestCase): - """Test the Article serializer.""" - - serializer_class = AddressSerializer - factory_class = AddressFactory - - expected_fields = ( - 'line1', 'line2', 'post_code', 'city', - {'country': ('name', 'code')}, - )