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
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
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
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
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))
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)
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))
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)
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()