radboy 0.0.500__py3-none-any.whl → 0.0.502__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 radboy might be problematic. Click here for more details.
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +26 -15
- radboy/Lookup2/Lookup2.py +86 -0
- radboy/Lookup2/__pycache__/Lookup2.cpython-313.pyc +0 -0
- radboy/Occurances/Occurances.py +307 -71
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- {radboy-0.0.500.dist-info → radboy-0.0.502.dist-info}/METADATA +1 -1
- {radboy-0.0.500.dist-info → radboy-0.0.502.dist-info}/RECORD +11 -11
- {radboy-0.0.500.dist-info → radboy-0.0.502.dist-info}/WHEEL +0 -0
- {radboy-0.0.500.dist-info → radboy-0.0.502.dist-info}/top_level.txt +0 -0
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -46,6 +46,29 @@ class BOOLEAN_ANSWERS:
|
|
|
46
46
|
self.timeout=5
|
|
47
47
|
self.long_boot_time=90
|
|
48
48
|
self.timeout_msg=f"{Fore.light_yellow}SessionOnly({Fore.light_red}lb|longboot = timeout of 90s;{Fore.light_cyan}fb|fastboot = timeout of 0s){Style.reset}\n"
|
|
49
|
+
self.math_operators={
|
|
50
|
+
'+':None,
|
|
51
|
+
'-':None,
|
|
52
|
+
'*':None,
|
|
53
|
+
'**':None,
|
|
54
|
+
'/':None,
|
|
55
|
+
'//':None,
|
|
56
|
+
'%':None,
|
|
57
|
+
'&':None,
|
|
58
|
+
'|':None,
|
|
59
|
+
}
|
|
60
|
+
self.comparison_operators={
|
|
61
|
+
'==':None,
|
|
62
|
+
'<':None,
|
|
63
|
+
'<=':None,
|
|
64
|
+
'>':None,
|
|
65
|
+
'>=':None,
|
|
66
|
+
'!=':None,
|
|
67
|
+
}
|
|
68
|
+
self.and_or={
|
|
69
|
+
'or':None,
|
|
70
|
+
'and':None,
|
|
71
|
+
}
|
|
49
72
|
|
|
50
73
|
BooleanAnswers=BOOLEAN_ANSWERS()
|
|
51
74
|
class switch_bootable:
|
|
@@ -5382,23 +5405,9 @@ class Occurances(BASE,Template):
|
|
|
5382
5405
|
quantity=Column(Float,default=0.0)
|
|
5383
5406
|
|
|
5384
5407
|
comment=Column(String,default='')
|
|
5385
|
-
long_comment=Column(Text,default='')
|
|
5386
|
-
|
|
5387
|
-
max_pre=Column(Float,default=sys.maxsize)
|
|
5388
|
-
min_pre=Column(Float,default=-sys.maxsize)
|
|
5389
|
-
|
|
5390
|
-
max_post=Column(Float,default=sys.maxsize)
|
|
5391
|
-
min_post=Column(Float,default=-sys.maxsize)
|
|
5392
|
-
|
|
5393
|
-
hidden=Column(Boolean,default=False)
|
|
5394
|
-
hidden_dtoe=Column(DateTime,default=None)
|
|
5395
|
-
|
|
5396
|
-
soft_deleted=Column(Boolean,default=False)
|
|
5397
|
-
soft_deleted_dtoe=Column(DateTime,default=None)
|
|
5398
5408
|
|
|
5399
5409
|
created_dtoe=Column(DateTime,default=datetime.now())
|
|
5400
|
-
|
|
5401
|
-
modified_how_many_times_since_created=Column(Integer,default=0)
|
|
5410
|
+
|
|
5402
5411
|
|
|
5403
5412
|
def as_json(self):
|
|
5404
5413
|
excludes=['cbid','DTOE']
|
|
@@ -5409,6 +5418,8 @@ class Occurances(BASE,Template):
|
|
|
5409
5418
|
return f"{self.__class__.__name__}(cbid={self.cbid})"
|
|
5410
5419
|
|
|
5411
5420
|
def __init__(self,**kwargs):
|
|
5421
|
+
if 'uid' not in kwargs:
|
|
5422
|
+
self.uid=str(uuid1())
|
|
5412
5423
|
for k in kwargs.keys():
|
|
5413
5424
|
if k in [s.name for s in self.__table__.columns]:
|
|
5414
5425
|
setattr(self,k,kwargs.get(k))
|
radboy/Lookup2/Lookup2.py
CHANGED
|
@@ -6,6 +6,82 @@ from colored import Style,Fore,Back
|
|
|
6
6
|
import qrcode
|
|
7
7
|
|
|
8
8
|
class Lookup:
|
|
9
|
+
def searchSpec(self,short=False):
|
|
10
|
+
with Session(ENGINE) as session:
|
|
11
|
+
fields={i.name:{'default':None,"type":str(i.type).lower()} for i in Entry.__table__.columns}
|
|
12
|
+
fd=FormBuilder(data=fields)
|
|
13
|
+
|
|
14
|
+
query=None
|
|
15
|
+
if fd is not None:
|
|
16
|
+
filters=[]
|
|
17
|
+
for i in fd:
|
|
18
|
+
if fd[i] is not None:
|
|
19
|
+
ct=len(BooleanAnswers.comparison_operators)
|
|
20
|
+
htext=[std_colorize(i,num,ct) for num,i in enumerate(BooleanAnswers.comparison_operators)]
|
|
21
|
+
htext='\n'.join(htext)
|
|
22
|
+
operators=[i for i in BooleanAnswers.comparison_operators]
|
|
23
|
+
|
|
24
|
+
if fields[i]['type'] in ['varchar','text','string']:
|
|
25
|
+
filters.append(getattr(Entry,i).icontains(fd[i]))
|
|
26
|
+
else:
|
|
27
|
+
print(htext)
|
|
28
|
+
operator=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"'{i}' operator? ",helpText=htext,data="integer")
|
|
29
|
+
if operator is None:
|
|
30
|
+
return
|
|
31
|
+
elif operator in ['d',]:
|
|
32
|
+
operator=0
|
|
33
|
+
operator=operators[operator]
|
|
34
|
+
|
|
35
|
+
if operator == '==':
|
|
36
|
+
filters.append(getattr(Entry,i)==fd[i])
|
|
37
|
+
elif operator == '>':
|
|
38
|
+
filters.append(getattr(Entry,i)>fd[i])
|
|
39
|
+
elif operator == '>=':
|
|
40
|
+
filters.append(getattr(Entry,i)>=fd[i])
|
|
41
|
+
elif operator == '<':
|
|
42
|
+
filters.append(getattr(Entry,i)<fd[i])
|
|
43
|
+
elif operator == '<=':
|
|
44
|
+
filters.append(getattr(Entry,i)<=fd[i])
|
|
45
|
+
elif operator == '!=':
|
|
46
|
+
filters.append(getattr(Entry,i)!=fd[i])
|
|
47
|
+
|
|
48
|
+
ct=len(BooleanAnswers.and_or)
|
|
49
|
+
htext=[std_colorize(i,num,ct) for num,i in enumerate(BooleanAnswers.and_or)]
|
|
50
|
+
htext='\n'.join(htext)
|
|
51
|
+
operators=[i for i in BooleanAnswers.and_or]
|
|
52
|
+
print(htext)
|
|
53
|
+
operator=Prompt.__init2__(None,func=FormBuilderMkText,ptext="and | or? ",helpText=htext,data="integer")
|
|
54
|
+
if operator is None:
|
|
55
|
+
return
|
|
56
|
+
elif operator in ['d',]:
|
|
57
|
+
operator=0
|
|
58
|
+
operator=operators[operator]
|
|
59
|
+
|
|
60
|
+
if operator == 'and':
|
|
61
|
+
query=session.query(Entry).filter(and_(*filters))
|
|
62
|
+
query=orderQuery(query,Entry.Timestamp)
|
|
63
|
+
elif operator == 'or':
|
|
64
|
+
query=session.query(Entry).filter(or_(*filters))
|
|
65
|
+
query=orderQuery(query,Entry.Timestamp)
|
|
66
|
+
else:
|
|
67
|
+
query=session.query(Entry).filter(or_(*filters))
|
|
68
|
+
query=orderQuery(query,Entry.Timestamp)
|
|
69
|
+
else:
|
|
70
|
+
query=session.query(Entry)
|
|
71
|
+
query=orderQuery(query,Entry.Timestamp)
|
|
72
|
+
if query is not None:
|
|
73
|
+
results=query.all()
|
|
74
|
+
cta=len(results)
|
|
75
|
+
if cta < 1:
|
|
76
|
+
print("No Results")
|
|
77
|
+
return
|
|
78
|
+
for num,i in enumerate(results):
|
|
79
|
+
if short:
|
|
80
|
+
print(std_colorize(i.seeShort(),num,cta))
|
|
81
|
+
else:
|
|
82
|
+
print(std_colorize(i,num,cta))
|
|
83
|
+
print(f"Total Results: {len(results)}")
|
|
84
|
+
|
|
9
85
|
def entrySearchBlank(self,just_code=True,fix=False):
|
|
10
86
|
print("Looking for Blank Barcode|Code")
|
|
11
87
|
with Session(ENGINE) as session:
|
|
@@ -149,6 +225,16 @@ class Lookup:
|
|
|
149
225
|
'cmds':['13.f','sch blank fx','schblnk fx','sch \'\' fx','sch "" fx','sch blnk fx'],
|
|
150
226
|
'exec':lambda self=self:self.entrySearchBlank(fix=True),
|
|
151
227
|
'desc':f'{Fore.light_blue}Search For Product by Entry Data where or_(Entry.Code=="") and set Entry.Code=="UNASSIGNED_TO_NEW_ITEM"'
|
|
228
|
+
},
|
|
229
|
+
uuid1():{
|
|
230
|
+
'cmds':['14','sch spec','schspec','spec sch','search specific','ssp','ssp+'],
|
|
231
|
+
'exec':lambda self=self:self.searchSpec(),
|
|
232
|
+
'desc':f'{Fore.light_blue}Search For Product by Entry Data using prompted fields'
|
|
233
|
+
},
|
|
234
|
+
uuid1():{
|
|
235
|
+
'cmds':['14.1','sch spec sht','schspecsht','spec sch sht','search specific short','ssps','ssp-'],
|
|
236
|
+
'exec':lambda self=self:self.searchSpec(short=True),
|
|
237
|
+
'desc':f'{Fore.light_blue}Search For Product by Entry Data using prompted fields'
|
|
152
238
|
}
|
|
153
239
|
}
|
|
154
240
|
def mehelp(self):
|
|
Binary file
|
radboy/Occurances/Occurances.py
CHANGED
|
@@ -2,7 +2,7 @@ from . import *
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class OccurancesUi:
|
|
5
|
-
first_time_excludes=['oid','
|
|
5
|
+
first_time_excludes=['oid','created_dtoe',]
|
|
6
6
|
basic_includes=['name','type','unit_of_measure','quantity']
|
|
7
7
|
|
|
8
8
|
group_fields=['group_name','group_uid']
|
|
@@ -19,6 +19,7 @@ class OccurancesUi:
|
|
|
19
19
|
session.delete(OCT)
|
|
20
20
|
session.commit()
|
|
21
21
|
print("user backed out, nothing was saved!")
|
|
22
|
+
return
|
|
22
23
|
for k in fd:
|
|
23
24
|
setattr(OCT,k,fd[k])
|
|
24
25
|
session.commit()
|
|
@@ -40,6 +41,7 @@ class OccurancesUi:
|
|
|
40
41
|
session.delete(OCT)
|
|
41
42
|
session.commit()
|
|
42
43
|
print("user backed out, nothing was saved!")
|
|
44
|
+
return
|
|
43
45
|
for k in fd:
|
|
44
46
|
setattr(OCT,k,fd[k])
|
|
45
47
|
session.commit()
|
|
@@ -49,11 +51,9 @@ class OccurancesUi:
|
|
|
49
51
|
print(e)
|
|
50
52
|
session.rollback()
|
|
51
53
|
|
|
52
|
-
def edit_occurance(self):
|
|
53
|
-
pass
|
|
54
|
-
|
|
55
54
|
def lst_group_names(self):
|
|
56
55
|
with Session(ENGINE) as session:
|
|
56
|
+
hs=[]
|
|
57
57
|
search={
|
|
58
58
|
'group_name':{
|
|
59
59
|
'default':None,
|
|
@@ -62,6 +62,10 @@ class OccurancesUi:
|
|
|
62
62
|
'group_uid':{
|
|
63
63
|
'default':None,
|
|
64
64
|
'type':'string',
|
|
65
|
+
},
|
|
66
|
+
'oid':{
|
|
67
|
+
'default':None,
|
|
68
|
+
'type':'integer',
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
fd=FormBuilder(data=search)
|
|
@@ -83,89 +87,276 @@ class OccurancesUi:
|
|
|
83
87
|
ct=len(results)
|
|
84
88
|
if ct == 0:
|
|
85
89
|
print(std_colorize("No Results Found",0,1))
|
|
86
|
-
return
|
|
90
|
+
return None,None
|
|
87
91
|
for num,result in enumerate(results):
|
|
88
|
-
self.master_display(result,num,ct)
|
|
92
|
+
hs.append(self.master_display(result,num,ct))
|
|
93
|
+
helpText='\n'.join(hs)
|
|
94
|
+
return results,helpText
|
|
95
|
+
return None,None
|
|
89
96
|
|
|
90
|
-
return results
|
|
91
|
-
return None
|
|
92
97
|
def master_display(self,result,num,ct):
|
|
93
|
-
|
|
98
|
+
hstring=std_colorize(f"{Fore.light_sea_green}[group name] '{result.group_name}' {Fore.dodger_blue_3}- [guuid] '{result.group_uid}' -{Fore.green_yellow} [oid] '{result.oid}' - {Fore.light_magenta}[name] '{result.name}' - {Fore.magenta}[type] '{result.type}' - {Fore.orange_red_1}[qty] '{result.quantity}' {Fore.light_steel_blue}'{result.unit_of_measure}'{Fore.light_salmon_1} - [uid]'{result.uid}'",num,ct)
|
|
99
|
+
print(hstring)
|
|
100
|
+
return hstring
|
|
94
101
|
|
|
95
102
|
def lst_names(self):
|
|
96
|
-
|
|
103
|
+
with Session(ENGINE) as session:
|
|
104
|
+
hs=[]
|
|
105
|
+
search={
|
|
106
|
+
'name':{
|
|
107
|
+
'default':None,
|
|
108
|
+
'type':'string',
|
|
109
|
+
},
|
|
110
|
+
'uid':{
|
|
111
|
+
'default':None,
|
|
112
|
+
'type':'string',
|
|
113
|
+
},
|
|
114
|
+
'oid':{
|
|
115
|
+
'default':None,
|
|
116
|
+
'type':'integer',
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
fd=FormBuilder(data=search)
|
|
120
|
+
query=None
|
|
121
|
+
if fd is not None:
|
|
122
|
+
filters=[]
|
|
123
|
+
for i in fd:
|
|
124
|
+
if fd[i] is not None:
|
|
125
|
+
filters.append(getattr(Occurances,i).icontains(fd[i]))
|
|
126
|
+
query=session.query(Occurances).filter(or_(*filters))
|
|
127
|
+
query=orderQuery(query,Occurances.created_dtoe)
|
|
128
|
+
else:
|
|
129
|
+
query=session.query(Occurances)
|
|
130
|
+
query=orderQuery(query,Occurances.created_dtoe)
|
|
131
|
+
query=query.group_by(Occurances.uid)
|
|
97
132
|
|
|
98
|
-
|
|
99
|
-
|
|
133
|
+
if query is not None:
|
|
134
|
+
results=query.all()
|
|
135
|
+
ct=len(results)
|
|
136
|
+
if ct == 0:
|
|
137
|
+
print(std_colorize("No Results Found",0,1))
|
|
138
|
+
return None,None
|
|
139
|
+
for num,result in enumerate(results):
|
|
140
|
+
hs.append(self.master_display(result,num,ct))
|
|
141
|
+
helpText='\n'.join(hs)
|
|
142
|
+
return results,helpText
|
|
143
|
+
return None,None
|
|
144
|
+
def total_by(self):
|
|
145
|
+
by=['group_name','group_uid','name','uid','type']
|
|
146
|
+
#need to select for total
|
|
100
147
|
|
|
101
|
-
def
|
|
102
|
-
|
|
148
|
+
def copy_to_new(self,prompted=True):
|
|
149
|
+
local_excludes=['quantity','uid',]
|
|
150
|
+
#search and copy old details to a new Occurance setting created_dtoe to today, and quantity to 0
|
|
151
|
+
with Session(ENGINE) as session:
|
|
152
|
+
while True:
|
|
153
|
+
search,helpText=self.lst_names()
|
|
154
|
+
if search is None:
|
|
155
|
+
return
|
|
156
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to copy to new Occurances",helpText=helpText,data="list")
|
|
157
|
+
if whiches in [None,'d']:
|
|
158
|
+
return
|
|
159
|
+
cta=len(search)
|
|
160
|
+
try:
|
|
161
|
+
for which in whiches:
|
|
162
|
+
try:
|
|
163
|
+
which=int(which)
|
|
164
|
+
if which in range(0,cta+1):
|
|
165
|
+
oid=search[which].oid
|
|
166
|
+
x=session.query(Occurances).filter(Occurances.oid==oid).first()
|
|
167
|
+
new=Occurances()
|
|
168
|
+
session.add(new)
|
|
169
|
+
excludes=[]
|
|
170
|
+
excludes.extend(self.first_time_excludes)
|
|
171
|
+
excludes.extend(local_excludes)
|
|
172
|
+
if prompted:
|
|
173
|
+
fields={i.name:{'default':getattr(x,i.name),'type':str(i.type).lower()} for i in Occurances.__table__.columns if i.name not in excludes}
|
|
174
|
+
fd=FormBuilder(data=fields)
|
|
175
|
+
else:
|
|
176
|
+
fd={}
|
|
177
|
+
fields=[i.name for i in Occurances.__table__.columns if i.name not in excludes]
|
|
178
|
+
for k in fields:
|
|
179
|
+
old=getattr(x,k)
|
|
180
|
+
fd[k]=old
|
|
103
181
|
|
|
104
|
-
|
|
105
|
-
|
|
182
|
+
includes2=['quantity',]
|
|
183
|
+
fields2={i.name:{'default':getattr(x,i.name),'type':str(i.type).lower()} for i in Occurances.__table__.columns if i.name in includes2}
|
|
184
|
+
fd2=FormBuilder(data=fields2)
|
|
185
|
+
if fd2:
|
|
186
|
+
fd['quantity']=fd2['quantity']
|
|
187
|
+
else:
|
|
188
|
+
fd['quantity']=0
|
|
189
|
+
fd['name']=f"{fd['name']} {dayString(datetime.now())}"
|
|
190
|
+
if fd:
|
|
191
|
+
try:
|
|
192
|
+
for k in fd:
|
|
193
|
+
setattr(new,k,fd[k])
|
|
194
|
+
session.commit()
|
|
195
|
+
except Exception as eee:
|
|
196
|
+
print(eee)
|
|
197
|
+
session.rollback()
|
|
198
|
+
except Exception as e:
|
|
199
|
+
print(e)
|
|
200
|
+
return
|
|
201
|
+
except Exception as ee:
|
|
202
|
+
print(ee)
|
|
203
|
+
break
|
|
106
204
|
|
|
107
|
-
def
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
205
|
+
def edit_selected(self):
|
|
206
|
+
with Session(ENGINE) as session:
|
|
207
|
+
while True:
|
|
208
|
+
search,helpText=self.lst_names()
|
|
209
|
+
if search is None:
|
|
210
|
+
return
|
|
211
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to edit",helpText=helpText,data="list")
|
|
212
|
+
if whiches in [None,'d']:
|
|
213
|
+
return
|
|
214
|
+
cta=len(search)
|
|
215
|
+
try:
|
|
216
|
+
for which in whiches:
|
|
217
|
+
try:
|
|
218
|
+
which=int(which)
|
|
219
|
+
if which in range(0,cta+1):
|
|
220
|
+
oid=search[which].oid
|
|
221
|
+
x=session.query(Occurances).filter(Occurances.oid==oid).first()
|
|
222
|
+
fields={i.name:{'default':getattr(x,i.name),'type':str(i.type).lower()} for i in Occurances.__table__.columns if i.name not in self.first_time_excludes}
|
|
223
|
+
fd=FormBuilder(data=fields)
|
|
224
|
+
if fd:
|
|
225
|
+
try:
|
|
226
|
+
for k in fd:
|
|
227
|
+
setattr(x,k,fd[k])
|
|
228
|
+
session.commit()
|
|
229
|
+
except Exception as eee:
|
|
230
|
+
print(eee)
|
|
231
|
+
session.rollback()
|
|
232
|
+
except Exception as e:
|
|
233
|
+
print(e)
|
|
234
|
+
return
|
|
235
|
+
except Exception as ee:
|
|
236
|
+
print(ee)
|
|
237
|
+
break
|
|
238
|
+
|
|
239
|
+
def edit_selected_qty(self):
|
|
240
|
+
with Session(ENGINE) as session:
|
|
241
|
+
while True:
|
|
242
|
+
search,helpText=self.lst_names()
|
|
243
|
+
if search is None:
|
|
244
|
+
return
|
|
245
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to edit",helpText=helpText,data="list")
|
|
246
|
+
if whiches in [None,'d']:
|
|
247
|
+
return
|
|
248
|
+
cta=len(search)
|
|
249
|
+
try:
|
|
250
|
+
for which in whiches:
|
|
251
|
+
try:
|
|
252
|
+
which=int(which)
|
|
253
|
+
if which in range(0,cta+1):
|
|
254
|
+
oid=search[which].oid
|
|
255
|
+
x=session.query(Occurances).filter(Occurances.oid==oid).first()
|
|
256
|
+
includes=['quantity',]
|
|
257
|
+
fields={i.name:{'default':getattr(x,i.name),'type':str(i.type).lower()} for i in Occurances.__table__.columns if i.name in includes}
|
|
258
|
+
fd=FormBuilder(data=fields)
|
|
259
|
+
if fd:
|
|
260
|
+
try:
|
|
261
|
+
for k in fd:
|
|
262
|
+
setattr(x,k,fd[k])
|
|
263
|
+
session.commit()
|
|
264
|
+
except Exception as eee:
|
|
265
|
+
print(eee)
|
|
266
|
+
session.rollback()
|
|
267
|
+
except Exception as e:
|
|
268
|
+
print(e)
|
|
269
|
+
return
|
|
270
|
+
except Exception as ee:
|
|
271
|
+
print(ee)
|
|
272
|
+
break
|
|
115
273
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
274
|
+
def delete_groups_uid(self):
|
|
275
|
+
with Session(ENGINE) as session:
|
|
276
|
+
while True:
|
|
277
|
+
search,helpText=self.lst_group_names()
|
|
278
|
+
if search is None:
|
|
279
|
+
return
|
|
280
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to delete",helpText=helpText,data="list")
|
|
281
|
+
if whiches in [None,'d']:
|
|
282
|
+
return
|
|
283
|
+
cta=len(search)
|
|
284
|
+
try:
|
|
285
|
+
for which in whiches:
|
|
286
|
+
try:
|
|
287
|
+
which=int(which)
|
|
288
|
+
if which in range(0,cta+1):
|
|
289
|
+
guid=search[which].group_uid
|
|
290
|
+
x=session.query(Occurances).filter(Occurances.group_uid==guid).delete()
|
|
291
|
+
session.commit()
|
|
292
|
+
except Exception as e:
|
|
293
|
+
print(e)
|
|
294
|
+
return
|
|
295
|
+
except Exception as ee:
|
|
296
|
+
print(ee)
|
|
297
|
+
break
|
|
119
298
|
|
|
120
|
-
def
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
299
|
+
def delete_groups_name(self):
|
|
300
|
+
with Session(ENGINE) as session:
|
|
301
|
+
while True:
|
|
302
|
+
search,helpText=self.lst_group_names()
|
|
303
|
+
if search is None:
|
|
304
|
+
return
|
|
305
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to delete",helpText=helpText,data="list")
|
|
306
|
+
if whiches in [None,'d']:
|
|
307
|
+
return
|
|
308
|
+
cta=len(search)
|
|
309
|
+
try:
|
|
310
|
+
for which in whiches:
|
|
311
|
+
try:
|
|
312
|
+
which=int(which)
|
|
313
|
+
#print(which,which in range(0,cta),cta,range(0,cta))
|
|
314
|
+
if which in range(0,cta+1):
|
|
315
|
+
guid=search[which].group_name
|
|
316
|
+
print(guid)
|
|
317
|
+
x=session.query(Occurances).filter(Occurances.group_name==search[which].group_name).delete()
|
|
318
|
+
session.commit()
|
|
319
|
+
except Exception as e:
|
|
320
|
+
print(e)
|
|
321
|
+
return
|
|
322
|
+
except Exception as ee:
|
|
323
|
+
print(ee)
|
|
324
|
+
break
|
|
126
325
|
|
|
127
326
|
def delete(self):
|
|
128
|
-
pass
|
|
129
|
-
|
|
130
|
-
def search_select(self,rTYPE=list,display=True):
|
|
131
|
-
'''Search for, select,
|
|
132
|
-
display selected, or
|
|
133
|
-
return selected as:
|
|
134
|
-
list of Occurances
|
|
135
|
-
a single Occurance
|
|
136
|
-
|
|
137
|
-
'''
|
|
138
327
|
with Session(ENGINE) as session:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
328
|
+
while True:
|
|
329
|
+
search,helpText=self.lst_names()
|
|
330
|
+
if search is None:
|
|
331
|
+
return
|
|
332
|
+
whiches=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which indexes to delete",helpText=helpText,data="list")
|
|
333
|
+
if whiches in [None,'d']:
|
|
334
|
+
return
|
|
335
|
+
cta=len(search)
|
|
336
|
+
try:
|
|
337
|
+
for which in whiches:
|
|
338
|
+
try:
|
|
339
|
+
which=int(which)
|
|
340
|
+
#print(which,which in range(0,cta),cta,range(0,cta))
|
|
341
|
+
if which in range(0,cta+1):
|
|
342
|
+
oid=search[which].oid
|
|
343
|
+
x=session.query(Occurances).filter(Occurances.oid==oid).delete()
|
|
344
|
+
session.commit()
|
|
345
|
+
except Exception as e:
|
|
346
|
+
print(e)
|
|
347
|
+
return
|
|
348
|
+
except Exception as ee:
|
|
349
|
+
print(ee)
|
|
350
|
+
break
|
|
144
351
|
|
|
352
|
+
def list_all(self):
|
|
353
|
+
with Session(ENGINE) as session:
|
|
145
354
|
query=session.query(Occurances)
|
|
146
|
-
|
|
147
|
-
text_query_fields=[]
|
|
148
|
-
#setup filters for stext
|
|
149
|
-
|
|
150
|
-
query=orderQuery(query,Occurances.created_dtoe,inverse=True)
|
|
355
|
+
query=orderQuery(query,Occurances.created_dtoe)
|
|
151
356
|
results=query.all()
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if display:
|
|
156
|
-
display_results(results,session,query)
|
|
157
|
-
else:
|
|
158
|
-
#list selector here
|
|
159
|
-
return results
|
|
160
|
-
elif isinstance(rTYPE,Occurances) or rType is Occurances:
|
|
161
|
-
if display:
|
|
162
|
-
display_results(results,session,query)
|
|
163
|
-
else:
|
|
164
|
-
pass
|
|
165
|
-
#Occurance selector here
|
|
166
|
-
return results
|
|
167
|
-
else:
|
|
168
|
-
display_results(results,session,query)
|
|
357
|
+
ct=len(results)
|
|
358
|
+
for num, i in enumerate(results):
|
|
359
|
+
self.master_display(i,num,ct)
|
|
169
360
|
|
|
170
361
|
def fix_table(self):
|
|
171
362
|
Occurances.__table__.drop(ENGINE)
|
|
@@ -190,9 +381,54 @@ class OccurancesUi:
|
|
|
190
381
|
},
|
|
191
382
|
uuid1():{
|
|
192
383
|
'cmds':generate_cmds(startcmd=['lst','list','ls','l'],endCmd=['group names','grpnms','group-names','group_names']),
|
|
193
|
-
'desc':f"list group names and uids",
|
|
384
|
+
'desc':f"list group names and group uids",
|
|
194
385
|
'exec':self.lst_group_names,
|
|
386
|
+
},
|
|
387
|
+
uuid1():{
|
|
388
|
+
'cmds':generate_cmds(startcmd=['lst','list','ls','l'],endCmd=['names','nms','nmes']),
|
|
389
|
+
'desc':f"list names and uids, group by uid",
|
|
390
|
+
'exec':self.lst_names,
|
|
391
|
+
},
|
|
392
|
+
uuid1():{
|
|
393
|
+
'cmds':generate_cmds(startcmd=['delete','del','remove','rem','rm'],endCmd=['',' ']),
|
|
394
|
+
'desc':f"delete occurances data",
|
|
395
|
+
'exec':self.delete,
|
|
396
|
+
},
|
|
397
|
+
uuid1():{
|
|
398
|
+
'cmds':generate_cmds(startcmd=['delete','del','remove','rem','rm'],endCmd=['grps uid','groups uid','grps-uid','grpsuid']),
|
|
399
|
+
'desc':f"delete occurances data by group uid",
|
|
400
|
+
'exec':self.delete_groups_uid,
|
|
195
401
|
},
|
|
402
|
+
uuid1():{
|
|
403
|
+
'cmds':generate_cmds(startcmd=['delete','del','remove','rem','rm'],endCmd=['grps nm','groups name','grps-nm','grpsnm']),
|
|
404
|
+
'desc':f"delete occurances data by group name",
|
|
405
|
+
'exec':self.delete_groups_name,
|
|
406
|
+
},
|
|
407
|
+
uuid1():{
|
|
408
|
+
'cmds':generate_cmds(startcmd=['lst','list','ls','l'],endCmd=["all","a","*"]),
|
|
409
|
+
'desc':f"list all",
|
|
410
|
+
'exec':self.list_all,
|
|
411
|
+
},
|
|
412
|
+
uuid1():{
|
|
413
|
+
'cmds':generate_cmds(startcmd=['edit','edt','ed'],endCmd=['occurance','cntr','selected','s',]),
|
|
414
|
+
'desc':f"edit occurances data",
|
|
415
|
+
'exec':self.edit_selected,
|
|
416
|
+
},
|
|
417
|
+
uuid1():{
|
|
418
|
+
'cmds':generate_cmds(startcmd=['edit','edt','ed'],endCmd=['quantity','qty','amnt','amount']),
|
|
419
|
+
'desc':f"edit occurances quantity only",
|
|
420
|
+
'exec':self.edit_selected_qty,
|
|
421
|
+
},
|
|
422
|
+
uuid1():{
|
|
423
|
+
'cmds':generate_cmds(startcmd=['cp','copy','cpy'],endCmd=['2new','2 new',' ','']),
|
|
424
|
+
'desc':f"copy all details of Occurances to new Occurance except for quantity and uids prompting for user provided changes to old",
|
|
425
|
+
'exec':self.copy_to_new,
|
|
426
|
+
},
|
|
427
|
+
uuid1():{
|
|
428
|
+
'cmds':generate_cmds(startcmd=['cp','copy','cpy'],endCmd=['2new np','2 new np','2nw np','2 new no prompt','2new no-prompt']),
|
|
429
|
+
'desc':f"copy all details of Occurances to new Occurance except for quantity and uids prompting for user provided changes to old",
|
|
430
|
+
'exec':lambda self=self:self.copy_to_new(prompted=False),
|
|
431
|
+
},
|
|
196
432
|
}
|
|
197
433
|
|
|
198
434
|
htext=[]
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.502'
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ radboy/Holidays.txt,sha256=y-JZPihh5iaWKxMIHNXD39yVuVmf1vMs4FdNDcg0f1Y,3114
|
|
|
5
5
|
radboy/InventoryGlossary.txt,sha256=018-Yqca6DFb10jPdkUY-5qhkRlQN1k3rxoTaERQ-LA,91008
|
|
6
6
|
radboy/RecordMyCodes.py,sha256=Lt2reA6xchq3U7Y08DvkrHboZ25i1ts7X2E9gSIwcVg,41101
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=Us27Bqzc2h2YT-8rjX2f1imPTMI9oyE6_sdTy5_ht9I,17
|
|
9
9
|
radboy/api_key,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
radboy/case-export-2024-05-14-13-10-00.672971.xlsx,sha256=Wd592d_VLFmfUI9KKKSVjNwjV91euc1T7ATyvwvUhlg,5431
|
|
11
11
|
radboy/case-export-2024-05-14-13-13-22.540614.xlsx,sha256=OnGrhmScHfGp_mVaWW-LNMsqrQgyZDpiU3wV-2s3U5Q,5556
|
|
@@ -92,7 +92,7 @@ radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,
|
|
|
92
92
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
93
93
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
94
94
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
95
|
-
radboy/DB/db.py,sha256=
|
|
95
|
+
radboy/DB/db.py,sha256=lFGyGn4ZD6PDg3dOQZxRCk3HLLp88cGrpBlUyiB2mhc,246363
|
|
96
96
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
97
97
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
98
98
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
@@ -127,7 +127,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
127
127
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
128
128
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
129
129
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
130
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
130
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=iCo8Bq54dG0hlAzKeAXOSRUs8t6gPQomS7rg5qDjuc4,392241
|
|
131
131
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
132
132
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
133
133
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -254,17 +254,17 @@ radboy/Lookup/__pycache__/Lookup.cpython-313.pyc,sha256=XLNpbTGk4ryJSRvzf2SDzoxI
|
|
|
254
254
|
radboy/Lookup/__pycache__/__init__.cpython-311.pyc,sha256=Jm4q7Xibyc4UjYYBeYK6uBoMNTBCYoivU7FCtdX5G08,231
|
|
255
255
|
radboy/Lookup/__pycache__/__init__.cpython-312.pyc,sha256=-3XFxnbTtwL4YFln0aSCyRFd2DD-Gr2-UoBV-eOOqqs,269
|
|
256
256
|
radboy/Lookup/__pycache__/__init__.cpython-313.pyc,sha256=p5qY0NPTD_pjFDK1cIJ6qwHaJb91xspPXboIvk-dIgE,148
|
|
257
|
-
radboy/Lookup2/Lookup2.py,sha256=
|
|
257
|
+
radboy/Lookup2/Lookup2.py,sha256=IEutQYva9s5l1b74xT_ldq9qOUAVr5BTXcGeiRX57bk,25971
|
|
258
258
|
radboy/Lookup2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
259
259
|
radboy/Lookup2/__pycache__/Lookup2.cpython-312.pyc,sha256=Mka0F5UbDbhfF0ogsnklb8eVJz1v7H8hcm5N0yEjUjI,35474
|
|
260
|
-
radboy/Lookup2/__pycache__/Lookup2.cpython-313.pyc,sha256=
|
|
260
|
+
radboy/Lookup2/__pycache__/Lookup2.cpython-313.pyc,sha256=JDaPNWBUvdYQXJp2L71fYWp8m1TMe4uVHDKyDBxPoDk,46917
|
|
261
261
|
radboy/Lookup2/__pycache__/__init__.cpython-312.pyc,sha256=0mqw_7WZPG7luwCFsqX5YMx3-2pN9URwnp8cuel5rGM,270
|
|
262
262
|
radboy/Lookup2/__pycache__/__init__.cpython-313.pyc,sha256=iuBE5G-ThcR2mSYUgGwZI8WCpQwwJXy6hHnYI-h97_Y,149
|
|
263
263
|
radboy/ModuleTemplate/Tasks.py,sha256=RF4sWnLH4FyzMU8AHOov7WP24-udd96-l9c9SvbIP_0,1088
|
|
264
264
|
radboy/ModuleTemplate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
265
265
|
radboy/ModuleTemplate/__pycache__/Tasks.cpython-311.pyc,sha256=rllpmYgt71yfhr2e08OB_iYnlcO5eIIGCQErAj6ikTA,1989
|
|
266
266
|
radboy/ModuleTemplate/__pycache__/__init__.cpython-311.pyc,sha256=J6kTs2HBMSDNpjWxKLwzOfg70xEDLVtulYrYvCVF3Mw,239
|
|
267
|
-
radboy/Occurances/Occurances.py,sha256=
|
|
267
|
+
radboy/Occurances/Occurances.py,sha256=ll7QGbkZRmrSKBhJxUW1GaEB4c2spQejkeLSYVAMQ0I,14357
|
|
268
268
|
radboy/Occurances/__init__.py,sha256=Xv528_TFNgaC7fr3ykgYG4qUxoz-_8dQMEAhDBAtdXw,930
|
|
269
269
|
radboy/Of/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
270
270
|
radboy/Of/of.py,sha256=l5YyMVe4rixyYeJZ6BKzkVEr7lk2SuMyPxm14LMwF9c,1341
|
|
@@ -398,7 +398,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
398
398
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
399
399
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
400
400
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
401
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
401
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=6-d12VLxilYwsrI29rhnmzNU2ME2iS6onbVZS7eh_TI,165
|
|
402
402
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
403
403
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
404
404
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -423,7 +423,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
423
423
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
424
424
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
425
425
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
426
|
-
radboy-0.0.
|
|
427
|
-
radboy-0.0.
|
|
428
|
-
radboy-0.0.
|
|
429
|
-
radboy-0.0.
|
|
426
|
+
radboy-0.0.502.dist-info/METADATA,sha256=v8Lzb-Jq6PpPYX-siwJ9DtjSyZUrRwU5QJup-iaZCe8,1601
|
|
427
|
+
radboy-0.0.502.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
428
|
+
radboy-0.0.502.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
429
|
+
radboy-0.0.502.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|