def _show_article_list(self, window): from ljn.Model import Category from ljn.Repository import get_session id = self._get_selected_category_id(window) if id is not None: msg = ' (%s)' % Category.find_by_id(get_session(), id).name else: msg = '' window.list_dock_pane.setWindowTitle("Article List" + msg) window.list_layout.setCurrentWidget(window.article_list)
def _del_category(self): items = self.selectedItems() if not items: return category = items[0].category msg = 'Delete "%s"?' % category.name btn = QMessageBox.question(self, 'Delete category', msg, QMessageBox.Yes | QMessageBox.No) if btn == QMessageBox.No: return s = get_session() s.delete(Category.find_by_id(s, category.id)) s.commit() self.update_categories()
def update_articles(self, category_id=None): self.clear() self.addItem('..') if category_id is None: category_id = self.category_id if category_id is None: return self.category_id = category_id category = Category.find_by_id(get_session(), category_id) if category is not None: for a in category.articles: self.addItem(ArticleItem(a))
def _rename_category(self): items = self.selectedItems() if not items: return category = items[0].category text, result = QInputDialog.getText(self, 'Rename category', 'New category name:', text=category.name) if not result: return text = str(text) if not text or text == category.name: return s = get_session() c = Category.find_by_id(s, category.id) c.name = text s.commit() self.update_categories()