Skip to content

Commit

Permalink
add support of exporting Darwin Core (csv file format)
Browse files Browse the repository at this point in the history
  • Loading branch information
mutolisp committed Sep 7, 2016
1 parent e1bb480 commit e091093
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 62 deletions.
51 changes: 0 additions & 51 deletions src/NGenerator_cmd.py

This file was deleted.

Binary file modified src/db/twnamelist.db
Binary file not shown.
18 changes: 18 additions & 0 deletions src/genlist_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,24 @@ def genEngine(self, dbfile, dbtable, inputfile, oformat='docx', ofile_prefix='ou
conn.commit()
f.close()

# SELECT
query_all = '''
SELECT distinct n.* from sample s LEFT OUTER JOIN
(SELECT distinct id, family,
family_cname,
fullname, cname,
endemic, iucn_category, source
FROM %s) as n ON s.cname = n.cname;
''' % ( dbtable )
curs.execute(query_all)
dwc_list = curs.fetchall()
with codecs.open(ofile_prefix + '.csv', 'w+', 'utf-8') as f:
writer = csv.writer(f, delimiter='\t', doublequote=True, quoting=1, dialect='excel')
writer.writerow(['taxonID','family', 'familyVernacularName', 'scientificName', \
'vernacularName', 'isEndemic', 'iucnCategory', 'source'])
for i in range(0, len(dwc_list)):
writer.writerow(dwc_list[i])

with codecs.open(ofile_prefix +'.md', 'w+', 'utf-8') as f:
##### Generate HEADER #####
if species_type == 1:
Expand Down
33 changes: 22 additions & 11 deletions src/ui_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Form implementation generated from reading ui file 'ui/main_window.ui'
#
# Created by: PyQt5 UI code generator 5.5
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

Expand All @@ -11,9 +11,9 @@
class Ui_Window(object):
def setupUi(self, Window):
Window.setObjectName("Window")
Window.resize(643, 759)
Window.resize(641, 756)
self.treeWidget = QtWidgets.QTreeWidget(Window)
self.treeWidget.setGeometry(QtCore.QRect(20, 350, 601, 301))
self.treeWidget.setGeometry(QtCore.QRect(20, 370, 601, 301))
self.treeWidget.setMouseTracking(False)
self.treeWidget.setAlternatingRowColors(True)
self.treeWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
Expand All @@ -27,15 +27,16 @@ def setupUi(self, Window):
self.treeWidget.header().setMinimumSectionSize(5)
self.treeWidget.header().setSortIndicatorShown(True)
self.butDeleteSelection = QtWidgets.QPushButton(Window)
self.butDeleteSelection.setGeometry(QtCore.QRect(20, 660, 127, 32))
self.butDeleteSelection.setGeometry(QtCore.QRect(20, 680, 127, 32))
self.butDeleteSelection.setObjectName("butDeleteSelection")
self.butDeleteAll = QtWidgets.QPushButton(Window)
self.butDeleteAll.setGeometry(QtCore.QRect(150, 660, 131, 32))
self.butDeleteAll.setGeometry(QtCore.QRect(150, 680, 131, 32))
self.butDeleteAll.setObjectName("butDeleteAll")
self.gridLayoutWidget_2 = QtWidgets.QWidget(Window)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(20, 20, 601, 137))
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(20, 40, 601, 137))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.label_3 = QtWidgets.QLabel(self.gridLayoutWidget_2)
self.label_3.setObjectName("label_3")
Expand Down Expand Up @@ -84,7 +85,7 @@ def setupUi(self, Window):
self.butSlist.setObjectName("butSlist")
self.gridLayout_2.addWidget(self.butSlist, 3, 2, 1, 1)
self.tabWidget = QtWidgets.QTabWidget(Window)
self.tabWidget.setGeometry(QtCore.QRect(20, 170, 601, 151))
self.tabWidget.setGeometry(QtCore.QRect(20, 190, 601, 151))
font = QtGui.QFont()
font.setFamily("Arial")
font.setStyleStrategy(QtGui.QFont.PreferDefault)
Expand Down Expand Up @@ -121,6 +122,7 @@ def setupUi(self, Window):
self.gridLayoutWidget_5.setGeometry(QtCore.QRect(70, 10, 461, 71))
self.gridLayoutWidget_5.setObjectName("gridLayoutWidget_5")
self.gridLayout_5 = QtWidgets.QGridLayout(self.gridLayoutWidget_5)
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
self.gridLayout_5.setObjectName("gridLayout_5")
self.lineMergeChecklists = QtWidgets.QLineEdit(self.gridLayoutWidget_5)
self.lineMergeChecklists.setObjectName("lineMergeChecklists")
Expand All @@ -141,6 +143,7 @@ def setupUi(self, Window):
self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 10, 581, 113))
self.gridLayoutWidget_6.setObjectName("gridLayoutWidget_6")
self.gridLayout_6 = QtWidgets.QGridLayout(self.gridLayoutWidget_6)
self.gridLayout_6.setContentsMargins(0, 0, 0, 0)
self.gridLayout_6.setObjectName("gridLayout_6")
self.label_8 = QtWidgets.QLabel(self.gridLayoutWidget_6)
self.label_8.setObjectName("label_8")
Expand Down Expand Up @@ -187,6 +190,7 @@ def setupUi(self, Window):
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 40, 561, 61))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.lineCombineChecklists = QtWidgets.QLineEdit(self.horizontalLayoutWidget)
self.lineCombineChecklists.setObjectName("lineCombineChecklists")
Expand All @@ -201,6 +205,7 @@ def setupUi(self, Window):
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 30, 581, 41))
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.lineExcelFilePath = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.lineExcelFilePath.setText("")
Expand All @@ -213,6 +218,7 @@ def setupUi(self, Window):
self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 80, 201, 41))
self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2)
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_10 = QtWidgets.QLabel(self.horizontalLayoutWidget_2)
self.label_10.setObjectName("label_10")
Expand All @@ -232,9 +238,10 @@ def setupUi(self, Window):
self.checkBox.setObjectName("checkBox")
self.tabWidget.addTab(self.tab, "")
self.horizontalLayoutWidget_4 = QtWidgets.QWidget(Window)
self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(378, 670, 251, 51))
self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(378, 700, 251, 51))
self.horizontalLayoutWidget_4.setObjectName("horizontalLayoutWidget_4")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_4)
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.butGenerateSp = QtWidgets.QPushButton(self.horizontalLayoutWidget_4)
self.butGenerateSp.setObjectName("butGenerateSp")
Expand All @@ -243,8 +250,11 @@ def setupUi(self, Window):
self.butClose1.setObjectName("butClose1")
self.horizontalLayout_4.addWidget(self.butClose1)
self.label_7 = QtWidgets.QLabel(Window)
self.label_7.setGeometry(QtCore.QRect(20, 330, 81, 16))
self.label_7.setGeometry(QtCore.QRect(20, 350, 81, 16))
self.label_7.setObjectName("label_7")
self.label_13 = QtWidgets.QLabel(Window)
self.label_13.setGeometry(QtCore.QRect(20, 20, 121, 16))
self.label_13.setObjectName("label_13")

