Skip to content

Commit

Permalink
Add overwrite option to pootle project command
Browse files Browse the repository at this point in the history
  • Loading branch information
ta2-1 committed Feb 1, 2017
1 parent 82e5dca commit 2695b69
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@
from django.core.management.base import BaseCommand, CommandError
from django.utils.lru_cache import lru_cache

from pootle.core.delegate import tp_tool as tp_tool_getter
from pootle_project.models import Project
from pootle_store.constants import SOURCE_WINS, POOTLE_WINS
from pootle_translationproject.models import TranslationProject
from pootle.core.delegate import tp_tool as tp_tool_getter


def get_project(project_code):
Expand Down Expand Up @@ -137,12 +138,14 @@ def handle(self, *args, **options):

for source_tp in tp_query:
target_tps = tp_tool.get_tps(target_project)
resolve_conflict = SOURCE_WINS if options['overwrite'] else POOTLE_WINS
try:
target_tp = target_tps.get(language__code=source_tp.language.code)
tp_tool.update_from_tp(
source_tp,
target_tp,
allow_add_and_obsolete=not options['translations'],
resolve_conflict=resolve_conflict,
)
except TranslationProject.DoesNotExist:
logging.warning(
Expand Down
16 changes: 11 additions & 5 deletions pootle/apps/pootle_translationproject/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,8 @@ def set_parents(self, directory, parent, project=None, update_cache=True):
subdir, subdir, project, update_cache=update_cache)

def update_children(self, source_dir, target_dir, update_cache=True,
allow_add_and_obsolete=True):
allow_add_and_obsolete=True,
resolve_conflict=SOURCE_WINS):
"""Update a target Directory and its children from a given
source Directory
"""
Expand All @@ -194,6 +195,7 @@ def update_children(self, source_dir, target_dir, update_cache=True,
store,
target_dir.child_stores.get(name=store.name),
allow_add_and_obsolete=allow_add_and_obsolete,
resolve_conflict=resolve_conflict
)
except target_dir.child_stores.model.DoesNotExist:
if allow_add_and_obsolete:
Expand All @@ -217,14 +219,18 @@ def update_children(self, source_dir, target_dir, update_cache=True,
store.makeobsolete()

def update_from_tp(self, source, target, update_cache=True,
allow_add_and_obsolete=True):
allow_add_and_obsolete=True,
resolve_conflict=SOURCE_WINS):
"""Update one TP from another"""
self.check_tp(source)
self.update_children(
source.directory, target.directory, update_cache=update_cache,
allow_add_and_obsolete=allow_add_and_obsolete)
allow_add_and_obsolete=allow_add_and_obsolete,
resolve_conflict=resolve_conflict
)

def update_store(self, source, target, allow_add_and_obsolete=True):
def update_store(self, source, target, allow_add_and_obsolete=True,
resolve_conflict=SOURCE_WINS):
"""Update a target Store from a given source Store"""
source_revision = target.data.max_unit_revision + 1
differ = StoreDiff(target, source, source_revision)
Expand All @@ -240,5 +246,5 @@ def update_store(self, source, target, allow_add_and_obsolete=True):
update_revision,
system,
SubmissionTypes.SYSTEM,
SOURCE_WINS,
resolve_conflict,
allow_add_and_obsolete)

0 comments on commit 2695b69

Please sign in to comment.