Ensure configuration exists before reading it

Julien LepillerThu Nov 07 16:06:31+0100 2019

4dc6086

Ensure configuration exists before reading it

offlate/manager.py

4949
        except Exception:
5050
            with open(self.confdir + '/conf.json', 'w') as f:
5151
                f.write(json.dumps({}))
52+
                self.conf = {}
5253
5354
class ProjectManager:
5455
    def __init__(self):

168169
        return self.createProject(name, lang, system, info, callback)
169170
170171
    def isConfigured(self, system):
172+
        if not "Generic" in self.settings.conf:
173+
            self.settings.conf["Generic"] = {}
171174
        if system == TRANSLATION_PROJECT:
172175
            if not "TP" in self.settings.conf:
173176
                self.settings.conf["TP"] = {}
174177
            settings = self.settings.conf["TP"]
175178
            for s in self.settings.conf["Generic"].keys():
179+
                if not s in self.settings.conf["Generic"]:
180+
                    self.settings.conf["Generic"][s] = None
176181
                settings[s] = self.settings.conf["Generic"][s]
177182
            return TPProject.isConfigured(settings)
178183
        elif system == TRANSIFEX:

180185
                self.settings.conf["Transifex"] = {}
181186
            settings = self.settings.conf["Transifex"]
182187
            for s in self.settings.conf["Generic"].keys():
188+
                if not s in self.settings.conf["Generic"]:
189+
                    self.settings.conf["Generic"][s] = None
183190
                settings[s] = self.settings.conf["Generic"][s]
184191
            return TransifexProject.isConfigured(settings)
185192
        elif system == GITLAB:

187194
                self.settings.conf["Gitlab"] = {}
188195
            settings = self.settings.conf["Gitlab"]
189196
            for s in self.settings.conf["Generic"].keys():
197+
                if not s in self.settings.conf["Generic"]:
198+
                    self.settings.conf["Generic"][s] = None
190199
                settings[s] = self.settings.conf["Generic"][s]
191200
            return GitlabProject.isConfigured(settings)
192201
        else: