예제 #1
0
def create_translation_project(language, project):
    if translation_project_dir_exists(language, project):
        try:
            translation_project, __ = TranslationProject.objects.all() \
                .get_or_create(language=language, project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #2
0
def create_translation_project(language, project):
    if translation_project_dir_exists(language, project):
        try:
            translation_project, __ = TranslationProject.objects.all() \
                .get_or_create(language=language, project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #3
0
파일: models.py 프로젝트: arashm/pootle
def create_translation_project(language, project):
    from pootle_app import project_tree
    if project_tree.translation_project_dir_exists(language, project):
        try:
            translation_project, created = TranslationProject.objects.all() \
                    .get_or_create(language=language, project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #4
0
파일: models.py 프로젝트: YaoDanLiu/pootle
def create_translation_project(language, project):
    from pootle_app import project_tree
    if project_tree.translation_project_dir_exists(language, project):
        try:
            translation_project, created = TranslationProject.objects.all() \
                .get_or_create(language=language, project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #5
0
파일: models.py 프로젝트: ta2-1/pootle
def create_translation_project(language, project):
    if translation_project_dir_exists(language, project):
        tps = project.translationproject_set.select_related(
            "data", "directory")
        try:
            translation_project, __ = tps.get_or_create(
                language=language, project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #6
0
def create_translation_project(language, project):
    if translation_project_dir_exists(language, project):
        tps = project.translationproject_set.select_related(
            "data", "directory")
        try:
            translation_project, __ = tps.get_or_create(language=language,
                                                        project=project)
            return translation_project
        except OSError:
            return None
        except IndexError:
            return None
예제 #7
0
    def can_be_inited_from_templates(self):
        """Returns `True` if the current translation project hasn't been
        saved yet and can be initialized from templates.
        """

        # This method checks if the current translation project directory
        # doesn't exist. So it won't work if the translation project is already
        # saved the database because the translation project directory is
        # auto-created in `save()` method.
        return (not self.is_template_project and self.templates_tp is not None
                and not translation_project_dir_exists(self.language,
                                                       self.project))
예제 #8
0
파일: models.py 프로젝트: haf/pootle
    def save(self, *args, **kwargs):
        created = self.id is None

        if created:
            from pootle_app.project_tree import translation_project_dir_exists

            template_tp = self.project.get_template_translationproject()
            initialize_from_templates = (
                not self.is_template_project
                and template_tp is not None
                and not translation_project_dir_exists(self.language,
                                                       self.project))

        self.directory = self.language.directory \
                                      .get_or_make_subdir(self.project.code)
        self.pootle_path = self.directory.pootle_path

        project_dir = self.project.get_real_path()
        from pootle_app.project_tree import get_translation_project_dir
        self.abs_real_path = get_translation_project_dir(
            self.language, project_dir, self.file_style, make_dirs=not
            self.directory.obsolete)

        super(TranslationProject, self).save(*args, **kwargs)

        if created:
            if initialize_from_templates:
                # We are adding a new TP and there are no files to import from
                # disk, so initialize the TP files using the templates TP ones.
                from pootle_app.project_tree import init_store_from_template

                template_stores = template_tp.stores.live().exclude(file="")

                for template_store in template_stores.iterator():
                    init_store_from_template(self, template_store)

            self.scan_files()

            # If this TP has no stores, cache should be updated forcibly.
            if self.stores.live().count() == 0:
                self.update_all_cache()

            # Create units from disk store
            for store in self.stores.live().iterator():
                changed = store.update_from_disk()

                # If there were changes stats will be refreshed anyway -
                # otherwise...  Trigger stats refresh for TP added from UI.
                # FIXME: This won't be necessary once #3547 is fixed.
                if not changed:
                    store.save(update_cache=True)
예제 #9
0
파일: models.py 프로젝트: ta2-1/pootle
    def can_be_inited_from_templates(self):
        """Returns `True` if the current translation project hasn't been
        saved yet and can be initialized from templates.
        """

        # This method checks if the current translation project directory
        # doesn't exist. So it won't work if the translation project is already
        # saved the database because the translation project directory is
        # auto-created in `save()` method.
        return (
            not self.is_template_project
            and self.templates_tp is not None
            and not translation_project_dir_exists(self.language,
                                                   self.project))
예제 #10
0
파일: models.py 프로젝트: arashm/pootle
    def save(self, *args, **kwargs):
        created = self.id is None

        if created:
            from pootle_app.project_tree import translation_project_dir_exists

            template_tp = self.project.get_template_translationproject()
            initialize_from_templates = (not self.is_template_project
                                         and template_tp is not None and
                                         not translation_project_dir_exists(
                                             self.language, self.project))

        self.directory = self.language.directory \
                                      .get_or_make_subdir(self.project.code)
        self.pootle_path = self.directory.pootle_path

        project_dir = self.project.get_real_path()
        from pootle_app.project_tree import get_translation_project_dir
        self.abs_real_path = get_translation_project_dir(
            self.language,
            project_dir,
            self.file_style,
            make_dirs=not self.directory.obsolete)

        super(TranslationProject, self).save(*args, **kwargs)

        if created:
            if initialize_from_templates:
                # We are adding a new TP and there are no files to import from
                # disk, so initialize the TP files using the templates TP ones.
                from pootle_app.project_tree import init_store_from_template

                for template_store in template_tp.stores.live().iterator():
                    init_store_from_template(self, template_store)

            self.scan_files()

            # Create units from disk store
            for store in self.stores.live().iterator():
                changed = store.update_from_disk()

                # If there were changes stats will be refreshed anyway - otherwise...
                # Trigger stats refresh for TP added from UI.
                # FIXME: This won't be necessary once #3547 is fixed.
                if not changed:
                    store.save(update_cache=True)
예제 #11
0
    def save(self, *args, **kwargs):
        created = self.id is None

        if created:
            from pootle_app.project_tree import translation_project_dir_exists

            template_tp = self.project.get_template_translationproject()
            initialize_from_templates = (
                not self.is_template_project
                and template_tp is not None
                and not translation_project_dir_exists(self.language,
                                                       self.project))

        self.directory = self.language.directory \
                                      .get_or_make_subdir(self.project.code)
        self.pootle_path = self.directory.pootle_path

        project_dir = self.project.get_real_path()
        from pootle_app.project_tree import get_translation_project_dir
        self.abs_real_path = get_translation_project_dir(
            self.language, project_dir, self.file_style, make_dirs=not
            self.directory.obsolete)

        super(TranslationProject, self).save(*args, **kwargs)

        if created:
            if initialize_from_templates:
                # We are adding a new TP and there are no files to import from
                # disk, so initialize the TP files using the templates TP ones.
                from pootle_app.project_tree import init_store_from_template

                template_stores = template_tp.stores.live().exclude(file="")

                for template_store in template_stores.iterator():
                    init_store_from_template(self, template_store)

                self.update_from_disk()