X-Git-Url: https://harishankar.org/repos/?p=biaweb_qt.git;a=blobdiff_plain;f=main_window.py;fp=main_window.py;h=4d4afa35dd6e95cb04832aeb7e00212fce277856;hp=f917e760ade95d39b6f87245a06025819788d13a;hb=8c9cfa39545fd48c66d4e795a6d2d7faa396c6c9;hpb=3632ca174c91a33db13178bc19ad2f93473b52c0 diff --git a/main_window.py b/main_window.py index f917e76..4d4afa3 100644 --- a/main_window.py +++ b/main_window.py @@ -47,6 +47,11 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): dlg = scd.SiteConfigDialog (self) configs = biaweb_db.get_configuration (self.current_db) + if configs == False: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in reading configuration") + return + + # set the data dlg.site_url.setText (configs[0]) dlg.site_title.setText (configs[1]) dlg.keywords.setText (configs[2]) @@ -56,6 +61,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): dlg.copyright.setText (configs[6]) if (dlg.exec_ () == PyQt4.QtGui.QDialog.Accepted): + # if accepted, get the data and store in database site_title = str (dlg.site_title.text ()).strip () site_url = str (dlg.site_url.text ()).strip () keywords = str (dlg.keywords.text ()).strip () @@ -63,12 +69,62 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow): description = str (dlg.description.toPlainText ()).strip () num_rss = dlg.num_rss_items.value () copyright = str (dlg.copyright.text ()).strip () + # database update flag = biaweb_db.set_configuration (self.current_db, site_title, site_url, keywords, description, copyright, num_rss, destination) if flag == False: PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating configuration") + # function to get the category or article ID from current selected item in a tree widget + def get_selected_item_id (self, twidget): + selitems = twidget.selectedItems () + if selitems: + # get the first column data as integer + selindex = selitems[0].data(0, 0).toInt ()[0] + return selindex + else: + return None + + # category edit action + def onCategoryEdit (self): + # if no database is open + if self.current_db == None: + PyQt4.QtGui.QMessageBox.critical (self, "Error", + "Cannot edit category. You need to create or open a website first") + # database is open + else: + catid = self.get_selected_item_id (self.categories) + # if no category is selected, display an error + if catid is None: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "No category selected") + # category is selected + else: + cat = biaweb_db.get_category (self.current_db, catid) + # if the category cannot be retrieved from database + if cat == False: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error reading category") + return + + # set the data in the dialog + dlg = catd.CategoryDialog (self) + dlg.category_name.setText (cat[1]) + dlg.category_desc.setText (cat[2]) + dlg.category_stub.setText (cat[3]) + + # if accepted + if dlg.exec_ () == PyQt4.QtGui.QDialog.Accepted: + category_name = str (dlg.category_name.text ()).strip () + category_desc = str (dlg.category_desc.text ()).strip () + category_stub = str (dlg.category_stub.text ()).strip () + + ret = biaweb_db.update_category (self.current_db, + catid, category_name, category_desc, category_stub) + if ret == True: + PyQt4.QtGui.QMessageBox.information (self, "Success", "Category successfully updated") + else: + PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating category") + # category add action def onCategoryAdd (self):