From fd2992c588c46cc9b1ec3def1c84b490ea3b1fc2 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Thu, 3 Sep 2015 00:52:20 +0200 Subject: [PATCH] add option to sort by number of annotations per layer --- pandora/config.indiancinema.jsonc | 8 ++++++++ pandora/item/models.py | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pandora/config.indiancinema.jsonc b/pandora/config.indiancinema.jsonc index 2d6f2bbb..5c0a2959 100644 --- a/pandora/config.indiancinema.jsonc +++ b/pandora/config.indiancinema.jsonc @@ -578,6 +578,14 @@ "sort": true, "value": {"layer": "subtitles", "type": "wordsperminute"} }, + { + "id": "numberofnotes", + "title": "Number of Notes", + "type": "integer", + "columnWidth": 60, + "sort": true, + "value": {"layer": "notes", "type": "length"} + }, { "id": "numberofdocuments", "title": "Number of Documents", diff --git a/pandora/item/models.py b/pandora/item/models.py index 736131da..b0ed9fdc 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -999,7 +999,10 @@ class Item(models.Model): set_value(s, name, value) elif sort_type in ('length', 'integer', 'time', 'float'): #can be length of strings or length of arrays, i.e. keywords - value = self.get(source) + if 'layer' in key.get('value', []): + value = self.annotations.filter(layer=key['value']['layer']).count() + else: + value = self.get(source) if isinstance(value, list): value = len(value) set_value(s, name, value)