Commit e0826295 authored by Michal Čihař's avatar Michal Čihař

Simplify checksums manipulation

parent e9e22700
...@@ -184,27 +184,24 @@ class UnitManager(models.Manager): ...@@ -184,27 +184,24 @@ class UnitManager(models.Manager):
writer_target) writer_target)
def search(self, query, source = True, context = True, translation = True, checksums = False): def search(self, query, source = True, context = True, translation = True, checksums = False):
ret = [] ret = set()
sample = self.all()[0] sample = self.all()[0]
if source or context: if source or context:
with trans.search.get_source_searcher() as searcher: with trans.search.get_source_searcher() as searcher:
if source: if source:
qp = qparser.QueryParser('source', trans.search.SourceSchema()) qp = qparser.QueryParser('source', trans.search.SourceSchema())
q = qp.parse(query) q = qp.parse(query)
for doc in searcher.docs_for_query(q): ret = ret.union([searcher.stored_fields(d)['checksum'] for d in searcher.docs_for_query(q)])
ret.append(searcher.stored_fields(doc)['checksum'])
if context: if context:
qp = qparser.QueryParser('context', trans.search.SourceSchema()) qp = qparser.QueryParser('context', trans.search.SourceSchema())
q = qp.parse(query) q = qp.parse(query)
for doc in searcher.docs_for_query(q): ret = ret.union([searcher.stored_fields(d)['checksum'] for d in searcher.docs_for_query(q)])
ret.append(searcher.stored_fields(doc)['checksum'])
if translation: if translation:
with trans.search.get_target_searcher(sample.translation.language.code) as searcher: with trans.search.get_target_searcher(sample.translation.language.code) as searcher:
qp = qparser.QueryParser('target', trans.search.TargetSchema()) qp = qparser.QueryParser('target', trans.search.TargetSchema())
q = qp.parse(query) q = qp.parse(query)
for doc in searcher.docs_for_query(q): ret = ret.union([searcher.stored_fields(d)['checksum'] for d in searcher.docs_for_query(q)])
ret.append(searcher.stored_fields(doc)['checksum'])
if checksums: if checksums:
return ret return ret
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment