X-Git-Url: https://harishankar.org/repos/?p=biaweb_qt.git;a=blobdiff_plain;f=main_window.py;fp=main_window.py;h=3e70b10f4c95f8e276972100ed9d649a797ff43f;hp=ff4f3cfc3480c7aba4f129f772a7f542375725fd;hb=5f4cc1e3f6bf2ffbf624dfc19d24c1b4eb2e15db;hpb=592798cba4152c0726edeb629da48cc8ac23a3a3 diff --git a/main_window.py b/main_window.py index ff4f3cf..3e70b10 100644 --- a/main_window.py +++ b/main_window.py @@ -18,7 +18,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # refresh the category list def repopulate_categories (self): recs = biaweb_db.get_categories (self.current_db) - if recs == False: + if not recs: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the categories") return @@ -30,7 +30,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # refresh the articles list def repopulate_articles (self, catid=None): recs = biaweb_db.get_articles (self.current_db, catid) - if recs == False: + if not recs: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the articles") return @@ -47,7 +47,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # when add article is triggered def onArticleAdd (self): - if self.current_db == None: + if self.current_db is None: PyQt4.QtGui.QMessageBox.critical (self, "Error", "Cannot create article. You need to create or open a website first") else: @@ -60,7 +60,28 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): cats = biaweb_db.get_categories (self.current_db) artdlg.populate_categories (cats, catid) - artdlg.exec_ () + + # if OK is pressed + if artdlg.exec_ () == PyQt4.QtGui.QDialog.Accepted: + title = str (artdlg.article_title.text ()).strip () + keywords = str (artdlg.keywords.text ()).strip () + summary = str (artdlg.summary.toPlainText ()).strip () + content = str (artdlg.content.toPlainText ()).strip () + catid, ok = artdlg.category.itemData (artdlg.category.currentIndex ()).toInt () + # if catid is not an integer then abort + if not ok: + return + rating = artdlg.rating.value () + stub = str (artdlg.stub.text ()).strip () + + ret = biaweb_db.create_article (self.current_db, title, summary, keywords, content, catid, + stub, rating) + if ret: + PyQt4.QtGui.QMessageBox.information (self, "Success", "Article successfully created") + self.repopulate_categories () + self.repopulate_articles (catid) + else: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in creating article") # when edit article is triggered def onArticleEdit (self): @@ -68,12 +89,36 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # when delete article is triggered def onArticleDelete (self): - pass + if self.current_db is None: + PyQt4.QtGui.QMessageBox.critical (self, "Error", + "Cannot delete article. You need to create or open a website first") + else: + # get the selected article + artid = self.get_selected_item_id (self.articles) + catid = self.get_selected_item_id (self.categories) + if artid is None: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "No article selected") + return + # get confirmation on delete + conf = PyQt4.QtGui.QMessageBox.question (self, "Confirm", + "Are you sure you wish to delete the selected article?", + PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No) + # confirmed + if conf == PyQt4.QtGui.QMessageBox.Yes: + ret = biaweb_db.delete_article (self.current_db, artid) + if not ret: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in deleting article") + else: + self.repopulate_articles (catid) # when category item is activated def onCategoryItemActivated (self): self.onCategoryEdit () + # when article item is activated + def onArticleItemActivated (self): + self.onArticleEdit () + # when item selection is changed in categories tree widget def onCategorySelectionChanged (self): if self.current_db is not None: @@ -82,14 +127,14 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # when configuration menu is activated def onConfiguration (self): - if self.current_db == None: + if self.current_db is None: PyQt4.QtGui.QMessageBox.critical (self, "Error", "Cannot edit configuration. You need to create or open a website first") else: dlg = scd.SiteConfigDialog (self) configs = biaweb_db.get_configuration (self.current_db) - if configs == False: + if not configs: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in reading configuration") return @@ -114,7 +159,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # database update flag = biaweb_db.set_configuration (self.current_db, site_title, site_url, keywords, description, copyright, num_rss, destination) - if flag == False: + if not flag: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating configuration") @@ -131,7 +176,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # category edit action def onCategoryEdit (self): # if no database is open - if self.current_db == None: + if self.current_db is None: PyQt4.QtGui.QMessageBox.critical (self, "Error", "Cannot edit category. You need to create or open a website first") # database is open @@ -144,7 +189,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): else: cat = biaweb_db.get_category (self.current_db, catid) # if the category cannot be retrieved from database - if cat == False: + if not cat: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error reading category") return @@ -162,8 +207,9 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): ret = biaweb_db.update_category (self.current_db, catid, category_name, category_desc, category_stub) - if ret == True: + if ret: PyQt4.QtGui.QMessageBox.information (self, "Success", "Category successfully updated") + self.repopulate_categories () else: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating category") @@ -171,9 +217,9 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # category delete action def onCategoryDelete (self): # if there is no database - if self.current_db == None: + if self.current_db is None: PyQt4.QtGui.QMessageBox.critical (self, "Error", - "Cannot edit category. You need to create or open a website first") + "Cannot delete category. You need to create or open a website first") else: # get the selected category catid = self.get_selected_item_id (self.categories) @@ -188,7 +234,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # if confirmed if flag == PyQt4.QtGui.QMessageBox.Yes: ret = biaweb_db.remove_category (self.current_db, catid) - if ret == False: + if not ret: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in deleting category") else: self.repopulate_categories () @@ -197,7 +243,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): # category add action def onCategoryAdd (self): # if there is no database - if self.current_db == None: + if self.current_db is None: PyQt4.QtGui.QMessageBox.critical (self, "Error", "Cannot add category. You need to create or open a website first") else: @@ -209,7 +255,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): cat_desc = str (dlg.category_desc.text ()).strip () cat_stub = str (dlg.category_stub.text ()).strip () ret = biaweb_db.create_category (self.current_db, cat_name, cat_desc, cat_stub) - if ret == True: + if ret: PyQt4.QtGui.QMessageBox.information (self, "Success", "Category successfully created") self.repopulate_categories () self.repopulate_articles () @@ -246,7 +292,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): self.setWindowTitle ("BiaWeb - " + self.current_db) flag = biaweb_db.create_db (self.current_db, site_title, site_url, keywords, description, copyright, num_rss, destination) - if flag == True: + if flag: PyQt4.QtGui.QMessageBox.information (self, "Success", "New site db successfully created") self.articles.clear ()