switch to base26 ids
This commit is contained in:
parent
addd1780f1
commit
bc118c67ee
9 changed files with 36 additions and 23 deletions
|
|
@ -21,6 +21,9 @@ def parseCondition(condition, user):
|
|||
'user': 'user__username',
|
||||
'place': 'places__id',
|
||||
'event': 'events__id',
|
||||
'in': 'start',
|
||||
'out': 'end',
|
||||
'id': 'public_id',
|
||||
}.get(k, k)
|
||||
if not k:
|
||||
k = 'name'
|
||||
|
|
@ -40,10 +43,8 @@ def parseCondition(condition, user):
|
|||
return ~q
|
||||
else:
|
||||
return q
|
||||
if k == 'id':
|
||||
v = ox.from32(v.split('/')[-1])
|
||||
elif k in ('places__id', 'events__id'):
|
||||
v = ox.from32(v)
|
||||
if k in ('places__id', 'events__id'):
|
||||
v = ox.from26(v)
|
||||
if isinstance(v, bool): #featured and public flag
|
||||
key = k
|
||||
elif k in ('lat', 'lng', 'area', 'south', 'west', 'north', 'east', 'matches',
|
||||
|
|
@ -56,7 +57,12 @@ def parseCondition(condition, user):
|
|||
}.get(op, ''))
|
||||
else:
|
||||
key = "%s%s" % (k, {
|
||||
'>': '__gt',
|
||||
'>=': '__gte',
|
||||
'<': '__lt',
|
||||
'<=': '__lte',
|
||||
'==': '__iexact',
|
||||
'=': '__icontains',
|
||||
'^': '__istartswith',
|
||||
'$': '__iendswith',
|
||||
}.get(op, '__icontains'))
|
||||
|
|
|
|||
|
|
@ -117,10 +117,14 @@ class Annotation(models.Model):
|
|||
self.hue = self.saturation = self.lightness = 0
|
||||
#FIXME: set volume here
|
||||
|
||||
def set_public_id(self):
|
||||
public_id = Annotation.objects.filter(item=self.item, id__lt=self.id).count()
|
||||
self.public_id = "%s/%s" % ( self.item.itemId, ox.to26(public_id))
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.id:
|
||||
super(Annotation, self).save(*args, **kwargs)
|
||||
self.public_id = '%s/%s' % (self.item.itemId, ox.to32(self.id))
|
||||
self.set_public_id()
|
||||
if self.duration != self.end - self.start:
|
||||
self.update_calculated_values()
|
||||
super(Annotation, self).save(*args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -45,11 +45,15 @@ def order_query(qs, sort):
|
|||
operator = e['operator']
|
||||
if operator != '-':
|
||||
operator = ''
|
||||
if e['key'].startswith('clip:'):
|
||||
key = {
|
||||
'in': 'start',
|
||||
'out': 'end',
|
||||
}.get(e['key'], e['key'])
|
||||
if key.startswith('clip:'):
|
||||
key = annotation_sort_key(e['key'][len('clip:'):])
|
||||
else:
|
||||
elif key not in ('start', 'end', 'value'):
|
||||
#key mgith need to be changed, see order_sort in item/views.py
|
||||
key = "item__sort__%s" % e['key']
|
||||
key = "item__sort__%s" % key
|
||||
order = '%s%s' % (operator, key)
|
||||
order_by.append(order)
|
||||
if order_by:
|
||||
|
|
@ -155,13 +159,12 @@ def removeAnnotations(request):
|
|||
'''
|
||||
response = json_response({})
|
||||
data = json.loads(request.POST['data'])
|
||||
ids = map(ox.from32, data['ids'])
|
||||
failed = []
|
||||
for a in models.Annotation.objects.filter(id__in=ids):
|
||||
for a in models.Annotation.objects.filter(public_id__in=data['ids']):
|
||||
if a.editable(request.user):
|
||||
a.delete()
|
||||
else:
|
||||
failed.append(a.get_id)
|
||||
failed.append(a.public_id)
|
||||
if failed:
|
||||
response = json_response(status=403, text='permission denied')
|
||||
response['data']['ids'] = failed
|
||||
|
|
@ -187,8 +190,7 @@ def editAnnotation(request):
|
|||
'''
|
||||
response = json_response({})
|
||||
data = json.loads(request.POST['data'])
|
||||
itemId, annotationId = data['id'].split('/')
|
||||
a = get_object_or_404_json(models.Annotation, pk=ox.from32(annotationId))
|
||||
a = get_object_or_404_json(models.Annotation, public_id=data['id'])
|
||||
if a.editable(request.user):
|
||||
a.value = data['value']
|
||||
a.start = data['in']
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue