Esempio n. 1
0
    def _add_alias(self, alias_name, mapping):
        project_activity = Project.str_to_tuple(mapping)

        if project_activity is None:
            raise UsageError("The mapping must be in the format xxxx/yyyy")

        if self.settings.activity_exists(alias_name):
            existing_mapping = self.settings.get_aliases()[alias_name]
            confirm = self.view.overwrite_alias(alias_name, existing_mapping,
                                                False)

            if not confirm:
                return

        self.settings.add_alias(alias_name, project_activity[0],
                                project_activity[1])
        self.settings.write_config()

        self.view.alias_added(alias_name, project_activity)
Esempio n. 2
0
    def run(self):
        # 2 arguments, add a new alias
        if self.mode == self.MODE_ADD_ALIAS:
            self._add_alias(self.alias, self.mapping)
        # 1 argument, display the alias or the project id/activity id tuple
        elif self.mode == self.MODE_SHOW_MAPPING:
            mapping = Project.str_to_tuple(self.alias)

            if mapping is not None:
                for m in self.settings.search_aliases(mapping):
                    self.view.mapping_detail(m, self.projects_db.get(m[1][0]))
            else:
                self.mode = self.MODE_LIST_ALIASES

        # No argument, display the mappings
        if self.mode == self.MODE_LIST_ALIASES:
            for m in self.settings.search_mappings(self.alias):
                self.view.alias_detail(
                    m,
                    self.projects_db.get(m[1][0]) if m[1] is not None else None
                )