From bf393784e08a9b0c5fc7eb319e9053a3cf3232ff Mon Sep 17 00:00:00 2001
From: florimondmanca <florimond.manca@gmail.com>
Date: Sat, 12 May 2018 16:12:36 +0100
Subject: [PATCH] remove unused Address model

---
 project/core/admin.py                         | 28 +---------
 project/core/factory.py                       | 13 -----
 .../core/migrations/0002_delete_address.py    | 16 ++++++
 project/core/models.py                        | 38 -------------
 project/core/serializers.py                   | 15 +-----
 project/core/views.py                         |  1 -
 project/tests/test_core/test_address.py       | 54 -------------------
 project/tests/test_core/test_address_api.py   | 19 -------
 8 files changed, 18 insertions(+), 166 deletions(-)
 create mode 100644 project/core/migrations/0002_delete_address.py
 delete mode 100644 project/tests/test_core/test_address.py
 delete mode 100644 project/tests/test_core/test_address_api.py

diff --git a/project/core/admin.py b/project/core/admin.py
index 6fdc096..4696e82 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 a812eed..cb08d1f 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 0000000..55384cb
--- /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 a880117..e6c7136 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 1044926..2c655ec 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 0d5c2f0..ab8af33 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 18b2e94..0000000
--- 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 4db4cac..0000000
--- 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')},
-    )
-- 
GitLab