diff options
author | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2019-08-11 13:04:53 +0200 |
---|---|---|
committer | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2019-08-11 13:10:09 +0200 |
commit | b4c7f0823ee40a0b1e65ae84dea018ffad66a6f2 (patch) | |
tree | 8a1916a13cdc21548b7bd9ab46be38ee63338007 | |
parent | 84784fd0e2e0f063e2b34b95cf1c5d0b21f8ccd7 (diff) |
Provide a short_id that can be used by templates
-rw-r--r-- | lesana/collection.py | 16 | ||||
-rw-r--r-- | lesana/command.py | 3 | ||||
-rw-r--r-- | tests/test_collection.py | 1 |
3 files changed, 14 insertions, 6 deletions
diff --git a/lesana/collection.py b/lesana/collection.py index dc005bb..966741c 100644 --- a/lesana/collection.py +++ b/lesana/collection.py @@ -33,13 +33,17 @@ class Entry(object): label = self.collection.settings.get('entry_label', None) if label: t = jinja2.Template(label) - data = self.data - data['uid'] = self.uid - data['fname'] = self.fname - return t.render(**data) + return t.render(**self.get_data()) else: return self.uid + def get_data(self): + d = self.data.copy() + d['uid'] = self.uid + d['fname'] = self.fname + d['short_id'] = self.short_id + return d + def empty_data(self): data = '' for field in self.collection.settings['fields']: @@ -64,6 +68,10 @@ class Entry(object): def idterm(self): return "Q"+self.uid + @property + def short_id(self): + return self.uid[:8] + def validate(self): errors = [] valid = True diff --git a/lesana/command.py b/lesana/command.py index 7f683c8..dbad2d2 100644 --- a/lesana/command.py +++ b/lesana/command.py @@ -217,8 +217,7 @@ class Search(Command): print(template.render(entries=results)) else: for entry in results: - print("{suid}: {entry}".format( - suid=entry.uid[:8], + print("{entry}".format( entry=entry, )) diff --git a/tests/test_collection.py b/tests/test_collection.py index cc28a27..66f034a 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -169,6 +169,7 @@ class testEntries(unittest.TestCase): data = ruamel.yaml.safe_load(fp) entry = lesana.Entry(self.collection, data=data, fname=fname) self.assertEqual(entry.idterm, 'Q'+uid) + self.assertEqual(entry.short_id, uid[:8]) def test_write_new(self): new_entry = lesana.Entry(self.collection) |