diff --git a/printing/templates.py b/printing/templates.py index c3c2ba3..9b5f385 100644 --- a/printing/templates.py +++ b/printing/templates.py @@ -1,13 +1,36 @@ #!/bin/bash /usr/scripts/python.sh # -*- coding: utf-8 -*- from gestion.affich_tools import coul, tableau +import importlib import time import sys -import gestion.annuaires_pg + +# Import inutile, mais on en a besoin pour que le +# script continue à fonctionner. +import gestion + +def try_import(lib): + """ + Cette fonction sert à faire de l'import soft : si l'import + crashe, par exemple, si le fichier de secrets ne peut être + lu par un apprenti, ça permet toujours d'utiliser ce + qui n'utilise pas l'import raté. + """ + if not isinstance(lib, unicode): + lib = lib.decode('utf-8') + try: + lib = importlib.import_module(lib) + except: + if sys.stdout.isatty(): + print (u"Impossible d'importer %s, c'est sans doute un problème de droits." % lib).encode('utf-8') + lib = None + return lib + +# Ici, on utilise le module gestion importé +gestion.whos = try_import(u"gestion.whos") +gestion.annuaires_pg = try_import("gestion.annuaires_pg") def prise_etat(chbre): - # Il faut écrire une vrai fonction pour ça au lieu d'utiliser celle du vieux whos cf Jeudi28Novembre2013 - import gestion.whos if chbre=="????": return coul("Chambre invalide", "violet") return gestion.whos.prise_etat(chbre)[0]