Commit 047ac44b authored by Michal Čihař's avatar Michal Čihař

Cleanup unit commands

parent fdf98661
...@@ -36,30 +36,33 @@ class Command(WeblateCommand): ...@@ -36,30 +36,33 @@ class Command(WeblateCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
languages = Language.objects.all() languages = Language.objects.all()
# Optionally rebuild indices from scratch
if options['clean']: if options['clean']:
create_source_index() create_source_index()
for lang in languages: for lang in languages:
create_target_index(lang = lang.code) create_target_index(lang = lang.code)
base = self.get_units(*args, **options) units = self.get_units(*args, **options)
if base.count() == 0:
return
# Update source index
with FULLTEXT_INDEX.source_writer(buffered = False) as writer: with FULLTEXT_INDEX.source_writer(buffered = False) as writer:
for unit in base.values('checksum', 'source', 'context').iterator(): for unit in units.values('checksum', 'source', 'context').iterator():
Unit.objects.add_to_source_index( Unit.objects.add_to_source_index(
unit['checksum'], unit['checksum'],
unit['source'], unit['source'],
unit['context'], unit['context'],
writer) writer
)
# Update per language indices
for lang in languages: for lang in languages:
with FULLTEXT_INDEX.target_writer(lang = lang.code, buffered = False) as writer: with FULLTEXT_INDEX.target_writer(lang = lang.code, buffered = False) as writer:
for unit in base.filter(translation__language = language_units = units.filter(translation__language = lang).exclude(target = '')
lang).exclude(target = '').values('checksum', 'target').iterator(): for unit in language_units.values('checksum', 'target').iterator():
Unit.objects.add_to_target_index( Unit.objects.add_to_target_index(
unit['checksum'], unit['checksum'],
unit['target'], unit['target'],
writer) writer
)
...@@ -24,10 +24,8 @@ class Command(WeblateCommand): ...@@ -24,10 +24,8 @@ class Command(WeblateCommand):
help = 'updates checks for units' help = 'updates checks for units'
def handle(self, *args, **options): def handle(self, *args, **options):
base = self.get_units(*args, **options).filter(translated = True) units = self.get_units(*args, **options).filter(translated = True)
if base.count() == 0: # Invoke check for every unit
return for unit in units.iterator():
for unit in base.iterator():
unit.check() unit.check()
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