first commit

This commit is contained in:
2024-11-07 17:44:29 +03:00
commit 643d6d8f65
247 changed files with 420800 additions and 0 deletions

View File

@@ -0,0 +1,229 @@
import json
data = '{"menu":[{"only_menu_item":false,"item_order":0,"layer":0,"app_name":"Tanımlama Menüsü","app_description":"Tanımlama Menüsü","app_path":"","uu_id":"166d9a3f-495e-4261-baab-dd456e9d294b","app_parent_items_id":null,"after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APP166d9a3f495e4261baabdd456e9d294b"},{"only_menu_item":false,"item_order":10,"layer":1,"app_name":"Firma İşlemleri","app_description":"Firma İşlemleri","app_path":"","uu_id":"d1aa4365-b1ef-4c91-ac8e-e3289f7eb075","app_parent_items_id":"166d9a3f-495e-4261-baab-dd456e9d294b","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APPd1aa4365b1ef4c91ac8ee3289f7eb075"},{"only_menu_item":true,"item_order":20,"layer":2,"app_name":"Firma Tanımlama","app_description":"Firma Tanımlama","app_path":"create_company","uu_id":"a3c60a25-ff46-4872-b209-9e501dde7b73","app_parent_items_id":"d1aa4365-b1ef-4c91-ac8e-e3289f7eb075","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APPa3c60a25ff464872b2099e501dde7b73"},{"only_menu_item":false,"item_order":30,"layer":1,"app_name":"Personel İşlemleri","app_description":"Personel İşlemleri","app_path":"","uu_id":"eebb591d-842b-4495-8721-e09552665a06","app_parent_items_id":"166d9a3f-495e-4261-baab-dd456e9d294b","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APPeebb591d842b44958721e09552665a06"},{"only_menu_item":true,"item_order":40,"layer":2,"app_name":"Kişi Tanımlama","app_description":"Kişi Tanımlama","app_path":"create_person","uu_id":"0c6c8cd2-f6b7-471f-9671-5cc1ac9f502e","app_parent_items_id":"eebb591d-842b-4495-8721-e09552665a06","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APP0c6c8cd2f6b7471f96715cc1ac9f502e"},{"only_menu_item":false,"item_order":50,"layer":1,"app_name":"Bina İşlemleri","app_description":"Bina İşlemleri","app_path":"","uu_id":"66627ebb-0425-425f-bc0f-8a943eb0a3ca","app_parent_items_id":"166d9a3f-495e-4261-baab-dd456e9d294b","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APP66627ebb0425425fbc0f8a943eb0a3ca"},{"only_menu_item":true,"item_order":60,"layer":2,"app_name":"Bina ve bölüm tanımlama","app_description":"Bina ve bölüm tanımlama","app_path":"create_build","uu_id":"173c4d8e-5577-4d4d-8712-f6fa2fbc8019","app_parent_items_id":"66627ebb-0425-425f-bc0f-8a943eb0a3ca","after_separator":false,"row_limit":100,"read":true,"write":false,"delete":false,"report_print":false,"report_export":false,"program_name":"APP173c4d8e55774d4d8712f6fa2fbc8019"}]}'
class Menu:
def __init__(self, json_data):
self.data = {}
self.json = json_data
self.app_name = None
self.app_description = None
self.app_path = None
self.uu_id = None
self.app_parent_items_id = None
self.children = {}
self.only_menu_item = None
self.item_order = None
self.layer = None
self.before_separator = None
self.row_limit = None
self.read = None
self.write = None
self.delete = None
self.report_print = None
self.report_export = None
self.program_name = None
self.dct = {}
self.import_data()
def add_item(
self,
only_menu_item,
item_order,
layer,
app_name,
app_description,
app_path,
uu_id,
app_parent_items_id,
before_separator,
row_limit,
read,
write,
delete,
report_print,
report_export,
program_name,
):
self.app_name = app_name
self.app_description = app_description
self.app_path = app_path
self.uu_id = uu_id
self.app_parent_items_id = app_parent_items_id
self.children = {}
self.only_menu_item = only_menu_item
self.item_order = item_order
self.layer = layer
self.before_separator = before_separator
self.row_limit = row_limit
self.read = read
self.write = write
self.delete = delete
self.report_print = report_print
self.report_export = report_export
self.program_name = program_name
self.dct = dict(
app_parent_items_id=app_parent_items_id,
uu_id=uu_id,
app_name=app_name,
children={},
app_path=app_path,
app_description=app_description,
only_menu_item=self.only_menu_item,
item_order=self.item_order,
layer=self.layer,
before_separator=self.before_separator,
row_limit=self.row_limit,
read=self.read,
write=self.write,
delete=self.delete,
report_print=self.report_print,
report_export=self.report_export,
program_name=self.program_name,
)
xx = self.find_data(self.data, str(app_parent_items_id))
if not xx:
self.data[self.uu_id] = self.dct
else:
xx["children"][self.uu_id] = self.dct
# xx.self.children[self.uu_id] = self.dct
# self.add_data(self.data, None)
def find_data(self, search_data, find_text):
if find_text is None:
return None
for x, y in search_data.items():
if x == find_text:
print(find_text, " bulundu")
# y["children"].append(self.dct)
return y
if "children" in y and len(y["children"]) > 0:
ret = self.find_data(y["children"], find_text)
if ret is not None:
return ret
return None
@staticmethod
def show_col(i, y):
print(
"layer :",
i,
" app_parent_items_id",
y["app_parent_items_id"],
"uu_id",
y["uu_id"],
"app_name",
y["app_name"],
"app_path",
y["app_path"],
"app_description",
y["app_description"],
"only_menu_item",
y["only_menu_item"],
"item_order",
y["item_order"],
"layer",
y["layer"],
"before_separator",
y["before_separator"],
"row_limit",
y["row_limit"],
"read",
y["read"],
"write",
y["write"],
"delete",
y["delete"],
"report_print",
y["report_print"],
"report_export",
y["report_export"],
"program_name",
y["program_name"],
)
def show_data(self):
# print(self.data)
for x, y in self.data.items():
self.show_col(0, y)
if type(y) is dict:
for a, b in y["children"].items():
self.show_col(1, b)
if type(y) is dict:
for c, d in b["children"].items():
self.show_col(2, d)
if type(y) is dict:
for e, f in d["children"].items():
self.show_col(3, f)
# print("show Dat :", x, y)
return self.data
def import_data(self):
if type(self.json) is str:
print("string miş")
self.json = json.loads(self.json)
for item, value in self.json.items():
if type(value) is list:
for x in range(len(value)):
print(f"t:{type(value[x])} : {value[x]}")
if type(value[x]) is list:
print("list", x)
if type(value[x]) is dict:
print(
value[x]["app_name"],
value[x]["app_description"],
value[x]["app_path"],
value[x]["uu_id"],
value[x]["app_parent_items_id"],
[],
value[x]["only_menu_item"],
value[x]["item_order"],
value[x]["layer"],
value[x]["after_separator"],
value[x]["row_limit"],
value[x]["read"],
value[x]["write"],
value[x]["delete"],
value[x]["report_print"],
value[x]["report_export"],
value[x]["program_name"],
)
self.add_item(
value[x]["only_menu_item"],
value[x]["item_order"],
value[x]["layer"],
value[x]["app_name"],
value[x]["app_description"],
value[x]["app_path"],
value[x]["uu_id"],
value[x]["app_parent_items_id"],
value[x]["after_separator"],
value[x]["row_limit"],
value[x]["read"],
value[x]["write"],
value[x]["delete"],
value[x]["report_print"],
value[x]["report_export"],
value[x]["program_name"],
)
# self.add_item(value[x]["app_name"], app_description, app_path, uu_id, app_parent_items_id):
# self.app_name = app_name
# for child in item.children:
# print(f" - {child.app_name}")
(0, [1, 3, 5])
(1, [2])
(3, [4])
(5, [6])
(4, [7])
menu = Menu(json.loads(data))
print("*" * 100)
menu.show_data()