itkdb-gtk 0.10.10.dev8__py3-none-any.whl → 0.11.0__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/CreateShipments.py +4 -2
- itkdb_gtk/GetShipments.py +43 -23
- itkdb_gtk/GlueWeight.py +34 -50
- itkdb_gtk/ITkDButils.py +2 -2
- itkdb_gtk/PanelVisualInspection.py +4 -3
- itkdb_gtk/PetalReceptionTests.py +6 -4
- itkdb_gtk/UploadMultipleTests.py +72 -63
- itkdb_gtk/UploadTest.py +4 -2
- itkdb_gtk/VisualInspection.py +5 -5
- itkdb_gtk/WireBondGui.py +32 -1
- itkdb_gtk/__init__.py +1 -1
- itkdb_gtk/dashBoard.py +42 -19
- {itkdb_gtk-0.10.10.dev8.dist-info → itkdb_gtk-0.11.0.dist-info}/METADATA +1 -1
- itkdb_gtk-0.11.0.dist-info/RECORD +28 -0
- {itkdb_gtk-0.10.10.dev8.dist-info → itkdb_gtk-0.11.0.dist-info}/WHEEL +1 -1
- itkdb_gtk-0.10.10.dev8.dist-info/RECORD +0 -28
- {itkdb_gtk-0.10.10.dev8.dist-info → itkdb_gtk-0.11.0.dist-info}/entry_points.txt +0 -0
- {itkdb_gtk-0.10.10.dev8.dist-info → itkdb_gtk-0.11.0.dist-info}/top_level.txt +0 -0
itkdb_gtk/CreateShipments.py
CHANGED
|
@@ -41,7 +41,7 @@ class CreateShipments(dbGtkUtils.ITkDBWindow):
|
|
|
41
41
|
self.attachment = None
|
|
42
42
|
global gtk_runs
|
|
43
43
|
if gtk_runs:
|
|
44
|
-
super().__init__(session=session, title="
|
|
44
|
+
super().__init__(session=session, title="Create Shipment",
|
|
45
45
|
help_link=help_link, gtk_runs=gtk_runs)
|
|
46
46
|
self.init_window()
|
|
47
47
|
|
|
@@ -358,6 +358,8 @@ class CreateShipments(dbGtkUtils.ITkDBWindow):
|
|
|
358
358
|
def main():
|
|
359
359
|
"""Main entry."""
|
|
360
360
|
# main entry of the program
|
|
361
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch"
|
|
362
|
+
|
|
361
363
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
362
364
|
client = dlg.get_client()
|
|
363
365
|
if client is None:
|
|
@@ -366,7 +368,7 @@ def main():
|
|
|
366
368
|
sys.exit()
|
|
367
369
|
|
|
368
370
|
client.user_gui = dlg
|
|
369
|
-
IS = CreateShipments(client)
|
|
371
|
+
IS = CreateShipments(client, help_link="{}/createShipment.html".format(HELP_LINK))
|
|
370
372
|
IS.set_accept_focus(True)
|
|
371
373
|
IS.present()
|
|
372
374
|
IS.connect("destroy", Gtk.main_quit)
|
itkdb_gtk/GetShipments.py
CHANGED
|
@@ -136,6 +136,12 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
|
|
|
136
136
|
btn.connect("clicked", self.receive_items)
|
|
137
137
|
grid.attach(btn, 2, 3, 1, 1)
|
|
138
138
|
|
|
139
|
+
self.check_all = Gtk.ToggleButton(label="Check A_ll", use_underline=True)
|
|
140
|
+
self.check_all.set_active(1)
|
|
141
|
+
self.check_all.set_tooltip_text("If toggled, items will need to be `received`\none by one by unchecking the check box.")
|
|
142
|
+
grid.attach(self.check_all, 3, 3, 1, 1)
|
|
143
|
+
|
|
144
|
+
|
|
139
145
|
# Add a Separator
|
|
140
146
|
self.mainBox.pack_start(Gtk.Separator(orientation=Gtk.Orientation.VERTICAL), False, True, 0)
|
|
141
147
|
|
|
@@ -186,14 +192,14 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
|
|
|
186
192
|
try:
|
|
187
193
|
txt = find_vtrx(self.session, txt)
|
|
188
194
|
except ValueError as e:
|
|
189
|
-
self.write_message("Error: {}".format(e))
|
|
195
|
+
self.write_message("Error: {}\n".format(e))
|
|
190
196
|
return
|
|
191
197
|
|
|
192
198
|
# search code in the list
|
|
193
199
|
if self.store:
|
|
194
200
|
lv_iter = self.store.get_iter_first()
|
|
195
201
|
while lv_iter:
|
|
196
|
-
if
|
|
202
|
+
if self.store.get_value(lv_iter, 0) == txt:
|
|
197
203
|
self.write_message("...found\n")
|
|
198
204
|
self.store[lv_iter][3] = False
|
|
199
205
|
|
|
@@ -275,7 +281,7 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
|
|
|
275
281
|
valid_sender = True
|
|
276
282
|
if self.institute is not None:
|
|
277
283
|
valid_sender = s['sender']['code'] == self.institute
|
|
278
|
-
|
|
284
|
+
|
|
279
285
|
if s["recipient"]["code"] == self.recipient and valid_sender:
|
|
280
286
|
store = self.get_tree_view_model()
|
|
281
287
|
cmb_store.append([s['name'], s['id']])
|
|
@@ -300,34 +306,46 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
|
|
|
300
306
|
else:
|
|
301
307
|
self.cmb_shipment.set_active(-1)
|
|
302
308
|
self.cmb_shipment.get_child().set_text("")
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
309
|
+
self.tree.set_model(Gtk.ListStore(str, str, str, bool))
|
|
310
|
+
|
|
311
|
+
def mark_all_as_delivered(self):
|
|
312
|
+
"""Mark all items in current shipment as delivered."""
|
|
313
|
+
if self.store is None:
|
|
314
|
+
return
|
|
315
|
+
|
|
316
|
+
lv_iter = self.store.get_iter_first()
|
|
317
|
+
while lv_iter:
|
|
318
|
+
val = self.store[lv_iter][3]
|
|
319
|
+
self.store[lv_iter][3] = not val
|
|
320
|
+
lv_iter = self.store.iter_next(lv_iter)
|
|
306
321
|
|
|
307
322
|
def receive_items(self, *args):
|
|
308
323
|
"""Receive shipment items."""
|
|
309
324
|
data = {}
|
|
310
325
|
names = {}
|
|
326
|
+
if not self.store:
|
|
327
|
+
self.write_message("Empty list of items.\n")
|
|
328
|
+
return
|
|
311
329
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
lv_iter = self.store.get_iter_first()
|
|
315
|
-
while lv_iter:
|
|
316
|
-
shpmnt = self.store.get_value(lv_iter, 2)
|
|
317
|
-
if shpmnt not in data:
|
|
318
|
-
data[shpmnt] = create_shipment_status(shpmnt)
|
|
319
|
-
names[shpmnt] = self.store.get_value(lv_iter, 4)
|
|
330
|
+
if not self.check_all.get_active():
|
|
331
|
+
self.mark_all_as_delivered()
|
|
320
332
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
333
|
+
# self.store is the model of the tree view
|
|
334
|
+
lv_iter = self.store.get_iter_first()
|
|
335
|
+
while lv_iter:
|
|
336
|
+
shpmnt = self.store.get_value(lv_iter, 2)
|
|
337
|
+
if shpmnt not in data:
|
|
338
|
+
data[shpmnt] = create_shipment_status(shpmnt)
|
|
339
|
+
names[shpmnt] = self.store.get_value(lv_iter, 4)
|
|
340
|
+
|
|
341
|
+
item = {
|
|
342
|
+
"code": self.store[lv_iter][5],
|
|
343
|
+
"delivered": not self.store[lv_iter][3]
|
|
344
|
+
}
|
|
345
|
+
data[shpmnt]["shipmentItems"].append(item)
|
|
326
346
|
|
|
327
|
-
|
|
347
|
+
lv_iter = self.store.iter_next(lv_iter)
|
|
328
348
|
|
|
329
|
-
else:
|
|
330
|
-
self.write_message("Empty list of items.\n")
|
|
331
349
|
|
|
332
350
|
for oid, S in data.items():
|
|
333
351
|
# Check that all items are there
|
|
@@ -507,6 +525,8 @@ def create_shipment_status(shpmnt):
|
|
|
507
525
|
|
|
508
526
|
def main():
|
|
509
527
|
"""Main entry."""
|
|
528
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/receiveShipments.html"
|
|
529
|
+
|
|
510
530
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
511
531
|
client = dlg.get_client()
|
|
512
532
|
if client is None:
|
|
@@ -515,7 +535,7 @@ def main():
|
|
|
515
535
|
sys.exit()
|
|
516
536
|
|
|
517
537
|
client.user_gui = dlg
|
|
518
|
-
IS = ReceiveShipments(client)
|
|
538
|
+
IS = ReceiveShipments(client, help_link=HELP_LINK)
|
|
519
539
|
IS.set_accept_focus(True)
|
|
520
540
|
IS.present()
|
|
521
541
|
IS.connect("destroy", Gtk.main_quit)
|
itkdb_gtk/GlueWeight.py
CHANGED
|
@@ -8,13 +8,14 @@ from pathlib import Path
|
|
|
8
8
|
|
|
9
9
|
try:
|
|
10
10
|
import itkdb_gtk
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
except ImportError:
|
|
13
|
-
from pathlib import Path
|
|
14
13
|
cwd = Path(__file__).parent.parent
|
|
15
14
|
sys.path.append(cwd.as_posix())
|
|
16
15
|
|
|
17
|
-
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils
|
|
16
|
+
from itkdb_gtk import dbGtkUtils, ITkDBlogin, ITkDButils, UploadMultipleTests
|
|
17
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch"
|
|
18
|
+
|
|
18
19
|
|
|
19
20
|
import gi
|
|
20
21
|
gi.require_version("Gtk", "3.0")
|
|
@@ -83,18 +84,17 @@ def remove_defaul_keys(data, default_value=-9999):
|
|
|
83
84
|
return data
|
|
84
85
|
|
|
85
86
|
|
|
86
|
-
class GlueWeight(
|
|
87
|
+
class GlueWeight(dbGtkUtils.ITkDBWindow):
|
|
87
88
|
"""Upluead Glue Weight test."""
|
|
88
89
|
|
|
89
90
|
def __init__(self, session, ifile=None, help_link=None):
|
|
90
91
|
"""Initialization.
|
|
91
|
-
|
|
92
|
+
|
|
92
93
|
Args:
|
|
93
94
|
session: ITkDB session_
|
|
94
95
|
ifile (optional): Input file. Defaults to None.
|
|
95
96
|
|
|
96
97
|
"""
|
|
97
|
-
global gtk_runs
|
|
98
98
|
self.ifile = ifile
|
|
99
99
|
self.session = session
|
|
100
100
|
self.modules = []
|
|
@@ -112,34 +112,24 @@ class GlueWeight(Gtk.Window):
|
|
|
112
112
|
self.skeleton = ITkDButils.get_test_skeleton(
|
|
113
113
|
session, "MODULE", "GLUE_WEIGHT", defaults)
|
|
114
114
|
|
|
115
|
+
global gtk_runs
|
|
115
116
|
if gtk_runs:
|
|
116
|
-
super().__init__(
|
|
117
|
+
super().__init__(session=session,
|
|
118
|
+
title="Upload Glue Weight",
|
|
119
|
+
help_link=help_link)
|
|
117
120
|
self.init_window()
|
|
121
|
+
else:
|
|
122
|
+
self.pdb_user = ITkDButils.get_db_user(session)
|
|
118
123
|
|
|
119
124
|
def init_window(self):
|
|
120
125
|
"""Initialize window."""
|
|
121
126
|
#
|
|
122
127
|
# Prepare HeaderBar
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
self.
|
|
127
|
-
|
|
128
|
-
button = Gtk.Button()
|
|
129
|
-
icon = Gio.ThemedIcon(name="document-send-symbolic")
|
|
130
|
-
image = Gtk.Image.new_from_gicon(icon, Gtk.IconSize.BUTTON)
|
|
131
|
-
button.add(image)
|
|
132
|
-
button.set_tooltip_text("Click to upload test shown in notebook.")
|
|
133
|
-
button.connect("clicked", self.upload_current_test)
|
|
134
|
-
hb.pack_end(button)
|
|
135
|
-
|
|
136
|
-
self.userLabel = Gtk.Label()
|
|
137
|
-
self.userLabel.set_text(self.session.user.name)
|
|
138
|
-
hb.pack_start(self.userLabel)
|
|
139
|
-
|
|
140
|
-
# Create main content box
|
|
141
|
-
self.mainBox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
|
142
|
-
self.add(self.mainBox)
|
|
128
|
+
self.set_border_width(10)
|
|
129
|
+
|
|
130
|
+
# Prepare HeaderBar
|
|
131
|
+
self.hb.props.title = "Glue height"
|
|
132
|
+
|
|
143
133
|
# file entry and search button
|
|
144
134
|
self.file_name = Gtk.FileChooserButton()
|
|
145
135
|
self.file_name.connect("file-set", self.on_file_set)
|
|
@@ -167,6 +157,11 @@ class GlueWeight(Gtk.Window):
|
|
|
167
157
|
self.modules = self.parse_file(self.ifile)
|
|
168
158
|
self.populate_notebook()
|
|
169
159
|
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
# The text view
|
|
163
|
+
self.mainBox.pack_end(self.message_panel.frame, True, True, 5)
|
|
164
|
+
|
|
170
165
|
# The button box
|
|
171
166
|
btnBox = Gtk.ButtonBox(orientation=Gtk.Orientation.HORIZONTAL)
|
|
172
167
|
self.buttons = []
|
|
@@ -183,19 +178,10 @@ class GlueWeight(Gtk.Window):
|
|
|
183
178
|
self.buttons.append(btn)
|
|
184
179
|
btnBox.add(btn)
|
|
185
180
|
|
|
186
|
-
btn = Gtk.Button(label="Quit")
|
|
187
|
-
btn.connect("clicked", self.quit)
|
|
188
|
-
btnBox.add(btn)
|
|
189
|
-
|
|
190
181
|
self.mainBox.pack_start(btnBox, False, True, 0)
|
|
191
182
|
|
|
192
183
|
self.show_all()
|
|
193
184
|
|
|
194
|
-
def quit(self, *args):
|
|
195
|
-
"""Quits the application."""
|
|
196
|
-
self.hide()
|
|
197
|
-
self.destroy()
|
|
198
|
-
|
|
199
185
|
def create_test_window(self, test_json, test_name, label):
|
|
200
186
|
"""Create the dialog for a DB test and add it to the notebook.
|
|
201
187
|
|
|
@@ -257,7 +243,7 @@ class GlueWeight(Gtk.Window):
|
|
|
257
243
|
|
|
258
244
|
def read_file(self, path):
|
|
259
245
|
"""Parse file."""
|
|
260
|
-
with open(path, "r") as ifile:
|
|
246
|
+
with open(path, "r", encoding="UTF-8") as ifile:
|
|
261
247
|
self.modules = self.parse_file(ifile)
|
|
262
248
|
|
|
263
249
|
def parse_file(self, ifile, module_sep="MODULE_SN"):
|
|
@@ -346,22 +332,20 @@ class GlueWeight(Gtk.Window):
|
|
|
346
332
|
|
|
347
333
|
def upload_tests(self):
|
|
348
334
|
"""Upload tests to DB."""
|
|
349
|
-
|
|
335
|
+
W = UploadMultipleTests.UploadMultipleTests(
|
|
336
|
+
self.session,
|
|
337
|
+
help_link="{}/uploadMultipleTests.html".format(HELP_LINK)
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
if len(self.test_list)>0:
|
|
350
341
|
for G in self.test_list:
|
|
351
342
|
m = G.values
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
if resp is not None:
|
|
356
|
-
print(resp)
|
|
343
|
+
W.add_test_data_to_view(m)
|
|
344
|
+
|
|
357
345
|
|
|
358
346
|
else:
|
|
359
347
|
for m in self.modules:
|
|
360
|
-
|
|
361
|
-
resp = ITkDButils.upload_test(self.session, m)
|
|
362
|
-
|
|
363
|
-
if resp is not None:
|
|
364
|
-
print(resp)
|
|
348
|
+
W.add_test_data_to_view(m)
|
|
365
349
|
|
|
366
350
|
|
|
367
351
|
def main():
|
|
@@ -386,7 +370,7 @@ def main():
|
|
|
386
370
|
|
|
387
371
|
else:
|
|
388
372
|
try:
|
|
389
|
-
ifile = open(options.files[0], 'r')
|
|
373
|
+
ifile = open(options.files[0], 'r') if len(options.files)>0 else None
|
|
390
374
|
|
|
391
375
|
except Exception as e:
|
|
392
376
|
print(e)
|
|
@@ -399,7 +383,7 @@ def main():
|
|
|
399
383
|
print("Could not connect to DB with provided credentials.")
|
|
400
384
|
sys.exit()
|
|
401
385
|
|
|
402
|
-
GW = GlueWeight(session, ifile)
|
|
386
|
+
GW = GlueWeight(session, ifile, help_link=HELP_LINK)
|
|
403
387
|
if gtk_runs:
|
|
404
388
|
GW.show_all()
|
|
405
389
|
GW.set_accept_focus(True)
|
itkdb_gtk/ITkDButils.py
CHANGED
|
@@ -298,11 +298,11 @@ def upload_test(client, data, attachments=None, check_runNumber=False):
|
|
|
298
298
|
|
|
299
299
|
if data["runNumber"] in runN:
|
|
300
300
|
# if the given runNumber is there, try to create a new one.
|
|
301
|
-
print("runNumber {} already in {} of {}".format(data["runNumber"], data["testType"], data["component"]))
|
|
301
|
+
#print("runNumber {} already in {} of {}".format(data["runNumber"], data["testType"], data["component"]))
|
|
302
302
|
try:
|
|
303
303
|
irun = int(data["runNumber"])
|
|
304
304
|
for i in range(irun+1, 100):
|
|
305
|
-
newRn = "{}".format(i
|
|
305
|
+
newRn = "{}".format(i)
|
|
306
306
|
if newRn not in runN:
|
|
307
307
|
data["runNumber"] = newRn
|
|
308
308
|
break
|
|
@@ -21,7 +21,6 @@ import gi
|
|
|
21
21
|
gi.require_version("Gtk", "3.0")
|
|
22
22
|
from gi.repository import Gtk, Gdk, Gio, GObject
|
|
23
23
|
|
|
24
|
-
HELP_LINK="https://itkdb-gtk.docs.cern.ch/panelVisualInspection.html"
|
|
25
24
|
|
|
26
25
|
class TestJson(GObject.Object):
|
|
27
26
|
"""To store test JSOn."""
|
|
@@ -41,7 +40,7 @@ class PanelVisualInspection(dbGtkUtils.ITkDBWindow):
|
|
|
41
40
|
SN, ORDER, PASSED, N_FILES, F_LIST, TEST_J, ALL = range(7)
|
|
42
41
|
F_DEFECT, F_NAME, F_PATH = range(3)
|
|
43
42
|
|
|
44
|
-
def __init__(self, session, title="PanelVisualInspection", help_link=
|
|
43
|
+
def __init__(self, session, title="PanelVisualInspection", help_link=None):
|
|
45
44
|
super().__init__(title=title,
|
|
46
45
|
session=session,
|
|
47
46
|
show_search="Find object with given SN.",
|
|
@@ -564,6 +563,8 @@ class PanelVisualInspection(dbGtkUtils.ITkDBWindow):
|
|
|
564
563
|
def main():
|
|
565
564
|
"""Main entry."""
|
|
566
565
|
# DB login
|
|
566
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/panelVisualInspection.html"
|
|
567
|
+
|
|
567
568
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
568
569
|
client = dlg.get_client()
|
|
569
570
|
if client is None:
|
|
@@ -573,7 +574,7 @@ def main():
|
|
|
573
574
|
|
|
574
575
|
client.user_gui = dlg
|
|
575
576
|
|
|
576
|
-
gTest = PanelVisualInspection(client)
|
|
577
|
+
gTest = PanelVisualInspection(client, help_link=HELP_LINK)
|
|
577
578
|
|
|
578
579
|
gTest.present()
|
|
579
580
|
gTest.connect("destroy", Gtk.main_quit)
|
itkdb_gtk/PetalReceptionTests.py
CHANGED
|
@@ -154,7 +154,7 @@ class PetalReceptionTests(dbGtkUtils.ITkDBWindow):
|
|
|
154
154
|
"""
|
|
155
155
|
if institute is None:
|
|
156
156
|
institute = self.institute
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
defaults = {
|
|
159
159
|
"institution": institute,
|
|
160
160
|
"runNumber": "1",
|
|
@@ -187,7 +187,7 @@ class PetalReceptionTests(dbGtkUtils.ITkDBWindow):
|
|
|
187
187
|
self.dbObject = ITkDButils.get_DB_component(self.session, SN)
|
|
188
188
|
|
|
189
189
|
except Exception as E:
|
|
190
|
-
self.write_message(str(E))
|
|
190
|
+
self.write_message(str(E)+'\n')
|
|
191
191
|
dbGtkUtils.complain("Could not find object in DB", str(E))
|
|
192
192
|
self.dbObject = None
|
|
193
193
|
return
|
|
@@ -198,7 +198,7 @@ class PetalReceptionTests(dbGtkUtils.ITkDBWindow):
|
|
|
198
198
|
"""Add a new defect."""
|
|
199
199
|
page = self.notebook.get_nth_page(self.notebook.get_current_page())
|
|
200
200
|
values = dbGtkUtils.get_a_list_of_values("Insert new defect", ("Type", "Description/v"))
|
|
201
|
-
if len(values):
|
|
201
|
+
if len(values)>0:
|
|
202
202
|
defect = {"name": values[0], "description": values[1]}
|
|
203
203
|
page.dict_dialog.values["defects"].append(defect)
|
|
204
204
|
page.dict_dialog.refresh()
|
|
@@ -280,6 +280,8 @@ class PetalReceptionTests(dbGtkUtils.ITkDBWindow):
|
|
|
280
280
|
def main():
|
|
281
281
|
"""Main entry."""
|
|
282
282
|
# DB login
|
|
283
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/petalReceptionTests.html"
|
|
284
|
+
|
|
283
285
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
284
286
|
client = dlg.get_client()
|
|
285
287
|
if client is None:
|
|
@@ -289,7 +291,7 @@ def main():
|
|
|
289
291
|
|
|
290
292
|
client.user_gui = dlg
|
|
291
293
|
|
|
292
|
-
gTest = PetalReceptionTests(client)
|
|
294
|
+
gTest = PetalReceptionTests(client, help_link=HELP_LINK)
|
|
293
295
|
|
|
294
296
|
gTest.present()
|
|
295
297
|
gTest.connect("destroy", Gtk.main_quit)
|
itkdb_gtk/UploadMultipleTests.py
CHANGED
|
@@ -468,73 +468,81 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
|
|
|
468
468
|
self.write_message("Something went wrong with the stages\n")
|
|
469
469
|
return [None, None]
|
|
470
470
|
|
|
471
|
+
def add_test_data_to_view(self, data, ifile=None, folder=None):
|
|
472
|
+
"""Add a test data to the tree view."""
|
|
473
|
+
has_errors = False
|
|
474
|
+
default_site = None
|
|
475
|
+
|
|
476
|
+
errors, missing = check_data(data)
|
|
477
|
+
if len(missing) > 0:
|
|
478
|
+
self.write_message("Some keys are missing in the JSon file.\n")
|
|
479
|
+
self.write_message("{}\n".format("\n".join(['\t'+line for line in missing])))
|
|
480
|
+
|
|
481
|
+
if "institution" in missing and len(missing) == 1:
|
|
482
|
+
if default_site is None:
|
|
483
|
+
site, use_default = self.get_test_institute()
|
|
484
|
+
if use_default:
|
|
485
|
+
default_site = site
|
|
486
|
+
else:
|
|
487
|
+
site = default_site
|
|
488
|
+
|
|
489
|
+
if site:
|
|
490
|
+
data["institution"] = site
|
|
491
|
+
self.write_message("Setting Institution to {}\n".format(data["institution"]))
|
|
492
|
+
|
|
493
|
+
else:
|
|
494
|
+
has_errors = True
|
|
495
|
+
dbGtkUtils.complain("Invalid JSON file\n{}".format('\n'.join(errors)),"--")
|
|
496
|
+
|
|
497
|
+
if not has_errors:
|
|
498
|
+
attachments = []
|
|
499
|
+
if "attachments" in data:
|
|
500
|
+
for att in data["attachments"]:
|
|
501
|
+
path = Path(att["path"])
|
|
502
|
+
if path.exists():
|
|
503
|
+
path = path.expanduser().resolve()
|
|
504
|
+
else:
|
|
505
|
+
if folder is not None:
|
|
506
|
+
path = folder / path.name
|
|
507
|
+
|
|
508
|
+
if path.exists():
|
|
509
|
+
attachments.append(ITkDButils.Attachment(path=path,
|
|
510
|
+
title=att["title"],
|
|
511
|
+
desc=att["description"]))
|
|
512
|
+
else:
|
|
513
|
+
self.write_message("Ignoring atachment {}".format(data["path"]))
|
|
514
|
+
|
|
515
|
+
# We need to delete this, which is "unofficial"
|
|
516
|
+
del data["attachments"]
|
|
517
|
+
|
|
518
|
+
model = self.tree.get_model()
|
|
519
|
+
comments = data.get("comments", [])
|
|
520
|
+
defects = data.get("defects", [])
|
|
521
|
+
the_date = handle_test_date(data["date"])
|
|
522
|
+
combo, currentStage = self.get_component_stages(data["component"])
|
|
523
|
+
if data["passed"]:
|
|
524
|
+
if data["problems"]:
|
|
525
|
+
color = "orange"
|
|
526
|
+
else:
|
|
527
|
+
color = self.def_color
|
|
528
|
+
else:
|
|
529
|
+
color = "firebrick"
|
|
530
|
+
|
|
531
|
+
model.append([data["component"], data["testType"], data["runNumber"], the_date,
|
|
532
|
+
data["institution"], currentStage, currentStage,
|
|
533
|
+
ifile, data, len(attachments), attachments,
|
|
534
|
+
len(comments), comments, len(defects), defects, color])
|
|
535
|
+
|
|
471
536
|
def add_tests_to_view(self, files):
|
|
472
537
|
"""Add the input fiels to the treeview."""
|
|
473
|
-
default_site = None
|
|
474
538
|
for ifile in files:
|
|
475
539
|
try:
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
errors, missing = check_data(data)
|
|
479
|
-
if len(missing) > 0:
|
|
480
|
-
self.write_message("{}\n".format(Path(ifile).name))
|
|
481
|
-
self.write_message("Some keys are missing in the JSon file.\n")
|
|
482
|
-
self.write_message("{}\n".format("\n".join(['\t'+line for line in missing])))
|
|
483
|
-
|
|
484
|
-
if "institution" in missing and len(missing) == 1:
|
|
485
|
-
if default_site is None:
|
|
486
|
-
site, use_default = self.get_test_institute()
|
|
487
|
-
if use_default:
|
|
488
|
-
default_site = site
|
|
489
|
-
else:
|
|
490
|
-
site = default_site
|
|
491
|
-
|
|
492
|
-
if site:
|
|
493
|
-
data["institution"] = site
|
|
494
|
-
self.write_message("Setting Institution to {}\n".format(data["institution"]))
|
|
540
|
+
self.write_message("{}\n".format(Path(ifile).name))
|
|
541
|
+
folder = Path(ifile).parent
|
|
495
542
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
dbGtkUtils.complain("Invalid JSON file\n{}".format('\n'.join(errors)), ifile)
|
|
499
|
-
|
|
500
|
-
if not has_errors:
|
|
501
|
-
attachments = []
|
|
502
|
-
if "attachments" in data:
|
|
503
|
-
folder = Path(ifile).parent
|
|
504
|
-
for att in data["attachments"]:
|
|
505
|
-
path = Path(att["path"])
|
|
506
|
-
if path.exists():
|
|
507
|
-
path = path.expanduser().resolve()
|
|
508
|
-
else:
|
|
509
|
-
path = folder / path.name
|
|
510
|
-
|
|
511
|
-
if path.exists():
|
|
512
|
-
attachments.append(ITkDButils.Attachment(path=path,
|
|
513
|
-
title=att["title"],
|
|
514
|
-
desc=att["description"]))
|
|
515
|
-
else:
|
|
516
|
-
self.write_message("Ignoring atachment {}".format(data["path"]))
|
|
517
|
-
|
|
518
|
-
# We need to delete tis, which is "unofficial"
|
|
519
|
-
del data["attachments"]
|
|
520
|
-
|
|
521
|
-
model = self.tree.get_model()
|
|
522
|
-
comments = data.get("comments", [])
|
|
523
|
-
defects = data.get("defects", [])
|
|
524
|
-
the_date = handle_test_date(data["date"])
|
|
525
|
-
combo, currentStage = self.get_component_stages(data["component"])
|
|
526
|
-
if data["passed"]:
|
|
527
|
-
if data["problems"]:
|
|
528
|
-
color = "orange"
|
|
529
|
-
else:
|
|
530
|
-
color = self.def_color
|
|
531
|
-
else:
|
|
532
|
-
color = "firebrick"
|
|
543
|
+
data = json.loads(open(ifile, 'r', encoding="UTF-8").read())
|
|
544
|
+
self.add_test_data_to_view(data, ifile=ifile, folder=folder)
|
|
533
545
|
|
|
534
|
-
model.append([data["component"], data["testType"], data["runNumber"], the_date,
|
|
535
|
-
data["institution"], currentStage, currentStage,
|
|
536
|
-
ifile, data, len(attachments), attachments,
|
|
537
|
-
len(comments), comments, len(defects), defects, color])
|
|
538
546
|
|
|
539
547
|
except Exception as E:
|
|
540
548
|
self.write_message("Cannot load file {}\n".format(ifile))
|
|
@@ -677,7 +685,8 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
|
|
|
677
685
|
|
|
678
686
|
|
|
679
687
|
def main():
|
|
680
|
-
"""Main entry."""
|
|
688
|
+
"""Main entry."""
|
|
689
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/uploadMultipleTests.html"
|
|
681
690
|
# DB login
|
|
682
691
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
683
692
|
client = dlg.get_client()
|
|
@@ -689,7 +698,7 @@ def main():
|
|
|
689
698
|
client.user_gui = dlg
|
|
690
699
|
|
|
691
700
|
# Start GUI
|
|
692
|
-
UpT = UploadMultipleTests(client)
|
|
701
|
+
UpT = UploadMultipleTests(client, help_link=HELP_LINK)
|
|
693
702
|
|
|
694
703
|
if gtk_runs:
|
|
695
704
|
UpT.present()
|
itkdb_gtk/UploadTest.py
CHANGED
|
@@ -211,7 +211,7 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
|
|
|
211
211
|
ifile = Path(self.payload).expanduser().resolve().as_posix()
|
|
212
212
|
self.testF.set_filename(ifile)
|
|
213
213
|
self.on_test_file(self.testF)
|
|
214
|
-
self.write_message("Loaded {}".format(the_path.name))
|
|
214
|
+
self.write_message("Loaded {}\n".format(the_path.name))
|
|
215
215
|
|
|
216
216
|
else:
|
|
217
217
|
print("Input file does not exists: {}".format(self.payload))
|
|
@@ -452,12 +452,13 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
|
|
|
452
452
|
dbGtkUtils.complain("Failed uploading test", msg)
|
|
453
453
|
|
|
454
454
|
else:
|
|
455
|
-
self.write_message("Upload successfull")
|
|
455
|
+
self.write_message("Upload successfull\n")
|
|
456
456
|
dbGtkUtils.ask_for_confirmation("Upload successfull", "")
|
|
457
457
|
|
|
458
458
|
|
|
459
459
|
def main():
|
|
460
460
|
"""Main entry."""
|
|
461
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/uploadSingleTest.html"
|
|
461
462
|
parser = argparse.ArgumentParser()
|
|
462
463
|
|
|
463
464
|
parser.add_argument("--test-file", help="Name of json file with test data")
|
|
@@ -483,6 +484,7 @@ def main():
|
|
|
483
484
|
# Start GUI
|
|
484
485
|
UpT = UploadTest(client,
|
|
485
486
|
payload=args.test_file,
|
|
487
|
+
help_link=HELP_LINK,
|
|
486
488
|
attachment=ITkDButils.Attachment(path=args.attachment,
|
|
487
489
|
title=args.attach_title,
|
|
488
490
|
desc=args.attach_desc))
|
itkdb_gtk/VisualInspection.py
CHANGED
|
@@ -21,8 +21,6 @@ import gi
|
|
|
21
21
|
gi.require_version("Gtk", "3.0")
|
|
22
22
|
from gi.repository import Gtk, Gio
|
|
23
23
|
|
|
24
|
-
HELP_LINK="https://itkdb-gtk.docs.cern.ch/moduleVisualInspection.html"
|
|
25
|
-
|
|
26
24
|
|
|
27
25
|
module_type = re.compile("20USE(M[0-5]{1}|[345]{1}[LR]{1})[0-9]{7}")
|
|
28
26
|
sensor_type = re.compile("20USES[0-5]{1}[0-9]{7}")
|
|
@@ -31,7 +29,7 @@ sensor_type = re.compile("20USES[0-5]{1}[0-9]{7}")
|
|
|
31
29
|
class ModuleVisualInspection(dbGtkUtils.ITkDBWindow):
|
|
32
30
|
"""Module/Sensor Visual Inspection."""
|
|
33
31
|
|
|
34
|
-
def __init__(self, session, title="Visual Inspection", help_link=
|
|
32
|
+
def __init__(self, session, title="Visual Inspection", help_link=None):
|
|
35
33
|
super().__init__(title=title,
|
|
36
34
|
session=session,
|
|
37
35
|
show_search="Find object with given SN.",
|
|
@@ -68,7 +66,7 @@ class ModuleVisualInspection(dbGtkUtils.ITkDBWindow):
|
|
|
68
66
|
lbl.set_xalign(0)
|
|
69
67
|
grid.attach(lbl, 0, irow, 1, 1)
|
|
70
68
|
grid.attach(receiver, 1, irow, 1, 1)
|
|
71
|
-
|
|
69
|
+
|
|
72
70
|
self.obj_type = None
|
|
73
71
|
self.obj_type_label = Gtk.Label()
|
|
74
72
|
self.obj_type_label.set_xalign(0)
|
|
@@ -273,6 +271,8 @@ class ModuleVisualInspection(dbGtkUtils.ITkDBWindow):
|
|
|
273
271
|
|
|
274
272
|
def main():
|
|
275
273
|
"""Main entry."""
|
|
274
|
+
HELP_LINK="https://itkdb-gtk.docs.cern.ch/moduleVisualInspection.html"
|
|
275
|
+
|
|
276
276
|
# DB login
|
|
277
277
|
dlg = ITkDBlogin.ITkDBlogin()
|
|
278
278
|
client = dlg.get_client()
|
|
@@ -283,7 +283,7 @@ def main():
|
|
|
283
283
|
|
|
284
284
|
client.user_gui = dlg
|
|
285
285
|
|
|
286
|
-
gTest = ModuleVisualInspection(client)
|
|
286
|
+
gTest = ModuleVisualInspection(client, help_link=HELP_LINK)
|
|
287
287
|
|
|
288
288
|
gTest.present()
|
|
289
289
|
gTest.connect("destroy", Gtk.main_quit)
|
itkdb_gtk/WireBondGui.py
CHANGED
|
@@ -935,6 +935,16 @@ class WireBond(dbGtkUtils.ITkDBWindow):
|
|
|
935
935
|
skeleton["comments"].append(msg)
|
|
936
936
|
skeleton["passed"] = False
|
|
937
937
|
self.write_message("{}\n".format(msg))
|
|
938
|
+
for key in skeleton["results"]["FAILED_HYBRID_TO_PB"]:
|
|
939
|
+
defect = {
|
|
940
|
+
"description": "Unbonded: Hybrid to PB",
|
|
941
|
+
"name": "UNBODED",
|
|
942
|
+
"properties": {
|
|
943
|
+
"wire_number": range_to_list(key)
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
skeleton["defects"].append(defect)
|
|
947
|
+
|
|
938
948
|
|
|
939
949
|
def compute_module_to_frame(self, skeleton):
|
|
940
950
|
"""Compute number of failures and repairs."""
|
|
@@ -945,6 +955,15 @@ class WireBond(dbGtkUtils.ITkDBWindow):
|
|
|
945
955
|
skeleton["comments"].append(msg)
|
|
946
956
|
skeleton["passed"] = False
|
|
947
957
|
self.write_message("{}\n".format(msg))
|
|
958
|
+
for key in skeleton["results"]["FAILED_MODULE_TO_FRAME"]:
|
|
959
|
+
defect = {
|
|
960
|
+
"description": "Unbonded: Module to Frame",
|
|
961
|
+
"name": "UNBODED",
|
|
962
|
+
"properties": {
|
|
963
|
+
"wire_number": range_to_list(key)
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
skeleton["defects"].append(defect)
|
|
948
967
|
|
|
949
968
|
def compute_unconnected(self, results):
|
|
950
969
|
"""Compute number of unconnected."""
|
|
@@ -956,6 +975,7 @@ class WireBond(dbGtkUtils.ITkDBWindow):
|
|
|
956
975
|
|
|
957
976
|
M = ModuleHoles(param=param, win=self)
|
|
958
977
|
|
|
978
|
+
defects = []
|
|
959
979
|
for test, values in results.items():
|
|
960
980
|
if test.find("FAILED") < 0:
|
|
961
981
|
continue
|
|
@@ -972,6 +992,17 @@ class WireBond(dbGtkUtils.ITkDBWindow):
|
|
|
972
992
|
H.add_channel(irow, out)
|
|
973
993
|
H.holes[irow] = find_holes(H.channels[irow])
|
|
974
994
|
|
|
995
|
+
# add defects
|
|
996
|
+
defects.append(
|
|
997
|
+
{
|
|
998
|
+
"description": "Unbonded Channel",
|
|
999
|
+
"name": "UNBONDED",
|
|
1000
|
+
"properties": {
|
|
1001
|
+
"front_end_row": irow,
|
|
1002
|
+
"wire_number": out
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
)
|
|
975
1006
|
|
|
976
1007
|
# Now get sensor strips.
|
|
977
1008
|
M.ready()
|
|
@@ -981,7 +1012,7 @@ class WireBond(dbGtkUtils.ITkDBWindow):
|
|
|
981
1012
|
|
|
982
1013
|
out = {}
|
|
983
1014
|
out["comments"] = []
|
|
984
|
-
out["defects"] =
|
|
1015
|
+
out["defects"] = defects
|
|
985
1016
|
for irow in range(4):
|
|
986
1017
|
key = "MAX_CONT_UNCON_ROW{}".format(irow+1)
|
|
987
1018
|
out[key] = mx_consecutive[irow]
|
itkdb_gtk/__init__.py
CHANGED
itkdb_gtk/dashBoard.py
CHANGED
|
@@ -60,7 +60,6 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
60
60
|
PETAL_CORE_THERMAL = 12
|
|
61
61
|
PETAL_INFORMATION = 13
|
|
62
62
|
|
|
63
|
-
|
|
64
63
|
def __init__(self, session):
|
|
65
64
|
"""Initialization."""
|
|
66
65
|
super().__init__(title="ITkDB Dashboard", session=session, help_link=HELP_LINK)
|
|
@@ -119,7 +118,6 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
119
118
|
btnModVI.connect("clicked", self.module_VI)
|
|
120
119
|
grid.attach(btnModVI, 0, irow, 1, 1)
|
|
121
120
|
|
|
122
|
-
|
|
123
121
|
if HAS_PETALQC:
|
|
124
122
|
irow +=1
|
|
125
123
|
btnPetalInfo = Gtk.Button(label="AVS Petal Info")
|
|
@@ -135,7 +133,6 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
135
133
|
btnPetalThermal.connect("clicked", self.petal_thermal)
|
|
136
134
|
grid.attach(btnPetalThermal, 1, irow, 1, 1)
|
|
137
135
|
|
|
138
|
-
|
|
139
136
|
irow += 1
|
|
140
137
|
grid.attach(Gtk.Label(), 0, irow, 1, 1)
|
|
141
138
|
|
|
@@ -166,7 +163,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
166
163
|
return
|
|
167
164
|
|
|
168
165
|
self.mask |= bt
|
|
169
|
-
W = UploadTest.UploadTest(
|
|
166
|
+
W = UploadTest.UploadTest(
|
|
167
|
+
self.session,
|
|
168
|
+
help_link="{}/uploadSingleTest.html".format(HELP_LINK)
|
|
169
|
+
)
|
|
170
170
|
W.connect("destroy", self.app_closed, bitn)
|
|
171
171
|
|
|
172
172
|
def upload_multiple_tests(self, *args):
|
|
@@ -177,7 +177,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
177
177
|
return
|
|
178
178
|
|
|
179
179
|
self.mask |= bt
|
|
180
|
-
W = UploadMultipleTests.UploadMultipleTests(
|
|
180
|
+
W = UploadMultipleTests.UploadMultipleTests(
|
|
181
|
+
self.session,
|
|
182
|
+
help_link="{}/uploadMultipleTests.html".format(HELP_LINK)
|
|
183
|
+
)
|
|
181
184
|
W.connect("destroy", self.app_closed, bitn)
|
|
182
185
|
|
|
183
186
|
def create_shipment(self, *args):
|
|
@@ -188,7 +191,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
188
191
|
return
|
|
189
192
|
|
|
190
193
|
self.mask |= bt
|
|
191
|
-
W = CreateShipments.CreateShipments(
|
|
194
|
+
W = CreateShipments.CreateShipments(
|
|
195
|
+
self.session,
|
|
196
|
+
help_link="{}/createShipment.html".format(HELP_LINK)
|
|
197
|
+
)
|
|
192
198
|
W.connect("destroy", self.app_closed, bitn)
|
|
193
199
|
|
|
194
200
|
def receive_shipment(self, *args):
|
|
@@ -199,7 +205,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
199
205
|
return
|
|
200
206
|
|
|
201
207
|
self.mask |= bt
|
|
202
|
-
W = GetShipments.ReceiveShipments(
|
|
208
|
+
W = GetShipments.ReceiveShipments(
|
|
209
|
+
self.session,
|
|
210
|
+
help_link="{}/receiveShipments.html".format(HELP_LINK)
|
|
211
|
+
)
|
|
203
212
|
W.connect("destroy", self.app_closed, bitn)
|
|
204
213
|
|
|
205
214
|
def petal_gnd(self, *args):
|
|
@@ -210,7 +219,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
210
219
|
return
|
|
211
220
|
|
|
212
221
|
self.mask |= bt
|
|
213
|
-
W = PetalReceptionTests.PetalReceptionTests(
|
|
222
|
+
W = PetalReceptionTests.PetalReceptionTests(
|
|
223
|
+
self.session,
|
|
224
|
+
help_link="{}/petalReceptionTests.html".format(HELP_LINK)
|
|
225
|
+
)
|
|
214
226
|
W.connect("destroy", self.app_closed, bitn)
|
|
215
227
|
|
|
216
228
|
def glue_weight(self, *args):
|
|
@@ -232,7 +244,10 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
232
244
|
return
|
|
233
245
|
|
|
234
246
|
self.mask |= bt
|
|
235
|
-
W = UploadModuleIV.IVwindow(
|
|
247
|
+
W = UploadModuleIV.IVwindow(
|
|
248
|
+
self.session,
|
|
249
|
+
help_link="{}/uploadModuleIV.html".format(HELP_LINK)
|
|
250
|
+
)
|
|
236
251
|
W.connect("destroy", self.app_closed, bitn)
|
|
237
252
|
|
|
238
253
|
def wire_bond(self, *args):
|
|
@@ -243,7 +258,11 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
243
258
|
return
|
|
244
259
|
|
|
245
260
|
self.mask |= bt
|
|
246
|
-
W = WireBondGui.WireBond(
|
|
261
|
+
W = WireBondGui.WireBond(
|
|
262
|
+
session=self.session,
|
|
263
|
+
title="Wirebond",
|
|
264
|
+
help_link="{}//wirebondTest.html".format(HELP_LINK),
|
|
265
|
+
)
|
|
247
266
|
W.connect("destroy", self.app_closed, bitn)
|
|
248
267
|
W.show_all()
|
|
249
268
|
|
|
@@ -255,9 +274,11 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
255
274
|
return
|
|
256
275
|
|
|
257
276
|
self.mask |= bt
|
|
258
|
-
W = PanelVisualInspection.PanelVisualInspection(
|
|
259
|
-
|
|
260
|
-
|
|
277
|
+
W = PanelVisualInspection.PanelVisualInspection(
|
|
278
|
+
session=self.session,
|
|
279
|
+
title="Panel Visual Inspection",
|
|
280
|
+
help_link="{}/panelVisualInspection.html".format(HELP_LINK),
|
|
281
|
+
)
|
|
261
282
|
W.connect("destroy", self.app_closed, bitn)
|
|
262
283
|
W.show_all()
|
|
263
284
|
|
|
@@ -269,13 +290,14 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
269
290
|
return
|
|
270
291
|
|
|
271
292
|
self.mask |= bt
|
|
272
|
-
W = VisualInspection.ModuleVisualInspection(
|
|
273
|
-
|
|
274
|
-
|
|
293
|
+
W = VisualInspection.ModuleVisualInspection(
|
|
294
|
+
session=self.session,
|
|
295
|
+
title="Module/Sensor Visual Inspection",
|
|
296
|
+
help_link="{}/moduleVisualInspection.html".format(HELP_LINK),
|
|
297
|
+
)
|
|
275
298
|
W.connect("destroy", self.app_closed, bitn)
|
|
276
299
|
W.show_all()
|
|
277
300
|
|
|
278
|
-
|
|
279
301
|
def upload_petal_info(self, *srgs):
|
|
280
302
|
"""Upload petal Info."""
|
|
281
303
|
if not HAS_PETALQC:
|
|
@@ -291,13 +313,11 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
291
313
|
W.connect("destroy", self.app_closed, bitn)
|
|
292
314
|
W.show_all()
|
|
293
315
|
|
|
294
|
-
|
|
295
316
|
def petal_metrology(self, *args):
|
|
296
317
|
"""Do petal metrology"""
|
|
297
318
|
if not HAS_PETALQC:
|
|
298
319
|
return
|
|
299
320
|
|
|
300
|
-
|
|
301
321
|
bitn = DashWindow.PETAL_CORE_METRO
|
|
302
322
|
bt = 1 << bitn
|
|
303
323
|
if self.mask & bt:
|
|
@@ -321,10 +341,13 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
|
|
|
321
341
|
|
|
322
342
|
self.mask |= bt
|
|
323
343
|
opt = IRPetalParam()
|
|
344
|
+
opt.files = []
|
|
345
|
+
opt.golden = None
|
|
324
346
|
opt.folder = None
|
|
325
347
|
opt.out = None
|
|
326
348
|
opt.alias = None
|
|
327
349
|
opt.SN = None
|
|
350
|
+
opt.desy = False
|
|
328
351
|
W = CoreThermal(opt, self.session, title="Petal Thermal Test.")
|
|
329
352
|
W.connect("destroy", self.app_closed, bitn)
|
|
330
353
|
W.show_all()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: itkdb_gtk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: A collection of Gtk based GUI to access ITkDB.
|
|
5
5
|
Author-email: Carlos Lacasta <carlos.lacasta@cern.ch>
|
|
6
6
|
Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/sw/db/itk-pdb-gtk-gui-utils
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
itkdb_gtk/CreateShipments.py,sha256=eiVjw7zGLGAoqWxThBc6IVvXLUFXmtQ-_hpZzfDOKx0,13249
|
|
2
|
+
itkdb_gtk/GetShipments.py,sha256=b3TECQhHlK0kGXH6KjQs06yuzIfTN5tjtiu6wnEOuJ8,19172
|
|
3
|
+
itkdb_gtk/GlueWeight.py,sha256=IHgvbN2DlT8Ou-DMi-n3Z-3xSrPr0tlrkkEH10AshrA,11587
|
|
4
|
+
itkdb_gtk/ITkDB.desktop,sha256=v_K4mHsDxb912J1XGo6mOlbW2TkHvYNGrKmiOnsBQqM,172
|
|
5
|
+
itkdb_gtk/ITkDB.svg,sha256=Ry702zrUkxvG61SqThbUNfXySyiLMqalwYpcM-b_KWo,24242
|
|
6
|
+
itkdb_gtk/ITkDBlogin.py,sha256=40tipm_j5eUS4dnZnBT8VyL6Bu_8csuqS9TPWKxvKSY,10038
|
|
7
|
+
itkdb_gtk/ITkDButils.py,sha256=p1r1HqY0hP47Y0fRRweLPNR6rbPRebWS8d9y_vdj_lk,19586
|
|
8
|
+
itkdb_gtk/PanelVisualInspection.py,sha256=ktAcYbdLBS7Zbxq9XsxB_AWTgAfFLa42NFTEsxnBn98,20531
|
|
9
|
+
itkdb_gtk/PetalReceptionTests.py,sha256=N9_lBvao-HeHPwccjycUL7p3R3V_nPur1WibXbcqjgI,9992
|
|
10
|
+
itkdb_gtk/SensorUtils.py,sha256=fYWF9TeutAbore53dLWNlZnVn9P3OsKYcFLNGOs8cnI,15426
|
|
11
|
+
itkdb_gtk/ShowAttachments.py,sha256=KExxPCdbcb04XS8JSUkg5xF1McvlB8e9btwctDCKNXU,8498
|
|
12
|
+
itkdb_gtk/ShowComments.py,sha256=OiMTFLnhGbbKRj5x61D517BYHAt-qY5Y1lvR3EQz3c0,3151
|
|
13
|
+
itkdb_gtk/ShowDefects.py,sha256=aVAHeaE5IztmAPEuHwhi06KWo_pi9xX2J1fTLhKyAPI,3530
|
|
14
|
+
itkdb_gtk/UploadModuleIV.py,sha256=sqh52bSxANBwlmVWZlDqFXpqRGf0rV0QsjJWC-tY_qI,17792
|
|
15
|
+
itkdb_gtk/UploadMultipleTests.py,sha256=TFEqcRd2ZZAVhK3P3Qn2vg81NouOCjkjqn9PhoHYhPM,24125
|
|
16
|
+
itkdb_gtk/UploadTest.py,sha256=ukgJ5-IG12bqa1QIp3bXIV8hkdXCv5UDxh1lQswN_ko,16832
|
|
17
|
+
itkdb_gtk/VisualInspection.py,sha256=i2i_9ttetMzGFRcBFm_ow7aziksTgvZzVLUxZhwiyBg,9850
|
|
18
|
+
itkdb_gtk/WireBondGui.py,sha256=WFTLOw4l5JxSbvh4vZMxcF65fqlwvNw0fOyEru9ijqQ,39850
|
|
19
|
+
itkdb_gtk/__init__.py,sha256=T-1R2QGY5NH5Yc1rSoWlZ4NwEtokbXv1TQfg_r_c8gA,1263
|
|
20
|
+
itkdb_gtk/dashBoard.py,sha256=VtD7w9FqexYEdihXCw6rxIZrjChQPyJ1LT4DsT3-K2k,11073
|
|
21
|
+
itkdb_gtk/dbGtkUtils.py,sha256=THW-IT5UJB1YluvUVIfpy6oIY2faSHChNKGTpY5qzag,30480
|
|
22
|
+
itkdb_gtk/readGoogleSheet.py,sha256=Lzm_oPWwDqZZzKoBUgsp277F9-wCfr_BA0X4VD2Eolo,2673
|
|
23
|
+
itkdb_gtk/untrash_component.py,sha256=VrN46-f-kF7voOxtoh7OL-bZSWAaIFb7-Xbx6_WT7K8,757
|
|
24
|
+
itkdb_gtk-0.11.0.dist-info/METADATA,sha256=fQrQBCNU8wtqG-e8HDm7PHGm-f6soglsHvqH6uWZRuM,3150
|
|
25
|
+
itkdb_gtk-0.11.0.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
|
|
26
|
+
itkdb_gtk-0.11.0.dist-info/entry_points.txt,sha256=51wi4BRW1vYuLNySWC6bsmQPo7XPI7cvPFAaBD49Ib0,489
|
|
27
|
+
itkdb_gtk-0.11.0.dist-info/top_level.txt,sha256=KVRrH4OS8ovzNR9bvADE0ABn5bNpSk987tuH0jCfkbU,10
|
|
28
|
+
itkdb_gtk-0.11.0.dist-info/RECORD,,
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
itkdb_gtk/CreateShipments.py,sha256=6m66OsURF_c2IgpfYfvSwu3hlhlQV8vVv7EqQQQNzds,13147
|
|
2
|
-
itkdb_gtk/GetShipments.py,sha256=8E0QG-sH2gygqCAJFhpXJnH3QAjO_62havm9hJuX-Uk,18414
|
|
3
|
-
itkdb_gtk/GlueWeight.py,sha256=tyF5-EAc6QkOLo9ZRp807Xx6zK6yYBGElvfmpUYeuUA,12284
|
|
4
|
-
itkdb_gtk/ITkDB.desktop,sha256=v_K4mHsDxb912J1XGo6mOlbW2TkHvYNGrKmiOnsBQqM,172
|
|
5
|
-
itkdb_gtk/ITkDB.svg,sha256=Ry702zrUkxvG61SqThbUNfXySyiLMqalwYpcM-b_KWo,24242
|
|
6
|
-
itkdb_gtk/ITkDBlogin.py,sha256=40tipm_j5eUS4dnZnBT8VyL6Bu_8csuqS9TPWKxvKSY,10038
|
|
7
|
-
itkdb_gtk/ITkDButils.py,sha256=WYjE_DOnFJdxhhQ5ylVTupIOjrp2r83jQALa0Gc2xZg,19587
|
|
8
|
-
itkdb_gtk/PanelVisualInspection.py,sha256=EO0bsPnzD7aT2iBs2SShOAfbixvYcDrByLpjVOEk4MM,20510
|
|
9
|
-
itkdb_gtk/PetalReceptionTests.py,sha256=Ta3gGa_pFcOSroF2xpPyAT5nfhXAouBHcfDgPXCvwJI,9903
|
|
10
|
-
itkdb_gtk/SensorUtils.py,sha256=fYWF9TeutAbore53dLWNlZnVn9P3OsKYcFLNGOs8cnI,15426
|
|
11
|
-
itkdb_gtk/ShowAttachments.py,sha256=KExxPCdbcb04XS8JSUkg5xF1McvlB8e9btwctDCKNXU,8498
|
|
12
|
-
itkdb_gtk/ShowComments.py,sha256=OiMTFLnhGbbKRj5x61D517BYHAt-qY5Y1lvR3EQz3c0,3151
|
|
13
|
-
itkdb_gtk/ShowDefects.py,sha256=aVAHeaE5IztmAPEuHwhi06KWo_pi9xX2J1fTLhKyAPI,3530
|
|
14
|
-
itkdb_gtk/UploadModuleIV.py,sha256=sqh52bSxANBwlmVWZlDqFXpqRGf0rV0QsjJWC-tY_qI,17792
|
|
15
|
-
itkdb_gtk/UploadMultipleTests.py,sha256=8LgbIE7g6zdx4zAqM_Y3DungVnxyStiexhOvjruc4H0,24190
|
|
16
|
-
itkdb_gtk/UploadTest.py,sha256=HVAdMRpicxG5Qr5Hj9LL5tVsSz1tTGaGbeolz-BaFrE,16717
|
|
17
|
-
itkdb_gtk/VisualInspection.py,sha256=-7f1YdUdkHk62OQVn3JwNlCcRMyfUHgUEC4wb4yK2Ok,9838
|
|
18
|
-
itkdb_gtk/WireBondGui.py,sha256=8kA5S6MCl_DUeszdBn9z9kR3kRHe0sI0wRU_akBJqDo,38711
|
|
19
|
-
itkdb_gtk/__init__.py,sha256=Ru68gP4mR4_UX8wslF97Q2vW9doIWE3j-9TAniKmDRM,1269
|
|
20
|
-
itkdb_gtk/dashBoard.py,sha256=ZGeG0su0C7LGzXrcBu8KKfzeneuqkVLieF-6s6yGCgc,10563
|
|
21
|
-
itkdb_gtk/dbGtkUtils.py,sha256=THW-IT5UJB1YluvUVIfpy6oIY2faSHChNKGTpY5qzag,30480
|
|
22
|
-
itkdb_gtk/readGoogleSheet.py,sha256=Lzm_oPWwDqZZzKoBUgsp277F9-wCfr_BA0X4VD2Eolo,2673
|
|
23
|
-
itkdb_gtk/untrash_component.py,sha256=VrN46-f-kF7voOxtoh7OL-bZSWAaIFb7-Xbx6_WT7K8,757
|
|
24
|
-
itkdb_gtk-0.10.10.dev8.dist-info/METADATA,sha256=IJWXO0Tqdy2yyGy_n5su68d3du-XQcISTe5gmNhVlYo,3156
|
|
25
|
-
itkdb_gtk-0.10.10.dev8.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
26
|
-
itkdb_gtk-0.10.10.dev8.dist-info/entry_points.txt,sha256=51wi4BRW1vYuLNySWC6bsmQPo7XPI7cvPFAaBD49Ib0,489
|
|
27
|
-
itkdb_gtk-0.10.10.dev8.dist-info/top_level.txt,sha256=KVRrH4OS8ovzNR9bvADE0ABn5bNpSk987tuH0jCfkbU,10
|
|
28
|
-
itkdb_gtk-0.10.10.dev8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|