# -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 from oxtornado import actions from . import models from . import query import logging logger = logging.getLogger(__name__) def editTitle(data): ''' takes { id string sortname string } ''' response = {} ''' item = models.Item.get(data['id']) item.sortname = unicodedata.normalize('NFKD', data['sortname']) item.save() response['name'] = item.name response['sortname'] = item.sortname ''' return response actions.register(editTitle) def findTitles(data): ''' takes { query { conditions [{}] operator string } keys [string] sort [{}] range [int, int] } ''' response = {} #q = query.parse(data) q = { 'qs': models.Item.query, } if 'range' in data: q['range'] = data['range'] if 'position' in data: pass #ids = [i.id for i in q['qs'].options(load_only('id'))] #response['position'] = utils.get_positions(ids, [data['qs'][0].id])[0] print('fixme', data) elif 'positions' in data: #ids = [i.id for i in q['qs'].options(load_only('id'))] #response['positions'] = utils.get_positions(ids, data['positions']) response['positions'] = [] print('fixme', data) elif 'keys' in data: response['items'] = [] for i in q['qs'][q['range'][0]:q['range'][1]]: j = {} for key in (data['keys'] or ['title', 'sorttitle']): if key == 'title': j[key] = i.info.get(key) elif key == 'sorttitle': j[key] = i.sort[0].title response['items'].append(j) else: response['items'] = q['qs'].count() return response actions.register(findTitles)