Commit 88cf7f6a authored by Michal Čihař's avatar Michal Čihař

Move getting linked repo to SubProject manager

parent fefca754
...@@ -119,6 +119,15 @@ class SubProjectManager(models.Manager): ...@@ -119,6 +119,15 @@ class SubProjectManager(models.Manager):
return self.all() return self.all()
return self.filter(project__in=projects) return self.filter(project__in=projects)
def get_linked(self, val):
'''
Returns subproject for linked repo.
'''
if not is_repo_link(val):
return None
project, subproject = val[10:].split('/', 1)
return self.get(slug=subproject, project__slug=project)
class TranslationManager(models.Manager): class TranslationManager(models.Manager):
def update_from_blob(self, subproject, code, path, force=False, request=None): def update_from_blob(self, subproject, code, path, force=False, request=None):
......
...@@ -62,7 +62,7 @@ from weblate.trans.util import ( ...@@ -62,7 +62,7 @@ from weblate.trans.util import (
is_plural, split_plural, join_plural, is_plural, split_plural, join_plural,
get_source, get_target, get_source, get_target,
is_translated, get_user_display, is_translated, get_user_display,
is_repo_link, get_linked_repo, is_repo_link,
) )
from weblate.trans.validators import ( from weblate.trans.validators import (
validate_repoweb, validate_repoweb,
...@@ -639,7 +639,7 @@ class SubProject(models.Model): ...@@ -639,7 +639,7 @@ class SubProject(models.Model):
''' '''
Returns subproject for linked repo. Returns subproject for linked repo.
''' '''
return get_linked_repo(self.repo) return SubProject.get_linked(self.repo)
@property @property
def git_repo(self): def git_repo(self):
......
...@@ -204,14 +204,3 @@ def is_repo_link(val): ...@@ -204,14 +204,3 @@ def is_repo_link(val):
Checks whethere repository is just a link for other one. Checks whethere repository is just a link for other one.
''' '''
return val.startswith('weblate://') return val.startswith('weblate://')
def get_linked_repo(val):
'''
Returns subproject for linked repo.
'''
if not is_repo_link(val):
return None
project, subproject = val[10:].split('/', 1)
from weblate.trans.models import SubProject
return SubProject.objects.get(slug=subproject, project__slug=project)
...@@ -67,7 +67,7 @@ def validate_repo(val): ...@@ -67,7 +67,7 @@ def validate_repo(val):
''' '''
from weblate.trans.models import SubProject from weblate.trans.models import SubProject
try: try:
repo = get_linked_repo(val) repo = SubProject.get_linked(val)
if repo is not None and repo.is_repo_link(): if repo is not None and repo.is_repo_link():
raise ValidationError(_('Can not link to linked repository!')) raise ValidationError(_('Can not link to linked repository!'))
except SubProject.DoesNotExist: except SubProject.DoesNotExist:
......
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