itkdb-gtk 0.0.12__py3-none-any.whl → 0.0.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of itkdb-gtk might be problematic. Click here for more details.
- itkdb_gtk/{getShipments.py → GetShipments.py} +9 -8
- itkdb_gtk/GlueWeight.py +8 -5
- itkdb_gtk/{gndVITests.py → GroundVITests.py} +41 -8
- itkdb_gtk/ITkDBlogin.py +1 -0
- itkdb_gtk/ITkDButils.py +6 -2
- itkdb_gtk/{sendShipments.py → SendShipments.py} +9 -7
- itkdb_gtk/ShowAttachments.py +136 -8
- itkdb_gtk/ShowComments.py +12 -3
- itkdb_gtk/ShowDefects.py +17 -5
- itkdb_gtk/UploadModuleIV.py +857 -0
- itkdb_gtk/{uploadMultipleTests.py → UploadMultipleTests.py} +13 -15
- itkdb_gtk/{uploadPetalInformation.py → UploadPetalInformation.py} +9 -9
- itkdb_gtk/{uploadTest.py → UploadTest.py} +87 -49
- itkdb_gtk/WireBondGui.py +863 -0
- itkdb_gtk/__init__.py +19 -11
- itkdb_gtk/dashBoard.py +68 -21
- itkdb_gtk/dbGtkUtils.py +189 -40
- itkdb_gtk/readAVSdata.py +8 -4
- itkdb_gtk/readGoogleSheet.py +1 -1
- itkdb_gtk/untrash_component.py +35 -0
- {itkdb_gtk-0.0.12.dist-info → itkdb_gtk-0.0.16.dist-info}/METADATA +16 -11
- itkdb_gtk-0.0.16.dist-info/RECORD +27 -0
- {itkdb_gtk-0.0.12.dist-info → itkdb_gtk-0.0.16.dist-info}/WHEEL +1 -1
- {itkdb_gtk-0.0.12.dist-info → itkdb_gtk-0.0.16.dist-info}/entry_points.txt +3 -1
- itkdb_gtk/checkComponent.py +0 -151
- itkdb_gtk/checkJSon.py +0 -56
- itkdb_gtk-0.0.12.dist-info/RECORD +0 -26
- {itkdb_gtk-0.0.12.dist-info → itkdb_gtk-0.0.16.dist-info}/top_level.txt +0 -0
|
@@ -4,12 +4,14 @@ import pathlib
|
|
|
4
4
|
import sys
|
|
5
5
|
|
|
6
6
|
try:
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
import itkdb_gtk
|
|
8
|
+
|
|
9
|
+
except ImportError:
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
12
|
+
sys.path.append(cwd.as_posix())
|
|
13
|
+
|
|
14
|
+
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils
|
|
13
15
|
import gi
|
|
14
16
|
import serial
|
|
15
17
|
|
|
@@ -125,8 +127,7 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
|
|
|
125
127
|
paned.add1(tree_view)
|
|
126
128
|
|
|
127
129
|
# The text view
|
|
128
|
-
|
|
129
|
-
paned.add2(frame)
|
|
130
|
+
paned.add2(self.message_panel.frame)
|
|
130
131
|
|
|
131
132
|
self.show_all()
|
|
132
133
|
|
itkdb_gtk/GlueWeight.py
CHANGED
|
@@ -7,11 +7,14 @@ from copy import deepcopy
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
|
|
9
9
|
try:
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
import itkdb_gtk
|
|
11
|
+
|
|
12
|
+
except ImportError:
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
15
|
+
sys.path.append(cwd.as_posix())
|
|
16
|
+
|
|
17
|
+
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils
|
|
15
18
|
|
|
16
19
|
import gi
|
|
17
20
|
gi.require_version("Gtk", "3.0")
|
|
@@ -4,14 +4,16 @@ import json
|
|
|
4
4
|
import sys
|
|
5
5
|
|
|
6
6
|
try:
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import itkdb_gtk
|
|
8
|
+
|
|
9
|
+
except ImportError:
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
12
|
+
sys.path.append(cwd.as_posix())
|
|
12
13
|
|
|
13
|
-
import
|
|
14
|
+
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils
|
|
14
15
|
|
|
16
|
+
import gi
|
|
15
17
|
gi.require_version("Gtk", "3.0")
|
|
16
18
|
from gi.repository import Gtk, Gio
|
|
17
19
|
|
|
@@ -61,8 +63,16 @@ class GroundingTest(dbGtkUtils.ITkDBWindow):
|
|
|
61
63
|
grid.attach(lbl, 0, 0, 1, 1)
|
|
62
64
|
|
|
63
65
|
self.SN = Gtk.Entry()
|
|
66
|
+
self.SN.connect("focus-in-event", self.on_sn_enter)
|
|
67
|
+
self.SN.connect("focus-out-event", self.on_sn_leave)
|
|
64
68
|
grid.attach(self.SN, 1, 0, 1, 1)
|
|
65
69
|
|
|
70
|
+
self.alias = Gtk.Label(label="")
|
|
71
|
+
grid.attach(self.alias, 2, 0, 1, 1)
|
|
72
|
+
|
|
73
|
+
self.stage = Gtk.Label(label="")
|
|
74
|
+
grid.attach(self.stage, 3, 0, 1, 1)
|
|
75
|
+
|
|
66
76
|
lbl = Gtk.Label(label="Institute")
|
|
67
77
|
lbl.set_xalign(0)
|
|
68
78
|
grid.attach(lbl, 0, 1, 1, 1)
|
|
@@ -91,13 +101,36 @@ class GroundingTest(dbGtkUtils.ITkDBWindow):
|
|
|
91
101
|
# Create the Notebook pages
|
|
92
102
|
self.create_test_box("Visual Inspection", "VISUAL_INSPECTION")
|
|
93
103
|
self.create_test_box("Grounding", "GROUNDING_CHECK")
|
|
104
|
+
self.create_test_box("Pipe bending", "BENDING120")
|
|
94
105
|
|
|
95
106
|
# The text view
|
|
96
|
-
frame
|
|
97
|
-
self.mainBox.pack_end(frame, True, True, 5)
|
|
107
|
+
self.mainBox.pack_end(self.message_panel.frame, True, True, 5)
|
|
98
108
|
|
|
99
109
|
self.show_all()
|
|
100
110
|
|
|
111
|
+
def on_sn_enter(self, entry, *args):
|
|
112
|
+
"""Enter in SN entry."""
|
|
113
|
+
self._sn = entry.get_text()
|
|
114
|
+
|
|
115
|
+
def on_sn_leave(self, entry, *args):
|
|
116
|
+
"""Leave SN entry."""
|
|
117
|
+
sn = entry.get_text()
|
|
118
|
+
if sn != self._sn:
|
|
119
|
+
self.query_db()
|
|
120
|
+
current_location = self.dbObject["currentLocation"]["code"]
|
|
121
|
+
dbGtkUtils.set_combo_iter(self.inst_cmb, current_location, 0)
|
|
122
|
+
|
|
123
|
+
stg = self.dbObject["currentStage"]["name"]
|
|
124
|
+
self.stage.set_text(stg)
|
|
125
|
+
|
|
126
|
+
alias = self.dbObject["alternativeIdentifier"]
|
|
127
|
+
self.alias.set_text(alias)
|
|
128
|
+
|
|
129
|
+
npages = self.notebook.get_n_pages()
|
|
130
|
+
for i in range(npages):
|
|
131
|
+
page = self.notebook.get_nth_page(i)
|
|
132
|
+
page.dict_dialog.factory_reset()
|
|
133
|
+
|
|
101
134
|
def create_test_box(self, label, test_name, institute="IFIC"):
|
|
102
135
|
"""Create and add to notebook a test dialog.
|
|
103
136
|
|
itkdb_gtk/ITkDBlogin.py
CHANGED
itkdb_gtk/ITkDButils.py
CHANGED
|
@@ -235,9 +235,13 @@ def set_object_stage(client, SN, stage):
|
|
|
235
235
|
def get_DB_component(client, SN):
|
|
236
236
|
"""Get ta component by its serial number."""
|
|
237
237
|
global db_response
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
try:
|
|
239
|
+
db_response = client.get('getComponent', json={'component': SN})
|
|
240
|
+
return db_response
|
|
240
241
|
|
|
242
|
+
except Exception as e:
|
|
243
|
+
db_response = str(e)
|
|
244
|
+
return None
|
|
241
245
|
|
|
242
246
|
def upload_test(client, data, attachments=None):
|
|
243
247
|
"""Upload a test to the DB.
|
|
@@ -7,11 +7,14 @@ import pathlib
|
|
|
7
7
|
import sys
|
|
8
8
|
|
|
9
9
|
try:
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
import itkdb_gtk
|
|
11
|
+
|
|
12
|
+
except ImportError:
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
15
|
+
sys.path.append(cwd.as_posix())
|
|
16
|
+
|
|
17
|
+
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils
|
|
15
18
|
|
|
16
19
|
import gi
|
|
17
20
|
import serial
|
|
@@ -125,8 +128,7 @@ class SendShipments(dbGtkUtils.ITkDBWindow):
|
|
|
125
128
|
paned.add1(tree_view)
|
|
126
129
|
|
|
127
130
|
# The text view
|
|
128
|
-
|
|
129
|
-
paned.add2(frame)
|
|
131
|
+
paned.add2(self.message_panel.frame)
|
|
130
132
|
|
|
131
133
|
self.show_all()
|
|
132
134
|
|
itkdb_gtk/ShowAttachments.py
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import sys
|
|
1
2
|
from pathlib import Path
|
|
3
|
+
|
|
2
4
|
try:
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
except
|
|
6
|
-
from
|
|
5
|
+
import itkdb_gtk
|
|
6
|
+
|
|
7
|
+
except ImportError:
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
10
|
+
sys.path.append(cwd.as_posix())
|
|
11
|
+
|
|
12
|
+
from itkdb_gtk import dbGtkUtils, ITkDButils
|
|
7
13
|
|
|
8
14
|
import gi
|
|
9
15
|
gi.require_version("Gtk", "3.0")
|
|
@@ -83,6 +89,8 @@ class ShowAttachments(Gtk.Dialog):
|
|
|
83
89
|
"""Creates the tree vew with the attachments."""
|
|
84
90
|
model = Gtk.ListStore(str, str, str, str)
|
|
85
91
|
self.tree = Gtk.TreeView(model=model)
|
|
92
|
+
self.tree.connect("button-press-event", self.button_pressed)
|
|
93
|
+
|
|
86
94
|
scrolled = Gtk.ScrolledWindow()
|
|
87
95
|
scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
|
|
88
96
|
scrolled.add(self.tree)
|
|
@@ -102,6 +110,122 @@ class ShowAttachments(Gtk.Dialog):
|
|
|
102
110
|
|
|
103
111
|
return scrolled
|
|
104
112
|
|
|
113
|
+
def button_pressed(self, tree, event):
|
|
114
|
+
"""Button clicked on top of attachment."""
|
|
115
|
+
# double click shows attachments
|
|
116
|
+
it = None
|
|
117
|
+
model = self.tree.get_model()
|
|
118
|
+
if event.button == 1 and event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS:
|
|
119
|
+
select = self.tree.get_selection()
|
|
120
|
+
model, it = select.get_selected()
|
|
121
|
+
if not it:
|
|
122
|
+
return
|
|
123
|
+
|
|
124
|
+
self.edit_attachment(model, it)
|
|
125
|
+
return
|
|
126
|
+
|
|
127
|
+
if event.button != 3:
|
|
128
|
+
return
|
|
129
|
+
|
|
130
|
+
# Create popup menu
|
|
131
|
+
select = self.tree.get_selection()
|
|
132
|
+
model, it = select.get_selected()
|
|
133
|
+
values = None
|
|
134
|
+
if it:
|
|
135
|
+
values = model[it]
|
|
136
|
+
|
|
137
|
+
else:
|
|
138
|
+
P = tree.get_path_at_pos(event.x, event.y)
|
|
139
|
+
if P:
|
|
140
|
+
it = model.get_iter(P[0])
|
|
141
|
+
values = model[it]
|
|
142
|
+
|
|
143
|
+
if not values:
|
|
144
|
+
return
|
|
145
|
+
|
|
146
|
+
if not it:
|
|
147
|
+
P = self.tree.get_path_at_pos(event.x, event.y)
|
|
148
|
+
if P:
|
|
149
|
+
it = model.get_iter(P[0])
|
|
150
|
+
|
|
151
|
+
if not it:
|
|
152
|
+
return
|
|
153
|
+
|
|
154
|
+
menu = Gtk.Menu()
|
|
155
|
+
item_edit = Gtk.MenuItem(label="Edit")
|
|
156
|
+
item_edit.connect("activate", self.on_edit_attachment, (model, it))
|
|
157
|
+
menu.append(item_edit)
|
|
158
|
+
|
|
159
|
+
item_show = Gtk.MenuItem(label="Show file")
|
|
160
|
+
item_show.connect("activate", self.on_show_file, (model, it))
|
|
161
|
+
menu.append(item_show)
|
|
162
|
+
|
|
163
|
+
menu.show_all()
|
|
164
|
+
menu.popup_at_pointer(event)
|
|
165
|
+
|
|
166
|
+
def edit_attachment(self, model, it):
|
|
167
|
+
"""Edit attachment at current row."""
|
|
168
|
+
values = model[it]
|
|
169
|
+
dlg = add_attachment_dialog()
|
|
170
|
+
dlg.fC.set_filename(values[3])
|
|
171
|
+
dlg.att_title.set_text(values[1])
|
|
172
|
+
dlg.att_desc.set_text(values[2])
|
|
173
|
+
rc = dlg.run()
|
|
174
|
+
if rc == Gtk.ResponseType.OK:
|
|
175
|
+
path = Path(dlg.fC.get_filename())
|
|
176
|
+
title = dlg.att_title.get_text()
|
|
177
|
+
desc = dlg.att_desc.get_text()
|
|
178
|
+
model.set_value(it, 0, path.name)
|
|
179
|
+
model.set_value(it, 1, title)
|
|
180
|
+
model.set_value(it, 2, desc)
|
|
181
|
+
model.set_value(it, 3, path.as_posix())
|
|
182
|
+
|
|
183
|
+
dlg.hide()
|
|
184
|
+
dlg.destroy()
|
|
185
|
+
|
|
186
|
+
def on_edit_attachment(self, item, data):
|
|
187
|
+
"""Test JSon."""
|
|
188
|
+
model, it = data
|
|
189
|
+
self.edit_attachment(model, it)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def on_show_file(self, item, data):
|
|
193
|
+
"""Test JSon."""
|
|
194
|
+
model, it = data
|
|
195
|
+
values = model[it]
|
|
196
|
+
sss = None
|
|
197
|
+
try:
|
|
198
|
+
with open(values[3], "tr", encoding="utf-8") as f:
|
|
199
|
+
sss = f.read()
|
|
200
|
+
|
|
201
|
+
except UnicodeDecodeError:
|
|
202
|
+
dbGtkUtils.complain("Error showing file", "File is not a text file")
|
|
203
|
+
return
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
dlg = Gtk.Dialog(title="Add Attachment",
|
|
207
|
+
transient_for=self,
|
|
208
|
+
flags=0)
|
|
209
|
+
dlg.add_buttons(Gtk.STOCK_OK, Gtk.ResponseType.OK)
|
|
210
|
+
dlg.set_size_request(300, 200)
|
|
211
|
+
area = dlg.get_content_area()
|
|
212
|
+
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
|
213
|
+
area.add(box)
|
|
214
|
+
|
|
215
|
+
scrolledwindow = Gtk.ScrolledWindow()
|
|
216
|
+
box.pack_start(scrolledwindow, False, True, 0)
|
|
217
|
+
|
|
218
|
+
scrolledwindow.set_hexpand(True)
|
|
219
|
+
scrolledwindow.set_vexpand(True)
|
|
220
|
+
textview = Gtk.TextView()
|
|
221
|
+
textview.get_buffer().set_text(sss)
|
|
222
|
+
scrolledwindow.add(textview)
|
|
223
|
+
dlg.show_all()
|
|
224
|
+
dlg.run()
|
|
225
|
+
dlg.hide()
|
|
226
|
+
dlg.destroy()
|
|
227
|
+
|
|
228
|
+
|
|
105
229
|
def add_attachment(self, *args):
|
|
106
230
|
"""Add Attachment button clicked."""
|
|
107
231
|
dlg = add_attachment_dialog()
|
|
@@ -123,15 +247,19 @@ class ShowAttachments(Gtk.Dialog):
|
|
|
123
247
|
def remove_attachment(self, *args):
|
|
124
248
|
"""Remove selected attachment."""
|
|
125
249
|
select = self.tree.get_selection()
|
|
126
|
-
model,
|
|
127
|
-
if
|
|
128
|
-
values = model[
|
|
250
|
+
model, it = select.get_selected()
|
|
251
|
+
if it:
|
|
252
|
+
values = model[it]
|
|
129
253
|
for a in self.attachments:
|
|
130
254
|
if a.path == values[3]:
|
|
131
255
|
rc = dbGtkUtils.ask_for_confirmation("Remove this attachment ?",
|
|
132
256
|
"{} - {}\n{}".format(a.title, a.desc, values[0]))
|
|
133
257
|
if rc:
|
|
134
258
|
self.attachments.remove(a)
|
|
135
|
-
model.remove(
|
|
259
|
+
model.remove(it)
|
|
136
260
|
|
|
137
261
|
break
|
|
262
|
+
|
|
263
|
+
if __name__ == "__main__":
|
|
264
|
+
SA = ShowAttachments("Test Attachments", None)
|
|
265
|
+
SA.run()
|
itkdb_gtk/ShowComments.py
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Shows comments."""
|
|
3
|
+
|
|
1
4
|
try:
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
import itkdb_gtk
|
|
6
|
+
|
|
7
|
+
except ImportError:
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
11
|
+
sys.path.append(cwd.as_posix())
|
|
12
|
+
|
|
13
|
+
from itkdb_gtk import dbGtkUtils
|
|
5
14
|
|
|
6
15
|
import gi
|
|
7
16
|
gi.require_version("Gtk", "3.0")
|
itkdb_gtk/ShowDefects.py
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
|
|
1
2
|
try:
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import itkdb_gtk
|
|
4
|
+
|
|
5
|
+
except ImportError:
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
cwd = Path(sys.argv[0]).parent.parent
|
|
9
|
+
sys.path.append(cwd.as_posix())
|
|
10
|
+
|
|
11
|
+
from itkdb_gtk import dbGtkUtils
|
|
5
12
|
|
|
6
13
|
import gi
|
|
7
14
|
gi.require_version("Gtk", "3.0")
|
|
@@ -10,10 +17,15 @@ from gi.repository import Gtk, Gio, Gdk
|
|
|
10
17
|
|
|
11
18
|
class ShowDefects(Gtk.Dialog):
|
|
12
19
|
"""Edit defects"""
|
|
13
|
-
|
|
20
|
+
|
|
21
|
+
def __init__(self, title, defects=None, parent=None):
|
|
14
22
|
"""Initialization."""
|
|
15
23
|
super().__init__(title=title, transient_for=parent)
|
|
16
|
-
|
|
24
|
+
if defects:
|
|
25
|
+
self.defects = [C for C in defects]
|
|
26
|
+
else:
|
|
27
|
+
self.defects = []
|
|
28
|
+
|
|
17
29
|
self.init_window()
|
|
18
30
|
|
|
19
31
|
def init_window(self):
|