faster update_find
This commit is contained in:
parent
ea9de0f311
commit
813e3b591b
2 changed files with 30 additions and 20 deletions
|
|
@ -11,13 +11,13 @@ import db
|
|||
import state
|
||||
|
||||
|
||||
def get_sort_name(name, sortname=None):
|
||||
def get_sort_name(name, sortname=None, commit=True):
|
||||
name = unicodedata.normalize('NFKD', name).strip()
|
||||
if name:
|
||||
person = Person.get(name)
|
||||
if not person:
|
||||
person = Person(name=name, sortname=sortname)
|
||||
person.save(False)
|
||||
person.save(update=False, commit=commit)
|
||||
sortname = unicodedata.normalize('NFKD', person.sortname)
|
||||
else:
|
||||
sortname = ''
|
||||
|
|
@ -37,7 +37,7 @@ class Person(db.Model):
|
|||
def get(cls, name):
|
||||
return cls.query.filter_by(name=name).first()
|
||||
|
||||
def save(self, update=True):
|
||||
def save(self, update=True, commit=True):
|
||||
from .models import Item, Find
|
||||
if not self.sortname:
|
||||
self.sortname = ox.get_sort_name(self.name)
|
||||
|
|
@ -55,7 +55,8 @@ class Person(db.Model):
|
|||
Find.query.filter_by(key='author', value=self.name).update({
|
||||
'sortvalue': self.sortname.lower()
|
||||
})
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
|
||||
def json(self, keys=None):
|
||||
r = {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue