Category creation completed
[biaweb_qt.git] / main_window.py
index 258e0d4..5902fbc 100644 (file)
@@ -3,15 +3,64 @@
 
 import PyQt4
 import ui_main_window
+import site_configuration_dialog as scd
+import category_dialog as catd
+import biaweb_db
 import sys
 
 class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
        def __init__ (self):
                PyQt4.QtGui.QMainWindow.__init__ (self)
                self.setupUi (self)
+               self.current_db = None
 
+       # category add action
+       def onCategoryAdd (self):
+               # if there is no database
+               if self.current_db == None:
+                       PyQt4.QtGui.QMessageBox.critical (self, "Error",
+                                                       "Cannot add category. You need to create or open a website first.")
+               else:
+                       # show the category add dialog
+                       dlg = catd.CategoryDialog (self)
+                       # if OK button is pressed
+                       if dlg.exec_ () == PyQt4.QtGui.QDialog.Accepted:
+                               cat_name = str (dlg.category_name.text ()).strip ()
+                               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:
+                                       PyQt4.QtGui.QMessageBox.information (self, "Success", "Category successfully created")
+                               else:
+                                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in creating category")
+
+       # file new menu is clicked
        def onFileNew (self):
-               print "New triggered"
+               # show the site configuration dialog to get the new site details
+               dlg = scd.SiteConfigDialog (self)
+               # if OK button is pressed
+               if dlg.exec_ () == PyQt4.QtGui.QDialog.Accepted:
+                       site_title = str (dlg.site_title.text ()).strip ()
+                       site_url = str (dlg.site_url.text ()).strip ()
+                       keywords = str (dlg.keywords.text ()).strip ()
+                       destination = str (dlg.destination.text ()).strip ()
+                       description = str (dlg.description.toPlainText ()).strip ()
+                       num_rss = dlg.num_rss_items.value ()
+                       copyright = str (dlg.copyright.text ()).strip ()
+
+                       savefilename = PyQt4.QtGui.QFileDialog.getSaveFileName (self, "Save site database to")
+
+                       if savefilename:
+                               self.current_db = str (savefilename)
+                               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:
+                                       PyQt4.QtGui.QMessageBox.information (self, "Success",
+                                                                                                                       "New site db successfully created")
+                               else:
+                                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "System or SQLite 3 error in creating database")
 
+       # file quit is clicked
        def onFileQuit (self):
                sys.exit (0)