def build_directory_structure(self, sobject=None):
        import os
        repo = self.repositoryComboBox.itemData(
            self.repositoryComboBox.currentIndex())
        if sobject:
            sobject_class = tc.SObject(sobject, project=self.stype.project)
            self.sobject = sobject_class

        if self.stype.pipeline:

            paths = tc.get_dirs_with_naming(self.sobject.get_search_key(),
                                            None)

            all_paths = []

            if paths:
                if paths['versionless']:
                    all_paths.extend(paths['versionless'])
                if paths['versions']:
                    all_paths.extend(paths['versions'])

            if not repo:
                base_dirs = env_tactic.get_all_base_dirs()
                for key, val in base_dirs:
                    if val['value'][4]:
                        for path in all_paths:
                            abs_path = val['value'][0] + '/' + path
                            if not os.path.exists(gf.form_path(abs_path)):
                                os.makedirs(gf.form_path(abs_path))
            else:
                for path in all_paths:
                    abs_path = repo['value'][0] + '/' + path
                    if not os.path.exists(gf.form_path(abs_path)):
                        os.makedirs(gf.form_path(abs_path))
Example #2
0
    def build_directory_structure(self, sobject=None):
        import os
        repo = self.repositoryComboBox.itemData(
            self.repositoryComboBox.currentIndex())
        if sobject:
            sobject_class = tc.SObject(sobject, project=self.stype.project)
            self.sobject = sobject_class

        if self.stype.pipeline:
            current_pipeline = self.stype.pipeline.get(
                self.sobject.get_pipeline_code())
            workflow = self.stype.get_workflow()
            processes_list = current_pipeline.get_all_processes_names()
            sub_processes_list = []

            # getting sub-processes from workflow
            for process, process_info in current_pipeline.process.items():
                if process_info.get('type') == 'hierarchy':
                    child_pipeline = workflow.get_child_pipeline_by_process_code(
                        current_pipeline, process)
                    if child_pipeline:
                        sub_processes_list.extend(
                            child_pipeline.get_all_processes_names())

            if sub_processes_list:
                processes_list.extend(sub_processes_list)

            paths = tc.get_dirs_with_naming(self.sobject.get_search_key(),
                                            processes_list)

            all_paths = []

            if paths:
                if paths['versionless']:
                    all_paths.extend(paths['versionless'])
                if paths['versions']:
                    all_paths.extend(paths['versions'])

            if not repo:
                base_dirs = env_tactic.get_all_base_dirs()
                for key, val in base_dirs:
                    if val['value'][4]:
                        for path in all_paths:
                            abs_path = val['value'][0] + '/' + path
                            if not os.path.exists(gf.form_path(abs_path)):
                                os.makedirs(gf.form_path(abs_path))
            else:
                for path in all_paths:
                    abs_path = repo['value'][0] + '/' + path
                    if not os.path.exists(gf.form_path(abs_path)):
                        os.makedirs(gf.form_path(abs_path))
