# Generate site dialog
import PyQt4
+import sys
import os
import os.path
import ui_generate_dialog
+import biaweb_db
import biaweb_exporter
class GenerateDialog (PyQt4.QtGui.QDialog, ui_generate_dialog.Ui_SiteGenerateDialog):
PyQt4.QtGui.QDialog.__init__ (self, master)
self.setupUi (self)
+ # update the status of required additional files to be copied to
+ # the destination directory and warn the user accordingly
+ self.set_required_files_status ()
+
# set the database
self.current_db = currentdb
+ # function to set the status message of the required additional files to be copied to
+ # the destination directory. If any required additional file is missing in the script
+ # path then warn the user to copy those files manually to the destination directory
+ def set_required_files_status (self):
+ search_script_path = os.path.join (sys.path[0], "search.py")
+ star_image_path = os.path.join (sys.path[0], "star.gif")
+ stargrey_image_path = os.path.join (sys.path[0], "star-grey.gif")
+
+ # if search.py exists in script directory
+ if os.path.exists (search_script_path):
+ self.status_search_py.setText ('<span style="color:darkgreen;">will be \
+ automatically copied to destination dir</span>')
+ else:
+ self.status_search_py.setText ('<span style="color:darkred;">cannot be found.\
+ You must copy it manually to cgi-bin</span>')
+
+ # if star.gif exists in script directory
+ if os.path.exists (star_image_path):
+ self.status_star_gif.setText ('<span style="color:darkgreen;">will be \
+ automatically copied to destination dir</span>')
+ else:
+ self.status_star_gif.setText ('<span style="color:darkred;">Cannot be found. \
+ You must copy it manually to destination dir</span')
+
+ # if star-grey.gif exists in script directory
+ if os.path.exists (stargrey_image_path):
+ self.status_stargrey_gif.setText ('<span style="color:darkgreen;">will be \
+ automatically copied to destination dir</span>')
+ else:
+ self.status_stargrey_gif.setText ('<span style="color:darkred;">cannot be found. \
+ You must copy it manually to destination dir</span')
+
# to return the list of items from a tree widget
def get_list_from_tree (self, treewidget):
lstfiles = []
# when site generate button is clicked
def onSiteGenerate (self):
+ # first check whether there are any articles in the website. If no articles
+ # are found, then website cannot be generated
+ arts = biaweb_db.get_articles (self.current_db)
+ # if no articles are found or cannot be retrieved
+ if arts == False or len (arts) == 0:
+ PyQt4.QtGui.QMessageBox.critical (self, "Error", "Cannot create website with no articles")
+ return
+
files_list = self.get_list_from_tree (self.additional_files)
folder_list = self.get_list_from_tree (self.additional_folders)
if self.fulltextindex.isChecked ():