q2rad 0.1.220__py3-none-any.whl → 0.1.222__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 q2rad might be problematic. Click here for more details.
- q2rad/q2appmanager.py +2 -1
- q2rad/q2appselector.py +1 -1
- q2rad/q2extensions.py +43 -1
- q2rad/q2forms.py +1 -1
- q2rad/q2lines.py +3 -2
- q2rad/q2modules.py +7 -3
- q2rad/q2rad.py +125 -46
- q2rad/version.py +1 -1
- {q2rad-0.1.220.dist-info → q2rad-0.1.222.dist-info}/METADATA +1 -1
- {q2rad-0.1.220.dist-info → q2rad-0.1.222.dist-info}/RECORD +13 -13
- {q2rad-0.1.220.dist-info → q2rad-0.1.222.dist-info}/LICENSE +0 -0
- {q2rad-0.1.220.dist-info → q2rad-0.1.222.dist-info}/WHEEL +0 -0
- {q2rad-0.1.220.dist-info → q2rad-0.1.222.dist-info}/entry_points.txt +0 -0
q2rad/q2appmanager.py
CHANGED
|
@@ -448,7 +448,8 @@ class AppManager(Q2Form):
|
|
|
448
448
|
return rez
|
|
449
449
|
|
|
450
450
|
def import_q2market(self):
|
|
451
|
-
self.q2_app.check_app_update(force_update=True)
|
|
451
|
+
if self.q2_app.check_app_update(force_update=True):
|
|
452
|
+
self.q2_app.open_selected_app()
|
|
452
453
|
|
|
453
454
|
def import_app(self, file=""):
|
|
454
455
|
filetype = "JSON(*.json)"
|
q2rad/q2appselector.py
CHANGED
|
@@ -467,7 +467,7 @@ class Q2AppSelect(Q2Form):
|
|
|
467
467
|
self.close()
|
|
468
468
|
AppManager.import_json_app(json.load(response_app))
|
|
469
469
|
self.q2_app.open_selected_app()
|
|
470
|
-
self.q2_app.migrate_db_data()
|
|
470
|
+
# self.q2_app.migrate_db_data()
|
|
471
471
|
AppManager.import_json_data(json.load(response_data))
|
|
472
472
|
else:
|
|
473
473
|
q2Mess(_("Can't to load Demo App"))
|
q2rad/q2extensions.py
CHANGED
|
@@ -25,6 +25,8 @@ from q2rad.q2appmanager import AppManager
|
|
|
25
25
|
from q2terminal.q2terminal import Q2Terminal
|
|
26
26
|
import gettext
|
|
27
27
|
import json
|
|
28
|
+
from q2rad.q2raddb import read_url
|
|
29
|
+
from q2gui.q2model import Q2Model
|
|
28
30
|
|
|
29
31
|
|
|
30
32
|
_ = gettext.gettext
|
|
@@ -56,6 +58,14 @@ class Q2Extensions(Q2Form):
|
|
|
56
58
|
self.add_action("Import|from JSON file", self.import_json, eof_disabled=True)
|
|
57
59
|
self.add_action("Import|from q2Market", self.import_q2market, eof_disabled=True)
|
|
58
60
|
|
|
61
|
+
def before_form_show(self):
|
|
62
|
+
if self.crud_mode == "NEW":
|
|
63
|
+
if q2AskYN("Would you like to download one from q2market?") == 2:
|
|
64
|
+
q2market = Q2MarketExt().run()
|
|
65
|
+
if q2market.heap._return:
|
|
66
|
+
self.s.prefix = q2market.heap._return
|
|
67
|
+
self.s.checkupdates = "*"
|
|
68
|
+
|
|
59
69
|
def info(self):
|
|
60
70
|
pass
|
|
61
71
|
|
|
@@ -150,6 +160,38 @@ class Q2Extensions(Q2Form):
|
|
|
150
160
|
def import_q2market(self):
|
|
151
161
|
q2market_url = self.r.q2market_url if self.r.q2market_url else self.q2_app.q2market_url
|
|
152
162
|
if q2market_url:
|
|
153
|
-
q2app.q2_app.check_ext_update(self.r.prefix, force_update=True)
|
|
163
|
+
if q2app.q2_app.check_ext_update(self.r.prefix, force_update=True):
|
|
164
|
+
q2app.q2_app.open_selected_app()
|
|
154
165
|
else:
|
|
155
166
|
q2Mess("No App URL!")
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class Q2MarketExt(Q2Form):
|
|
170
|
+
def __init__(self, title=""):
|
|
171
|
+
super().__init__("q2Market")
|
|
172
|
+
self.no_view_action = True
|
|
173
|
+
self.heap._return = None
|
|
174
|
+
|
|
175
|
+
def on_init(self):
|
|
176
|
+
self.add_control("ext_title", _("Name"), datatype="char", datalen=100)
|
|
177
|
+
self.add_control("ext_version", _("Version"), datatype="char", datalen=100)
|
|
178
|
+
self.add_control("ext_description", _("Description"), control="text", datatype="char", datalen=100)
|
|
179
|
+
self.add_control("ext_url", _("Path"), datatype="char", datalen=100)
|
|
180
|
+
|
|
181
|
+
q2market_catalogue_url = f"{self.q2_app.q2market_url}/q2market.json"
|
|
182
|
+
data = json.loads(read_url(q2market_catalogue_url).decode("utf-8"))
|
|
183
|
+
rez = []
|
|
184
|
+
for x in data:
|
|
185
|
+
if "ext_title" in data[x]:
|
|
186
|
+
rec = data[x]
|
|
187
|
+
rec["ext_url"] = x
|
|
188
|
+
rez.append(rec)
|
|
189
|
+
model = Q2Model()
|
|
190
|
+
model.set_records(rez)
|
|
191
|
+
self.set_model(model)
|
|
192
|
+
self.add_action_view()
|
|
193
|
+
self.add_action("Select", self.select_row, tag="select", eof_disabled=1)
|
|
194
|
+
|
|
195
|
+
def select_row(self):
|
|
196
|
+
self.heap._return = self.r.ext_title
|
|
197
|
+
self.close()
|
q2rad/q2forms.py
CHANGED
|
@@ -288,7 +288,7 @@ class Q2Forms(Q2Form, Q2_save_and_run):
|
|
|
288
288
|
super().after_crud_save()
|
|
289
289
|
if self.crud_mode != "EDIT":
|
|
290
290
|
if self.s.form_table:
|
|
291
|
-
ai = "*" if q2ask("Set AUTOINCREMENT for primary key?") else ""
|
|
291
|
+
ai = "*" if q2ask("Set AUTOINCREMENT for primary key?") == 2 else ""
|
|
292
292
|
self.db.insert(
|
|
293
293
|
"lines",
|
|
294
294
|
{
|
q2rad/q2lines.py
CHANGED
|
@@ -125,7 +125,8 @@ class Q2Lines(Q2Form, Q2_save_and_run):
|
|
|
125
125
|
if self.add_control("/h"):
|
|
126
126
|
self.add_control("stretch", _("Stretch factor"), datatype="int")
|
|
127
127
|
self.add_control("alignment", _("Alignment"), datatype="int", datalen=3)
|
|
128
|
-
self.add_control("tag", _("Tag"), datatype="char", datalen=100)
|
|
128
|
+
self.add_control("tag", _("Tag"), datatype="char", datalen=100, stretch=99)
|
|
129
|
+
self.add_control("/s")
|
|
129
130
|
self.add_control("/")
|
|
130
131
|
if self.add_control("/h", _("Control type")):
|
|
131
132
|
self.add_control(
|
|
@@ -299,7 +300,7 @@ class Q2Lines(Q2Form, Q2_save_and_run):
|
|
|
299
300
|
record = self.get_current_record()
|
|
300
301
|
record["table"] = self.db.get("forms", f"name = '{self.prev_form.r.name}'", "form_table")
|
|
301
302
|
if not q2app.q2_app.db_data.alter_column(record):
|
|
302
|
-
q2mess(self.db_data.migrate_error_list)
|
|
303
|
+
q2mess(self.q2_app.db_data.migrate_error_list)
|
|
303
304
|
|
|
304
305
|
def copy_to(self):
|
|
305
306
|
rows = self.get_grid_selected_rows()
|
q2rad/q2modules.py
CHANGED
|
@@ -104,7 +104,7 @@ class Q2Modules(Q2Form, Q2_save_and_run):
|
|
|
104
104
|
!= 2
|
|
105
105
|
):
|
|
106
106
|
return False
|
|
107
|
-
self.s.last_line = self.w.script.current_line()+1
|
|
107
|
+
self.s.last_line = self.w.script.current_line() + 1
|
|
108
108
|
# return super().before_crud_save()
|
|
109
109
|
|
|
110
110
|
def before_form_show(self):
|
|
@@ -118,8 +118,12 @@ class Q2Modules(Q2Form, Q2_save_and_run):
|
|
|
118
118
|
self.w.script.set_focus()
|
|
119
119
|
|
|
120
120
|
def script_runner(self):
|
|
121
|
-
self.q2_app.code_runner(self.r.script)()
|
|
121
|
+
# self.q2_app.code_runner(self.r.script)()
|
|
122
|
+
from q2rad.q2rad import run_module
|
|
123
|
+
run_module(script=self.r.script)
|
|
122
124
|
|
|
123
125
|
def editor_just_run(self):
|
|
124
|
-
self.q2_app.code_runner(self.s.script)()
|
|
126
|
+
# self.q2_app.code_runner(self.s.script)()
|
|
127
|
+
from q2rad.q2rad import run_module
|
|
128
|
+
run_module(script=self.s.script)
|
|
125
129
|
self.w.script.set_focus()
|
q2rad/q2rad.py
CHANGED
|
@@ -139,6 +139,7 @@ def run_module(module_name=None, _globals={}, _locals={}, script="", import_only
|
|
|
139
139
|
else:
|
|
140
140
|
__name__ = "__main__"
|
|
141
141
|
|
|
142
|
+
_globals.update(globals())
|
|
142
143
|
_globals.update(
|
|
143
144
|
{
|
|
144
145
|
"RETURN": None,
|
|
@@ -149,7 +150,6 @@ def run_module(module_name=None, _globals={}, _locals={}, script="", import_only
|
|
|
149
150
|
"__name__": __name__,
|
|
150
151
|
}
|
|
151
152
|
)
|
|
152
|
-
_globals.update(globals())
|
|
153
153
|
try:
|
|
154
154
|
if _locals:
|
|
155
155
|
exec(code["code"], _globals, _locals)
|
|
@@ -322,22 +322,26 @@ class Q2RadApp(Q2App):
|
|
|
322
322
|
self.set_title("Open Application")
|
|
323
323
|
Q2AppSelect().run(autoload_enabled)
|
|
324
324
|
if self.selected_application != {}:
|
|
325
|
-
self.open_selected_app(True)
|
|
326
|
-
self.check_app_update()
|
|
327
|
-
|
|
325
|
+
self.open_selected_app(True, migrate_db_data=False)
|
|
326
|
+
if self.check_app_update() or self.check_ext_update():
|
|
327
|
+
self.open_selected_app()
|
|
328
328
|
self.on_new_tab()
|
|
329
329
|
else:
|
|
330
330
|
self.close()
|
|
331
331
|
self.subwindow_count_changed()
|
|
332
332
|
|
|
333
|
-
def open_selected_app(self, go_to_q2market=False):
|
|
333
|
+
def open_selected_app(self, go_to_q2market=False, migrate_db_data=True):
|
|
334
334
|
wait = Q2WaitShow(5, "Loading app> ")
|
|
335
335
|
wait.step("Prepare")
|
|
336
336
|
self.clear_app_info()
|
|
337
337
|
wait.step("Migrate logic DB")
|
|
338
338
|
self.migrate_db_logic(self.db_logic)
|
|
339
|
-
|
|
340
|
-
|
|
339
|
+
if migrate_db_data:
|
|
340
|
+
wait.step("Migrate data DB")
|
|
341
|
+
self.migrate_db_data()
|
|
342
|
+
else:
|
|
343
|
+
wait.step("Create menus")
|
|
344
|
+
self.create_menu()
|
|
341
345
|
wait.step("looking for updates")
|
|
342
346
|
self.process_events()
|
|
343
347
|
wait.step("Done!")
|
|
@@ -554,9 +558,11 @@ class Q2RadApp(Q2App):
|
|
|
554
558
|
if self.dev_mode:
|
|
555
559
|
self.add_menu("Dev|Forms", self.run_forms)
|
|
556
560
|
self.add_menu("Dev|Modules", self.run_modules)
|
|
557
|
-
self.add_menu("Dev|
|
|
561
|
+
self.add_menu("Dev|Queres", self.run_queries)
|
|
558
562
|
self.add_menu("Dev|Reports", self.run_reports)
|
|
559
563
|
self.add_menu("Dev|Packages", self.run_packages)
|
|
564
|
+
self.add_menu("Dev|-")
|
|
565
|
+
self.add_menu("Dev|Finder", self.run_finder)
|
|
560
566
|
if not self.frozen:
|
|
561
567
|
self.add_menu("Dev|-")
|
|
562
568
|
self.add_menu("Dev|Make binary", self.make_binary)
|
|
@@ -908,7 +914,7 @@ class Q2RadApp(Q2App):
|
|
|
908
914
|
except Exception as e: # noqa F841
|
|
909
915
|
self.show_statusbar_mess("An error occurred while checking for updates")
|
|
910
916
|
return
|
|
911
|
-
if force_update or market_version and market_version
|
|
917
|
+
if force_update or (market_version and market_version > self.app_version):
|
|
912
918
|
if force_update:
|
|
913
919
|
update_detected = f"You are about to rewrite current App <b>{self.app_title}</b>!"
|
|
914
920
|
else:
|
|
@@ -924,20 +930,22 @@ class Q2RadApp(Q2App):
|
|
|
924
930
|
):
|
|
925
931
|
data = json.load(open_url(self.app_url + ".json")) # noqa F405
|
|
926
932
|
AppManager.import_json_app(data)
|
|
927
|
-
self.open_selected_app()
|
|
933
|
+
# self.open_selected_app()
|
|
934
|
+
return True
|
|
928
935
|
|
|
929
|
-
def check_ext_update(self, prefix="", force_update=False,
|
|
936
|
+
def check_ext_update(self, prefix="", force_update=False, _ext_url=""):
|
|
930
937
|
if self.frozen:
|
|
931
938
|
return
|
|
932
939
|
if prefix:
|
|
933
940
|
cu = q2cursor(f"select * from extensions where prefix='{prefix}'")
|
|
934
941
|
else:
|
|
935
942
|
cu = q2cursor(f"select * from extensions where checkupdates<>'' order by seq")
|
|
943
|
+
updated = None
|
|
936
944
|
for row in cu.records():
|
|
937
945
|
_prefix = row["prefix"]
|
|
938
946
|
|
|
939
|
-
if
|
|
940
|
-
ext_url = f"{
|
|
947
|
+
if _ext_url:
|
|
948
|
+
ext_url = f"{_ext_url}/{_prefix}"
|
|
941
949
|
elif self.app_url:
|
|
942
950
|
ext_url = f"{os.path.dirname(self.app_url)}/{_prefix}"
|
|
943
951
|
else:
|
|
@@ -949,8 +957,8 @@ class Q2RadApp(Q2App):
|
|
|
949
957
|
market_version = read_url(ext_url + ".version").decode("utf-8") # noqa F405
|
|
950
958
|
except Exception as e: # noqa F841
|
|
951
959
|
self.show_statusbar_mess("An error occurred while checking for updates")
|
|
952
|
-
|
|
953
|
-
if force_update or market_version and market_version
|
|
960
|
+
continue
|
|
961
|
+
if force_update or (market_version and market_version > ext_version):
|
|
954
962
|
if force_update:
|
|
955
963
|
update_detected = (
|
|
956
964
|
f"You are about to rewrite current Extension ({_prefix}) <b>{self.app_title}</b>!"
|
|
@@ -970,8 +978,10 @@ class Q2RadApp(Q2App):
|
|
|
970
978
|
):
|
|
971
979
|
data = json.load(open_url(ext_url + ".json")) # noqa F405
|
|
972
980
|
AppManager.import_json_app(data, prefix=_prefix)
|
|
973
|
-
update("extensions", {"prefix":row["prefix"], "version":market_version})
|
|
974
|
-
|
|
981
|
+
update("extensions", {"prefix": row["prefix"], "version": market_version})
|
|
982
|
+
updated = True
|
|
983
|
+
# self.open_selected_app()
|
|
984
|
+
return updated
|
|
975
985
|
|
|
976
986
|
def update_app_packages(self):
|
|
977
987
|
if self.frozen:
|
|
@@ -1111,6 +1121,71 @@ class Q2RadApp(Q2App):
|
|
|
1111
1121
|
def run_extensions(self):
|
|
1112
1122
|
Q2Extensions().run()
|
|
1113
1123
|
|
|
1124
|
+
def run_finder(self):
|
|
1125
|
+
class Q2Finder:
|
|
1126
|
+
def __init__(self, find_string):
|
|
1127
|
+
self.find_string = find_string
|
|
1128
|
+
|
|
1129
|
+
def get_columns_sql(self, table):
|
|
1130
|
+
return "select {{}} from {} where concat({}) like".format(
|
|
1131
|
+
table,
|
|
1132
|
+
", ".join([f"`{x}`" for x in q2app.q2_app.db_logic.get_database_columns(table).keys()]),
|
|
1133
|
+
)
|
|
1134
|
+
|
|
1135
|
+
def show_lines(self, table="lines"):
|
|
1136
|
+
sql = self.get_columns_sql(table).format("id") + " '%{}%'".format(self.find_string)
|
|
1137
|
+
where = "id in ({})".format(
|
|
1138
|
+
", ".join([x["id"] for x in q2cursor(sql, q2app.q2_app.db_logic).records()])
|
|
1139
|
+
)
|
|
1140
|
+
{"actions": Q2Actions, "lines": Q2Lines}[table]().run(where=where)
|
|
1141
|
+
|
|
1142
|
+
def show_other(self, table):
|
|
1143
|
+
sql = self.get_columns_sql(table).format("name") + " '%{}%'".format(self.find_string)
|
|
1144
|
+
where = "name in ({})".format(
|
|
1145
|
+
", ".join(['"' + x["name"] + '"' for x in q2cursor(sql, q2app.q2_app.db_logic).records()])
|
|
1146
|
+
)
|
|
1147
|
+
{"forms": Q2Forms, "reports": Q2Reports, "modules": Q2Modules, "queries": Q2Queries}[
|
|
1148
|
+
table
|
|
1149
|
+
]().run(where=where)
|
|
1150
|
+
|
|
1151
|
+
finder = Q2Form("Finder")
|
|
1152
|
+
|
|
1153
|
+
finder.add_control("find_string", "Find string", datalen=150)
|
|
1154
|
+
finder.add_control("/")
|
|
1155
|
+
finder.add_control("/h", "in")
|
|
1156
|
+
finder.add_control(
|
|
1157
|
+
"button",
|
|
1158
|
+
"Forms",
|
|
1159
|
+
control="button",
|
|
1160
|
+
valid=lambda: Q2Finder(finder.s.find_string).show_other("forms"),
|
|
1161
|
+
)
|
|
1162
|
+
finder.add_control(
|
|
1163
|
+
"button",
|
|
1164
|
+
"Lines",
|
|
1165
|
+
control="button",
|
|
1166
|
+
valid=lambda: Q2Finder(finder.s.find_string).show_lines("lines"),
|
|
1167
|
+
)
|
|
1168
|
+
finder.add_control(
|
|
1169
|
+
"button",
|
|
1170
|
+
"Actions",
|
|
1171
|
+
control="button",
|
|
1172
|
+
valid=lambda: Q2Finder(finder.s.find_string).show_lines("actions"),
|
|
1173
|
+
)
|
|
1174
|
+
finder.add_control(
|
|
1175
|
+
"button",
|
|
1176
|
+
"Modules",
|
|
1177
|
+
control="button",
|
|
1178
|
+
valid=lambda: Q2Finder(finder.s.find_string).show_other("modules"),
|
|
1179
|
+
)
|
|
1180
|
+
finder.add_control(
|
|
1181
|
+
"button",
|
|
1182
|
+
"Queries",
|
|
1183
|
+
control="button",
|
|
1184
|
+
valid=lambda: Q2Finder(finder.s.find_string).show_other("queries"),
|
|
1185
|
+
)
|
|
1186
|
+
finder.cancel_button = 1
|
|
1187
|
+
finder.run()
|
|
1188
|
+
|
|
1114
1189
|
def make_binary(self):
|
|
1115
1190
|
make_binary(self)
|
|
1116
1191
|
|
|
@@ -1195,12 +1270,12 @@ class Q2RadApp(Q2App):
|
|
|
1195
1270
|
form.after_delete = self.code_runner(form_dic["after_delete"], form)
|
|
1196
1271
|
|
|
1197
1272
|
# add controls
|
|
1198
|
-
for
|
|
1199
|
-
|
|
1200
|
-
if
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
form.add_control(**
|
|
1273
|
+
for control in cu.records():
|
|
1274
|
+
control["valid"] = self.code_runner(control["valid"], form)
|
|
1275
|
+
if control.get("_show"):
|
|
1276
|
+
control["show"] = self.code_runner(control["_show"], form)
|
|
1277
|
+
control["when"] = self.code_runner(control["_when"], form)
|
|
1278
|
+
form.add_control(**control)
|
|
1204
1279
|
run_module("_e_control", _locals=locals())
|
|
1205
1280
|
|
|
1206
1281
|
# add datasource
|
|
@@ -1231,14 +1306,14 @@ class Q2RadApp(Q2App):
|
|
|
1231
1306
|
ext_select = ""
|
|
1232
1307
|
sql = f"select * from (select * from actions where name = '{name}' order by seq ) qq {ext_select}"
|
|
1233
1308
|
cu = q2cursor(sql, self.db_logic)
|
|
1234
|
-
for
|
|
1235
|
-
if
|
|
1309
|
+
for action in cu.records():
|
|
1310
|
+
if action["action_mode"] == "1":
|
|
1236
1311
|
form.add_action("/crud")
|
|
1237
|
-
elif
|
|
1312
|
+
elif action["action_mode"] == "3":
|
|
1238
1313
|
form.add_action("-")
|
|
1239
1314
|
else:
|
|
1240
|
-
if
|
|
1241
|
-
child_form_name =
|
|
1315
|
+
if action["child_form"] and action["child_where"]:
|
|
1316
|
+
child_form_name = action["child_form"]
|
|
1242
1317
|
|
|
1243
1318
|
def get_action_form(child_form_name):
|
|
1244
1319
|
def worker():
|
|
@@ -1247,29 +1322,33 @@ class Q2RadApp(Q2App):
|
|
|
1247
1322
|
return worker
|
|
1248
1323
|
|
|
1249
1324
|
form.add_action(
|
|
1250
|
-
|
|
1251
|
-
self.code_runner(
|
|
1325
|
+
action["action_text"],
|
|
1326
|
+
self.code_runner(action["action_worker"]) if action["action_worker"] else None,
|
|
1252
1327
|
child_form=get_action_form(child_form_name),
|
|
1253
|
-
child_where=
|
|
1254
|
-
hotkey=
|
|
1255
|
-
mess=
|
|
1256
|
-
icon=
|
|
1257
|
-
tag=
|
|
1258
|
-
child_noshow=
|
|
1259
|
-
child_copy_mode=
|
|
1328
|
+
child_where=action["child_where"],
|
|
1329
|
+
hotkey=action["action_key"],
|
|
1330
|
+
mess=action["action_mess"],
|
|
1331
|
+
icon=action["action_icon"],
|
|
1332
|
+
tag=action["tag"],
|
|
1333
|
+
child_noshow=action["child_noshow"],
|
|
1334
|
+
child_copy_mode=action["child_copy_mode"],
|
|
1260
1335
|
eof_disabled=1,
|
|
1261
1336
|
)
|
|
1262
1337
|
else:
|
|
1263
1338
|
form.add_action(
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1339
|
+
action["action_text"],
|
|
1340
|
+
(
|
|
1341
|
+
self.code_runner(action["action_worker"], form=form)
|
|
1342
|
+
if action["action_worker"]
|
|
1343
|
+
else None
|
|
1344
|
+
),
|
|
1345
|
+
hotkey=action["action_key"],
|
|
1346
|
+
icon=action["action_icon"],
|
|
1347
|
+
mess=action["action_mess"],
|
|
1348
|
+
tag=action["tag"],
|
|
1349
|
+
child_noshow=action["child_noshow"],
|
|
1350
|
+
child_copy_mode=action["child_copy_mode"],
|
|
1351
|
+
eof_disabled=action["eof_disabled"],
|
|
1273
1352
|
)
|
|
1274
1353
|
run_module("_e_action", _locals=locals())
|
|
1275
1354
|
return form
|
q2rad/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.222"
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
q2rad/__init__.py,sha256=Y0Up-UTXOmCYC9llNmTF10CpDDgF2kv10pyHT3-YwmQ,183
|
|
2
2
|
q2rad/__main__.py,sha256=zP4JARM-FzFHM-vWLehx7c5N4v4m_F-TuMobCdFzr4Q,824
|
|
3
3
|
q2rad/q2actions.py,sha256=eExRvOSyLhT_v1XCR-DmLEhQ9g_LRkrlyXnwDCjT0LM,8258
|
|
4
|
-
q2rad/q2appmanager.py,sha256=
|
|
5
|
-
q2rad/q2appselector.py,sha256
|
|
4
|
+
q2rad/q2appmanager.py,sha256=8btKbT_NGBlNxscINVQnpdkLZ032OuvnFeYbXda4Xnw,20616
|
|
5
|
+
q2rad/q2appselector.py,sha256=bjl4MDg9DoU1h6NZOQDElaIGURjVQwiHnsUwr3kp3nc,18813
|
|
6
6
|
q2rad/q2constants.py,sha256=dQtN4OMvZw0FATDAFYjolI7eGMVUnNnbTl6qM-ggZ4I,3416
|
|
7
|
-
q2rad/q2extensions.py,sha256=
|
|
8
|
-
q2rad/q2forms.py,sha256=
|
|
9
|
-
q2rad/q2lines.py,sha256=
|
|
7
|
+
q2rad/q2extensions.py,sha256=ZAY2gXKjun666PeYfnqGH0X17ZmTgaOMmjCvxAIltJI,7595
|
|
8
|
+
q2rad/q2forms.py,sha256=e9FrhXjvi9ZmrhRBmnmsHoPxDQJqsanLnsPjY6rjaQI,11122
|
|
9
|
+
q2rad/q2lines.py,sha256=hZMfbqsd_UTACrsR5_GxmDqWY7uKcF-P5kMUeoY0KG8,19192
|
|
10
10
|
q2rad/q2make.py,sha256=wXoyBUwf2zaAl9JjWDCbjAteUElRq0O7ippyaMY9eug,6476
|
|
11
11
|
q2rad/q2market.py,sha256=RNXTNv-fFUgbzBGhHPNXlzGjsAHAtz71BRbTErJarNo,2641
|
|
12
|
-
q2rad/q2modules.py,sha256=
|
|
12
|
+
q2rad/q2modules.py,sha256=SpDdXJPG6IcVz1u3xnLoynA2rmiODCNZTZJT8s5iTRI,4538
|
|
13
13
|
q2rad/q2packages.py,sha256=y72L1RAw1OgtKGaL8lJ1KHIaers5I6kTZSiphwwrY0M,3808
|
|
14
14
|
q2rad/q2queries.py,sha256=l9SJ_T5Y38p23xa505EPZocCEmFw_a2y4ck0_-AHVP0,13119
|
|
15
|
-
q2rad/q2rad.py,sha256=
|
|
15
|
+
q2rad/q2rad.py,sha256=Mw3VZpK08JftJ9Ov5U8i2FdGhAYRlGGPeagmnQqTSlk,55424
|
|
16
16
|
q2rad/q2raddb.py,sha256=tMX971d_awTwiWeYLkZGSfdrIs88oiNHBAs2cMFvSbU,4685
|
|
17
17
|
q2rad/q2reports.py,sha256=1fewf1Zlz98raqTIWlRLIg-zTCYA2flGVqyIC120UEU,84802
|
|
18
18
|
q2rad/q2stylesettings.py,sha256=rEJLyLzsffJEXnMbg9bPB3KHLjYfw-49QgrtcYOfGV0,4769
|
|
19
19
|
q2rad/q2utils.py,sha256=Vb5K8Lbb7PzQGDiBEHFrPyDcytVnUSVXy9yIkvWM1Oc,19734
|
|
20
|
-
q2rad/version.py,sha256=
|
|
21
|
-
q2rad-0.1.
|
|
22
|
-
q2rad-0.1.
|
|
23
|
-
q2rad-0.1.
|
|
24
|
-
q2rad-0.1.
|
|
25
|
-
q2rad-0.1.
|
|
20
|
+
q2rad/version.py,sha256=NVwRTBgIeHjH6vZ080qRRs0_PMbU-1iWEOmyuOznMyA,23
|
|
21
|
+
q2rad-0.1.222.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
|
|
22
|
+
q2rad-0.1.222.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
|
|
23
|
+
q2rad-0.1.222.dist-info/METADATA,sha256=SGv212kqcX-QPThHnmml3mYlgYKX2sjQQ28RJqSMJkQ,3369
|
|
24
|
+
q2rad-0.1.222.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
|
|
25
|
+
q2rad-0.1.222.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|