Example #3
0
    def create_control_buttons(self):
        self.addNewButton = QtGui.QPushButton('Create')
        self.addNewButton.setMaximumWidth(80)
        self.saveButton = QtGui.QPushButton('Save')
        self.saveButton.setMaximumWidth(80)
        self.cancelButton = QtGui.QPushButton('Cancel')
        self.cancelButton.setMaximumWidth(80)
        self.buildDirectoryButton = QtGui.QPushButton('Build Full Directory Structure')
        self.buildDirectoryButton.setIcon(gf.get_icon('database'))
        self.build_directory_checkbox = QtGui.QCheckBox('Build Full Directory Structure')
        self.build_directory_checkbox.setChecked(False)
        self.build_directory_checkbox.setIcon(gf.get_icon('database'))

        self.repositoryComboBox = QtGui.QComboBox()
        base_dirs = env_tactic.get_all_base_dirs()
        # Default repo states
        current_repo = gf.get_value_from_config(cfg_controls.get_checkin(), 'repositoryComboBox')
        for key, val in base_dirs:
            if val['value'][4]:
                self.repositoryComboBox.addItem(val['value'][1])
                self.repositoryComboBox.setItemData(self.repositoryComboBox.count() - 1, val)

        # Special for build all repos dirs
        self.repositoryComboBox.addItem('All Repos')

        if current_repo:
            self.repositoryComboBox.setCurrentIndex(current_repo)

        if self.tactic_widget.view == 'insert':
            self.main_layout.addWidget(self.build_directory_checkbox, 1, 0, 1, 1)
            self.main_layout.addWidget(self.repositoryComboBox, 1, 1, 1, 1)
            spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem, 1, 2, 1, 1)
            self.main_layout.addWidget(self.addNewButton, 1, 3, 1, 1)
            self.main_layout.addWidget(self.cancelButton, 1, 4, 1, 1)
            self.main_layout.setColumnStretch(1, 0)
        else:
            self.main_layout.addWidget(self.buildDirectoryButton, 1, 0, 1, 1)
            self.main_layout.addWidget(self.repositoryComboBox, 1, 1, 1, 1)
            spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem, 1, 2, 1, 1)
            self.main_layout.addWidget(self.saveButton, 1, 3, 1, 1)
            self.main_layout.addWidget(self.cancelButton, 1, 4, 1, 1)
            self.main_layout.setColumnStretch(1, 0)

        if self.item:
            if self.item.type != 'sobject':
                self.buildDirectoryButton.setHidden(True)
                self.repositoryComboBox.setHidden(True)
    def fill_repo_combo_box(self):

        self.repo_combo_box.clear()

        base_dirs = env_tactic.get_all_base_dirs()

        for key, val in base_dirs:
            if val['value'][4]:
                self.repo_combo_box.addItem(val['value'][1])
                self.repo_combo_box.setItemData(self.repo_combo_box.count() - 1, val)

        current_repo = gf.get_value_from_config(cfg_controls.get_checkin(), 'repositoryComboBox')

        if current_repo:
            self.repo_combo_box.setCurrentIndex(current_repo)
    def fill_repo_tree_widget(self, exlude_list=None):

        self.repos_tree_widget.clear()

        if not exlude_list:
            exlude_list = []

        base_dirs = env_tactic.get_all_base_dirs()

        # Default repo states
        for key, val in base_dirs:
            if val['value'][4] and val['value'][3] in exlude_list:
                root_item = QtGui.QTreeWidgetItem()
                root_item.setText(0, val['value'][1])
                root_item.setData(0, QtCore.Qt.UserRole, val)

                self.repos_tree_widget.addTopLevelItem(root_item)
    def add_item_to_watch(self, sobject_item):
        # checking if watch folder exists
        watch_dict = self.get_watch_dict_by_skey(sobject_item.get_search_key())
        all_folders_exists = True
        base_dirs = env_tactic.get_all_base_dirs()

        for key, val in base_dirs:
            if val['value'][4] and val['value'][3] in watch_dict['rep']:
                    abs_path = u'{0}/{1}'.format(val['value'][0], watch_dict['path'])
                    if not os.path.exists(gf.form_path(abs_path)):
                        all_folders_exists = False
                        dl.warning('Folders structure for: {0} is not created. '
                                   'Watch will be ignored.'.format(abs_path),
                                   group_id='watch_folders_ui')

        if all_folders_exists:
            self.watched_items.add(sobject_item)
            self.fill_watch_folders_tree_widget()
    def fill_repo_combo_box(self, exlude_list=None):

        self.repo_combo_box.clear()

        if not exlude_list:
            exlude_list = []

        base_dirs = env_tactic.get_all_base_dirs()

        # Default repo states
        for key, val in base_dirs:
            if val['value'][4] and val['value'][3] not in exlude_list:
                self.repo_combo_box.addItem(val['value'][1])
                self.repo_combo_box.setItemData(self.repo_combo_box.count() - 1, val)

        self.repo_combo_box.addItem('All Repos')

        current_repo = gf.get_value_from_config(cfg_controls.get_checkin(), 'repositoryComboBox')

        if current_repo:
            self.repo_combo_box.setCurrentIndex(current_repo)