self.retranslateUi(Window)
self.tabWidget.setCurrentIndex(0)
Expand All @@ -253,7 +263,7 @@ def setupUi(self, Window):

def retranslateUi(self, Window):
_translate = QtCore.QCoreApplication.translate
Window.setWindowTitle(_translate("Window", "checklist generator"))
Window.setWindowTitle(_translate("Window", "checklister"))
self.treeWidget.setSortingEnabled(True)
self.treeWidget.headerItem().setText(0, _translate("Window", "Family"))
self.treeWidget.headerItem().setText(1, _translate("Window", "Name"))
Expand All @@ -265,7 +275,7 @@ def retranslateUi(self, Window):
self.butSelectTempFile.setText(_translate("Window", "Select file ..."))
self.label_6.setText(_translate("Window", "Temporary file for local names"))
self.label_2.setText(_translate("Window", "Export checklist file"))
self.comboDBselect.setItemText(0, _translate("Window", "Vascular plants of Taiwan (APG III)"))
self.comboDBselect.setItemText(0, _translate("Window", "Vascular plants of Taiwan (APG IV)"))
self.comboDBselect.setItemText(1, _translate("Window", "Vascular plants of Taiwan (Flora of Taiwan 2nd Edition)"))
self.comboDBselect.setItemText(2, _translate("Window", "Bird list of Taiwan (2014)"))
self.comboDBselect.setItemText(3, _translate("Window", "Plants of Japan (Ylist)"))
Expand Down Expand Up @@ -307,4 +317,5 @@ def retranslateUi(self, Window):
self.butGenerateSp.setText(_translate("Window", "Export"))
self.butClose1.setText(_translate("Window", "Close"))
self.label_7.setText(_translate("Window", "Checklist"))
self.label_13.setText(_translate("Window", "Checklister v0.3.x"))

2 changes: 2 additions & 0 deletions src/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def __init__(self, parent = None):
# enable completer to show matched species list
self.spCompleter()


# comparison actions
self.butCheckASelect.clicked.connect(self.selChecklistA)
self.butCheckBSelect.clicked.connect(self.selChecklistB)
Expand Down Expand Up @@ -274,6 +275,7 @@ def formatExcel(self):
except BaseException as e:
QMessageBox.information(self, "Warning", str(e))


def spCompleter(self):
try:
def setHighlighted(self, text):
Expand Down

0 comments on commit e091093

Please sign in to comment.