Example #1
0
    def customize_with_item(self):
        self.columns_tab_widget.clear()

        table_columns = []
        stype = self.item.stype

        for i in stype.get_definition('table'):
            table_columns.append(i.get('name'))

        exclude_columns = [
            '__search_type__', '__search_key__', '__tasks_count__',
            '__notes_count__', '__snapshots__'
        ]

        if self.item.type == 'snapshot':
            snapshot_obj = self.item.get_snapshot()
            if snapshot_obj:
                snapshot = snapshot_obj.get_snapshot()
                for column, val in snapshot.items():
                    if column not in exclude_columns:
                        if column in table_columns:
                            text_edit = QtGui.QTextEdit()
                            text_edit.setText(unicode(val))

                            column_title = None
                            for j in stype.get_definition('definition'):
                                if j.get('name') == column:
                                    column_title = j.get('title')

                            if not column_title:
                                column_title = gf.prettify_text(column)

                            self.columns_tab_widget.addTab(
                                text_edit, column_title)

        if self.item.type == 'sobject':
            sobject_obj = self.item.get_sobject()
            if sobject_obj:
                sobject = sobject_obj.get_info()
                for column, val in sobject.items():
                    if column not in exclude_columns:
                        if column in table_columns:
                            text_edit = QtGui.QTextEdit()
                            text_edit.setText(unicode(val))

                            column_title = None
                            for j in stype.get_definition('definition'):
                                if j.get('name') == column:
                                    column_title = j.get('title')

                            if not column_title:
                                column_title = gf.prettify_text(column)

                            self.columns_tab_widget.addTab(
                                text_edit, column_title)
    def fill_projects_to_menu(self):

        all_projects_dicts = []

        for project_name, project in env_inst.projects.iteritems():
            all_projects_dicts.append(project.info)

        projects_by_categories = gf.group_dict_by(all_projects_dicts, 'category')

        for cat_name, projects in projects_by_categories.iteritems():
            if cat_name:
                cat_name = gf.prettify_text(cat_name, True)
            else:
                cat_name = 'No Category'
            if cat_name != 'Template':
                category = self.menuProject.addMenu(cat_name)

            for e, project in enumerate(projects):
                if not project.get('is_template'):
                    project_code = project.get('code')

                    menu_action = QtGui.QAction(self)
                    menu_action.setCheckable(True)

                    if self.opened_projects:
                        if project_code in self.opened_projects:
                            menu_action.setChecked(True)
                    menu_action.setText(project.get('title'))
                    # Don't know why lambda did not work here
                    menu_action.triggered.connect(partial(self.create_project_dock, project_code))
                    category.addAction(menu_action)
Example #3
0
    def initial_fill(self):

        self.tree_widget.clear()

        all_projects_dicts = []

        for project_name, project in env_inst.projects.items():
            if project.get_code() != 'sthpw':
                all_projects_dicts.append(project.info)

        projects_by_categories = gf.group_dict_by(all_projects_dicts, 'category')

        for cat_name, projects in projects_by_categories.items():

            if cat_name:
                cat_name = gf.prettify_text(cat_name, True)
            else:
                cat_name = 'No Category'

            item_info = {
                'title': cat_name,
                'item_type': 'cat',
            }

            gf.add_project_item(
                tree_widget=self.tree_widget,
                projects=projects,
                item_info=item_info,
            )

        self.tree_widget.resizeColumnToContents(0)
Example #4
0
    def customize_with_multiple_items(self):

        self.multiple_mode = True

        self.current_active_tab = self.columns_tab_widget.currentIndex()

        self.columns_tab_widget.clear()
        self.columns_widgets = []

        self.set_dock_title(u'Multiple Editing Mode for: {0} items'.format(
            len(self.items)))

        table_columns = []
        stype = self.item.stype

        idx = self.definition_combo_box.currentIndex()
        current_definition = self.definition_combo_box.itemData(
            idx, QtCore.Qt.UserRole)
        if not current_definition:
            current_definition = 'table'

        for i in stype.get_definition(current_definition):
            table_columns.append(i.get('name'))

        exclude_columns = [
            '__search_type__', '__search_key__', '__tasks_count__',
            '__notes_count__', '__snapshots__'
        ]

        if self.item.type == 'snapshot':
            sobject = self.item.get_snapshot()
        else:
            sobject = self.item.get_sobject()

        if sobject:
            sobject_dict = sobject.get_info()
            for column, val in sobject_dict.items():
                if column not in exclude_columns:
                    if column in table_columns:
                        column_editor = Ui_tacticColumnEditorWidget(
                            sobject, column, stype, multiple_mode=True)

                        column_title = None
                        for j in stype.get_definition('definition'):
                            if j.get('name') == column:
                                column_title = j.get('title')

                        if not column_title:
                            column_title = gf.prettify_text(column)

                        self.columns_widgets.append(column_editor)
                        self.columns_tab_widget.addTab(
                            column_editor,
                            u'{0} | {1}'.format(column_title, len(self.items)))

            self.columns_tab_widget.setCurrentIndex(self.current_active_tab)
Example #5
0
    def customize_with_item(self):

        self.multiple_mode = False

        # TODO save tabs names with their stypes
        self.current_active_tab = self.columns_tab_widget.currentIndex()

        self.columns_tab_widget.clear()
        self.columns_widgets = []

        table_columns = []
        stype = self.item.stype

        idx = self.definition_combo_box.currentIndex()
        current_definition = self.definition_combo_box.itemData(
            idx, QtCore.Qt.UserRole)
        if not current_definition:
            current_definition = 'edit'

        for i in stype.get_definition(current_definition):
            table_columns.append(i.get('name'))

        exclude_columns = [
            '__search_type__', '__search_key__', '__tasks_count__',
            '__notes_count__', '__snapshots__', 'preview'
        ]

        if self.item.type == 'snapshot':
            sobject = self.item.get_snapshot()
        else:
            sobject = self.item.get_sobject()

        if sobject:
            self.set_dock_title(u'Editing Columns of: {0}'.format(
                sobject.get_title()))

            for column in table_columns:
                if column not in exclude_columns:
                    if column in table_columns:
                        column_editor = Ui_tacticColumnEditorWidget(
                            sobject, column, stype)

                        column_title = None
                        for j in stype.get_definition('definition'):
                            if j.get('name') == column:
                                column_title = j.get('title')

                        if not column_title:
                            column_title = gf.prettify_text(column)

                        self.columns_widgets.append(column_editor)
                        self.columns_tab_widget.addTab(column_editor,
                                                       column_title)

            self.columns_tab_widget.setCurrentIndex(self.current_active_tab)
Example #6
0
    def fill_definition_combo_box(self):

        self.definition_combo_box.clear()

        stype = self.item.stype

        if stype.info.get('definition'):
            current_idx = 0
            default_current_definition = 'table'

            for idx, definition in enumerate(stype.info['definition'].keys()):
                if definition == default_current_definition:
                    current_idx = idx
                self.definition_combo_box.addItem(gf.prettify_text(definition))
                self.definition_combo_box.setItemData(idx, definition,
                                                      QtCore.Qt.UserRole)

            self.definition_combo_box.setCurrentIndex(current_idx)