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)
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)
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)
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)
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)