From ec4a3592ff2b7818246b3504426a56a1ffe605e0 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 8 Jun 2018 15:31:20 +0200 Subject: [PATCH] Sets default value for district corporation field --- stages/admin.py | 14 +++++++--- .../migrations/0016_populate_corp_district.py | 26 +++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 stages/migrations/0016_populate_corp_district.py diff --git a/stages/admin.py b/stages/admin.py index 700d3aa..0df6bd1 100644 --- a/stages/admin.py +++ b/stages/admin.py @@ -215,13 +215,21 @@ class ContactInline(admin.StackedInline): class CorporationAdmin(admin.ModelAdmin): - list_display = ('name', 'short_name', 'pcode', 'city', 'ext_id') + list_display = ('name', 'short_name', 'pcode', 'city', 'district', 'ext_id') list_editable = ('short_name',) # Temporarily? list_filter = (('archived', ArchivedListFilter),) search_fields = ('name', 'street', 'pcode', 'city') ordering = ('name',) - fields = (('name', 'short_name'), 'parent', ('sector', 'typ', 'ext_id'), - 'street', ('pcode', 'city'), ('tel', 'email'), 'web', 'archived') + fields = ( + ('name', 'short_name'), + 'parent', + ('sector', 'typ', 'ext_id'), + 'street', + ('pcode', 'city', 'district'), + ('tel', 'email'), + 'web', + 'archived', + ) inlines = [ContactInline] def get_search_results(self, request, qs, term): diff --git a/stages/migrations/0016_populate_corp_district.py b/stages/migrations/0016_populate_corp_district.py new file mode 100644 index 0000000..44db0e7 --- /dev/null +++ b/stages/migrations/0016_populate_corp_district.py @@ -0,0 +1,26 @@ +from django.db import migrations + + +def populate_district(apps, schema_editor): + Corporation = apps.get_model('stages', 'Corporation') + + for corp in Corporation.objects.filter(district=''): + pcode = int(corp.pcode) + if pcode in range(2000, 2334) or pcode in range(2400, 2417) or pcode in [2523, 2525, 2616]: + corp.district = 'NE' + corp.save() + elif pcode in range(2336, 2365) or pcode in range(2714, 2719) or pcode in range(2800, 2955): + corp.district = 'JU' + corp.save() + elif pcode in [2333, 2346] or pcode in range(2500, 2521) or pcode in range(2532, 2763) or pcode in range(3000, 3865): + corp.district = 'BE' + corp.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0015_added_supervision_attest_field'), + ] + + operations = [migrations.RunPython(populate_district)]