sort sort

This commit is contained in:
j 2011-10-11 19:44:45 +02:00
parent 31ca407a17
commit bfb7bd88ba
5 changed files with 13 additions and 0 deletions

2
README
View file

@ -33,6 +33,8 @@ you need python, bazaar, pip and virtualenv and several other python modules:
and run ./manage.py syncdb to populate the database and run ./manage.py syncdb to populate the database
you might want to load example configurations from fixutes. you might want to load example configurations from fixutes.
createdb --locale=C --encoding=UTF8 pandora
* RabbitMQ * RabbitMQ
For background tasks we use RabbitMQ, to install rabbitmq: For background tasks we use RabbitMQ, to install rabbitmq:
sudo apt-get install rabbitmq-server sudo apt-get install rabbitmq-server

View file

@ -9,8 +9,11 @@ from django.db import models
from ox.django import fields from ox.django import fields
import ox import ox
from item import utils
import managers import managers
def get_name_sort(name): def get_name_sort(name):
person, created = Person.objects.get_or_create(name=name) person, created = Person.objects.get_or_create(name=name)
sortname = unicodedata.normalize('NFKD', person.sortname) sortname = unicodedata.normalize('NFKD', person.sortname)
@ -19,6 +22,7 @@ def get_name_sort(name):
class Person(models.Model): class Person(models.Model):
name = models.CharField(max_length=200, unique=True) name = models.CharField(max_length=200, unique=True)
sortname = models.CharField(max_length=200) sortname = models.CharField(max_length=200)
sortsortname = models.CharField(max_length=200)
edited = models.BooleanField(default=False) edited = models.BooleanField(default=False)
numberofnames = models.IntegerField(default=0) numberofnames = models.IntegerField(default=0)
@ -37,6 +41,7 @@ class Person(models.Model):
if not self.sortname: if not self.sortname:
self.sortname = ox.get_sort_name(self.name) self.sortname = ox.get_sort_name(self.name)
self.sortname = unicodedata.normalize('NFKD', self.sortname) self.sortname = unicodedata.normalize('NFKD', self.sortname)
self.sortsortname = utils.sort_string(self.sortname)
self.numberofnames = len(self.name.split(' ')) self.numberofnames = len(self.name.split(' '))
super(Person, self).save(*args, **kwargs) super(Person, self).save(*args, **kwargs)

View file

@ -55,6 +55,7 @@ def order_query(qs, sort):
if operator != '-': if operator != '-':
operator = '' operator = ''
key = { key = {
'sortname': 'sortsortname'
}.get(e['key'], e['key']) }.get(e['key'], e['key'])
order = '%s%s' % (operator, key) order = '%s%s' % (operator, key)
order_by.append(order) order_by.append(order)

View file

@ -8,6 +8,8 @@ from django.db import models
import ox import ox
from item import utils
import managers import managers
def get_title_sort(title): def get_title_sort(title):
@ -18,6 +20,7 @@ def get_title_sort(title):
class Title(models.Model): class Title(models.Model):
title = models.CharField(max_length=1000, unique=True) title = models.CharField(max_length=1000, unique=True)
sorttitle = models.CharField(max_length=1000) sorttitle = models.CharField(max_length=1000)
sortsorttitle = models.CharField(max_length=1000)
edited = models.BooleanField(default=False) edited = models.BooleanField(default=False)
imdbId = models.CharField(max_length=7, blank=True) imdbId = models.CharField(max_length=7, blank=True)
@ -31,6 +34,7 @@ class Title(models.Model):
if not self.sorttitle: if not self.sorttitle:
self.sorttitle = ox.get_sort_title(self.title) self.sorttitle = ox.get_sort_title(self.title)
self.sorttitle = unicodedata.normalize('NFKD', self.sorttitle) self.sorttitle = unicodedata.normalize('NFKD', self.sorttitle)
self.sortsorttitle = utils.sort_string(self.sorttitle)
super(Title, self).save(*args, **kwargs) super(Title, self).save(*args, **kwargs)
def get_or_create(model, title, imdbId=None): def get_or_create(model, title, imdbId=None):

View file

@ -57,6 +57,7 @@ def order_query(qs, sort):
if operator != '-': if operator != '-':
operator = '' operator = ''
key = { key = {
'sorttitle': 'sortsorttitle'
}.get(e['key'], e['key']) }.get(e['key'], e['key'])
order = '%s%s' % (operator, key) order = '%s%s' % (operator, key)
order_by.append(order) order_by.append(order)