From 39a9162b688a32e709ce73063c8f08aff17324cb Mon Sep 17 00:00:00 2001 From: Arthur Le Bars <arthur.le-bars@sb-roscoff.fr> Date: Tue, 18 May 2021 17:32:20 +0200 Subject: [PATCH] Fix tripal page organism picture --- constants.py | 2 ++ gga_init.py | 34 +++++++++++++++++++++++++++++----- speciesData.py | 2 +- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/constants.py b/constants.py index 9fa3876..8e2fcfc 100644 --- a/constants.py +++ b/constants.py @@ -7,6 +7,7 @@ ORG_PARAM_DESC_SEX = "sex" ORG_PARAM_DESC_STRAIN = "strain" ORG_PARAM_DESC_COMMON_NAME = "common_name" ORG_PARAM_DESC_ORIGIN = "origin" +ORG_PARAM_DESC_PICTURE_PATH = "tripal_species_picture" ORG_PARAM_DESC_MAIN_SPECIES = "main_species" ORG_PARAM_DATA = "data" ORG_PARAM_DATA_GENOME_PATH = "genome_path" @@ -23,6 +24,7 @@ ORG_PARAM_DATA_PERFORMED_BY = "performed_by" ORG_PARAM_SERVICES = "services" ORG_PARAM_SERVICES_BLAST = "blast" + # Constants used in the config yaml file CONF_ALL_HOSTNAME = "hostname" CONF_ALL_HTTP_PORT = "http_port" diff --git a/gga_init.py b/gga_init.py index 1ae0ce4..4be3f70 100755 --- a/gga_init.py +++ b/gga_init.py @@ -76,6 +76,21 @@ class DeploySpeciesStack(speciesData.SpeciesData): logging.debug("Using default banner for Tripal pages") self.config.pop(constants.CONF_TRIPAL_BANNER_PATH, None) + # Copy the organism picture for tripal if one was specified in the input species + if self.tripal_species_picture is not None: + if self.tripal_species_picture.endswith("png"): + species_picture_dest_path = os.path.join(self.species_dir, os.path.abspath("species.png")) + try: + os.symlink(os.path.abspath(self.tripal_species_picture, species_picture_dest_path)) + except FileNotFoundError: + logging.info("Specified organism picture ({0}) not found for {1}".format(self.tripal_species_picture, self.genus_upper + " " + self.species)) + elif self.tripal_species_picture.endswith("jpg"): + species_picture_dest_path = os.path.join(self.species_dir, os.path.abspath("species.jpg")) + try: + os.symlink(os.path.abspath(self.tripal_species_picture, species_picture_dest_path)) + except FileNotFoundError: + logging.info("Specified organism picture ({0}) not found for {1}".format(self.tripal_species_picture, self.genus_upper + " " + self.species)) + # Create nginx dirs and write/re-write nginx conf make_dirs(dir_paths_li=["./nginx", "./nginx/conf"]) try: @@ -111,11 +126,20 @@ class DeploySpeciesStack(speciesData.SpeciesData): # We need a dict holding all key (variables) - values that needs to be replaced in the template as our rendering dict # To do so we need both input file vars and config vars # Create input file vars dict - input_vars = {"genus": self.genus_lowercase, "Genus": self.genus_uppercase, "species": self.species, - "genus_species": self.genus_species, "genus_species_strain_sex": self.species_folder_name, - "genus_species_sex": "{0}_{1}_{2}".format(self.genus_lowercase, self.species.lower(), self.sex), - "strain": self.strain, "sex": self.sex, "Genus_species": self.genus_species[0].upper() + self.genus_species[1:], - "blast": self.blast} + + input_vars = {} + if self.tripal_species_picture is not None: + input_vars = {"genus": self.genus_lowercase, "Genus": self.genus_uppercase, "species": self.species, + "genus_species": self.genus_species, "genus_species_strain_sex": self.species_folder_name, + "genus_species_sex": "{0}_{1}_{2}".format(self.genus_lowercase, self.species.lower(), self.sex), + "strain": self.strain, "sex": self.sex, "Genus_species": self.genus_species[0].upper() + self.genus_species[1:], + "blast": self.blast, "tripal_species_picture": self.tripal_species_picture} + else: + input_vars = {"genus": self.genus_lowercase, "Genus": self.genus_uppercase, "species": self.species, + "genus_species": self.genus_species, "genus_species_strain_sex": self.species_folder_name, + "genus_species_sex": "{0}_{1}_{2}".format(self.genus_lowercase, self.species.lower(), self.sex), + "strain": self.strain, "sex": self.sex, "Genus_species": self.genus_species[0].upper() + self.genus_species[1:], + "blast": self.blast} if (len(self.config.keys()) == 0): logging.error("Empty config dictionary") # Merge the two dicts diff --git a/speciesData.py b/speciesData.py index 517ebe7..87c2015 100755 --- a/speciesData.py +++ b/speciesData.py @@ -91,7 +91,7 @@ class SpeciesData: if constants.ORG_PARAM_DESC_PICTURE_PATH in parameters_dictionary_description.keys(): self.tripal_species_picture = parameters_dictionary_services[constants.ORG_PARAM_DESC_PICTURE_PATH] else: - self.tripal_species_picture = "" + self.tripal_species_picture = None self.genus_lowercase = self.genus[0].lower() + self.genus[1:] self.genus_uppercase = self.genus[0].upper() + self.genus[1:] -- GitLab