-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinsertdoc.py
More file actions
90 lines (76 loc) · 2.86 KB
/
Copy pathinsertdoc.py
File metadata and controls
90 lines (76 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from pymongo import MongoClient
import json
class InsertDocPage(QSplitter):
def __init__(self):
super(InsertDocPage,self).__init__()
self.dbname='test'
self.collname=''
#self.toolbar=QToolBar()
#self.toolbar.setIconSize(QSize(16,16))
#self.toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
#self.commit_act=self.toolbar.addAction(
# QIcon('../icon/save.svg'),
# self.tr('commit'))
#self.commit_act.triggered.connect(self.commit)
#self.splitter=QSplitter()
self.input_view=QWidget()
input_header=QWidget()
input_title=QLabel(self.tr("input inserted documents:"))
self.commit_btn=QToolButton()
self.commit_btn.setIcon(QIcon('../icon/save.svg'))
self.commit_btn.setText(self.tr('commit'))
self.commit_btn.setIconSize(QSize(16,16))
self.commit_btn.setToolButtonStyle(
Qt.ToolButtonTextBesideIcon)
self.commit_btn.clicked.connect(self.commit)
hbox=QHBoxLayout()
hbox.addWidget(input_title,1)
hbox.addWidget(self.commit_btn)
hbox.setMargin(0)
hbox.setSpacing(0)
input_header.setLayout(hbox)
self.docs_edit=QTextEdit()
vbox=QVBoxLayout()
vbox.addWidget(input_header)
vbox.addWidget(self.docs_edit,1)
vbox.setMargin(0)
vbox.setSpacing(0)
self.input_view.setLayout(vbox)
self.results_view=QWidget()
results_header=QLabel(self.tr("results:"))
self.results_edit=QTextEdit()
results_vbox=QVBoxLayout()
results_vbox.addWidget(results_header)
results_vbox.addWidget(self.results_edit,1)
results_vbox.setMargin(0)
results_vbox.setSpacing(0)
self.results_view.setLayout(results_vbox)
self.addWidget(self.input_view)
self.addWidget(self.results_view)
self.setOrientation(Qt.Vertical)
#vbox=QVBoxLayout()
#vbox.addWidget(self.toolbar)
#vbox.addWidget(self.splitter,1)
#vbox.setMargin(0)
#vbox.setSpacing(0)
#self.setLayout(vbox)
def set_db_and_coll(self,dbname,collname):
self.dbname=unicode(dbname)
self.collname=unicode(collname)
def commit(self):
print 'commit'
mongo =MongoClient()
text=unicode(self.docs_edit.toPlainText().toUtf8(),
'utf8','ignore')
#text=self.docs_edit.toPlainText()
print text
data=json.loads(text)
coll=mongo[self.dbname][self.collname]
if isinstance(data,dict):
result=coll.insert_one(data)
self.results_edit.setText(str(result.inserted_id))
else:
result=coll.insert_many(data)
self.results_edit.setText(str(result.inserted_ids))