From 89d859e3719ac5c1a2998b745b4efcc5861d24ba Mon Sep 17 00:00:00 2001 From: Josh Washburne Date: Fri, 5 Jan 2018 15:01:07 -0500 Subject: [PATCH] Jumped the gun--don't want a custom field. --- savepointradio/radio/fields.py | 35 ---------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 savepointradio/radio/fields.py diff --git a/savepointradio/radio/fields.py b/savepointradio/radio/fields.py deleted file mode 100644 index 76e39e4..0000000 --- a/savepointradio/radio/fields.py +++ /dev/null @@ -1,35 +0,0 @@ -import re -from unicodedata import normalize - -from django.db import models - - -class NaturalSortField(models.CharField): - """ - A custom model field specifically for storing a normalized unicode string, - with removed starting articles, for use in natural sorting. - - Code is a modified version of 'django-naturalsortfield' by Nathan Reynolds: - https://github.com/nathforge/django-naturalsortfield - """ - def __init__(self, for_field, **kwargs): - self.for_field = for_field - kwargs.setdefault('db_index', True) - kwargs.setdefault('editable', False) - kwargs.setdefault('max_length', 255) - super(NaturalSortField, self).__init__(**kwargs) - - def pre_save(self, model_instance, add): - return self.naturalize(getattr(model_instance, self.for_field)) - - def naturalize(self, string): - def naturalize_int_match(match): - return '%08d' % (int(match.group(0)),) - - string = normalize('NFKD', string).encode('ascii', 'ignore').decode('ascii') - string = string.lower() - string = string.strip() - string = re.sub(r'^(a|an|the)\s+', '', string) - string = re.sub(r'\d+', naturalize_int_match, string) - - return string