graphify add
This commit is contained in:
1 parent
f19d8ee6a7
commit
91768be145
20 files changed
+21700
-1
No files matched your search
@@ -0,0 +1,999 @@
|
||||
{
|
||||
"communities": {
|
||||
"0": [
|
||||
"abstractbaseuser",
|
||||
"admin_panel_models",
|
||||
"admin_panel_models_articletype",
|
||||
"admin_panel_models_cachetable",
|
||||
"admin_panel_models_cachetable_str",
|
||||
"admin_panel_models_phonenumber",
|
||||
"admin_panel_models_phonenumber_str",
|
||||
"admin_panel_models_product",
|
||||
"admin_panel_models_product_meta",
|
||||
"admin_panel_models_product_str",
|
||||
"admin_panel_models_productstockhistory",
|
||||
"admin_panel_models_productstockhistory_meta",
|
||||
"admin_panel_models_productstockhistory_str",
|
||||
"admin_panel_models_rationale_97",
|
||||
"admin_panel_models_storeroomowner",
|
||||
"admin_panel_models_storetransferrequest",
|
||||
"admin_panel_models_storetransferrequest_clean",
|
||||
"admin_panel_models_storetransferrequest_meta",
|
||||
"admin_panel_models_storetransferrequest_status",
|
||||
"admin_panel_models_storetransferrequest_str",
|
||||
"admin_panel_models_userprofile",
|
||||
"admin_panel_models_userprofile_str",
|
||||
"admin_panel_models_visitqueue",
|
||||
"admin_panel_services",
|
||||
"admin_panel_services_approve_transfer_request",
|
||||
"admin_panel_services_cancel_transfer_request",
|
||||
"admin_panel_services_check_source_store_permission",
|
||||
"admin_panel_services_check_target_store_permission",
|
||||
"admin_panel_services_create_transfer_request",
|
||||
"admin_panel_services_get_product_current_stock",
|
||||
"admin_panel_services_rationale_160",
|
||||
"admin_panel_services_rationale_187",
|
||||
"admin_panel_services_rationale_20",
|
||||
"admin_panel_services_rationale_30",
|
||||
"admin_panel_services_rationale_40",
|
||||
"admin_panel_services_rationale_64",
|
||||
"admin_panel_services_rationale_99",
|
||||
"admin_panel_services_reject_transfer_request",
|
||||
"admin_panel_views_process_transfer_action",
|
||||
"admin_panel_views_rationale_1320",
|
||||
"atomic",
|
||||
"django_contrib_auth",
|
||||
"django_contrib_auth_models",
|
||||
"django_core_exceptions",
|
||||
"django_db_models",
|
||||
"django_dispatch",
|
||||
"django_utils_translation",
|
||||
"typing"
|
||||
],
|
||||
"1": [
|
||||
"admin_panel_context_processor",
|
||||
"admin_panel_context_processor_dashboxdata",
|
||||
"admin_panel_management_commands_send_daily_report",
|
||||
"admin_panel_management_commands_send_daily_report_command",
|
||||
"admin_panel_management_commands_send_daily_report_command_handle",
|
||||
"admin_panel_management_commands_send_daily_report_py_basecommand",
|
||||
"admin_panel_models_article",
|
||||
"admin_panel_models_article_meta",
|
||||
"admin_panel_models_customer",
|
||||
"admin_panel_models_customer_delete",
|
||||
"admin_panel_models_customer_meta",
|
||||
"admin_panel_models_customer_str",
|
||||
"admin_panel_models_factor",
|
||||
"admin_panel_models_factor_delete",
|
||||
"admin_panel_models_factor_meta",
|
||||
"admin_panel_models_factoriteam",
|
||||
"admin_panel_models_sarresid",
|
||||
"admin_panel_templatetags_custom_tags",
|
||||
"admin_panel_templatetags_custom_tags_has_group",
|
||||
"admin_panel_templatetags_custom_tags_tojalali",
|
||||
"admin_panel_templatetags_remove_q_p",
|
||||
"admin_panel_templatetags_remove_q_p_rationale_7",
|
||||
"admin_panel_templatetags_remove_q_p_remove_query_param",
|
||||
"admin_panel_views_customerhesabdariadd",
|
||||
"admin_panel_views_customersadd",
|
||||
"admin_panel_views_newfactor",
|
||||
"check_finance",
|
||||
"check_finance_check_financial_discrepancy",
|
||||
"csv",
|
||||
"datetime",
|
||||
"django",
|
||||
"django_core_asgi",
|
||||
"django_core_wsgi",
|
||||
"django_db_models_functions",
|
||||
"django_utils",
|
||||
"filter",
|
||||
"ghost_hunter",
|
||||
"ghost_hunter_run_360_audit",
|
||||
"khatibi_asgi",
|
||||
"khatibi_asgi_rationale_1",
|
||||
"khatibi_wsgi",
|
||||
"khatibi_wsgi_rationale_1",
|
||||
"os",
|
||||
"persiantools_jdatetime",
|
||||
"reconciliation_tool",
|
||||
"reconciliation_tool_run_audit",
|
||||
"requests"
|
||||
],
|
||||
"2": [
|
||||
"admin_panel_management_commands_gt_esh",
|
||||
"admin_panel_management_commands_gt_esh_command",
|
||||
"admin_panel_management_commands_gt_esh_command_add_arguments",
|
||||
"admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks",
|
||||
"admin_panel_management_commands_gt_esh_command_execute_hybrid_migration",
|
||||
"admin_panel_management_commands_gt_esh_command_handle",
|
||||
"admin_panel_management_commands_gt_esh_command_process_single_chunk",
|
||||
"admin_panel_management_commands_gt_esh_py_basecommand",
|
||||
"admin_panel_management_commands_gt_esh_rationale_115",
|
||||
"admin_panel_management_commands_gt_esh_rationale_123",
|
||||
"admin_panel_management_commands_gt_esh_rationale_89",
|
||||
"admin_panel_management_commands_sqlite_db_backup",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_handle",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_init",
|
||||
"admin_panel_management_commands_sqlite_db_backup_command_signal_handler",
|
||||
"admin_panel_management_commands_sqlite_db_backup_py_basecommand",
|
||||
"admin_panel_management_commands_sqlite_db_backup_rationale_158",
|
||||
"admin_panel_management_commands_sqlite_db_backup_rationale_30",
|
||||
"boto3",
|
||||
"botocore_config",
|
||||
"botocore_exceptions",
|
||||
"contextlib",
|
||||
"django_core_management_base",
|
||||
"fcntl",
|
||||
"khatibi_production_settings",
|
||||
"khatibi_settings",
|
||||
"khatibi_settings_rationale_1",
|
||||
"logging",
|
||||
"pathlib",
|
||||
"shutil",
|
||||
"signal",
|
||||
"sqlite3",
|
||||
"time"
|
||||
],
|
||||
"3": [
|
||||
"admin_panel_migrations_0004_factor_paytype",
|
||||
"admin_panel_migrations_0004_factor_paytype_migration",
|
||||
"admin_panel_migrations_0013_alter_factor_options",
|
||||
"admin_panel_migrations_0013_alter_factor_options_migration",
|
||||
"admin_panel_migrations_0014_auto_20220123_1348",
|
||||
"admin_panel_migrations_0014_auto_20220123_1348_migration",
|
||||
"admin_panel_migrations_0017_factoriteam_garantyesh",
|
||||
"admin_panel_migrations_0017_factoriteam_garantyesh_migration",
|
||||
"admin_panel_migrations_0020_auto_20220126_1532",
|
||||
"admin_panel_migrations_0020_auto_20220126_1532_migration",
|
||||
"admin_panel_migrations_0021_alter_article_type",
|
||||
"admin_panel_migrations_0021_alter_article_type_migration",
|
||||
"admin_panel_migrations_0022_article_typepy",
|
||||
"admin_panel_migrations_0022_article_typepy_migration",
|
||||
"admin_panel_migrations_0023_alter_article_typepy",
|
||||
"admin_panel_migrations_0023_alter_article_typepy_migration",
|
||||
"admin_panel_migrations_0027_alter_action_nazar",
|
||||
"admin_panel_migrations_0027_alter_action_nazar_migration",
|
||||
"admin_panel_migrations_0029_alter_article_options",
|
||||
"admin_panel_migrations_0029_alter_article_options_migration",
|
||||
"admin_panel_migrations_0034_alter_article_sarresid",
|
||||
"admin_panel_migrations_0034_alter_article_sarresid_migration",
|
||||
"admin_panel_migrations_0035_alter_article_sarresid",
|
||||
"admin_panel_migrations_0035_alter_article_sarresid_migration",
|
||||
"admin_panel_migrations_0037_sarresid_sarresiddt",
|
||||
"admin_panel_migrations_0037_sarresid_sarresiddt_migration",
|
||||
"admin_panel_migrations_0040_customer_laghv_bazdid",
|
||||
"admin_panel_migrations_0040_customer_laghv_bazdid_migration",
|
||||
"admin_panel_migrations_0047_alter_productinstore_movement_type",
|
||||
"admin_panel_migrations_0047_alter_productinstore_movement_type_migration",
|
||||
"admin_panel_migrations_0055_action_nextnazardt",
|
||||
"admin_panel_migrations_0055_action_nextnazardt_migration",
|
||||
"django_db"
|
||||
],
|
||||
"4": [
|
||||
"admin_panel_templates_admin_panel_customeridbackup_html",
|
||||
"admin_panel_templates_admin_panel_customeridbackup_html_all_products",
|
||||
"admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist",
|
||||
"admin_panel_templates_admin_panel_customeridbackup_html_orderlist",
|
||||
"admin_panel_templates_admin_panel_customeridfactorbackup_html",
|
||||
"admin_panel_templates_admin_panel_customeridfactorbackup_html_js",
|
||||
"admin_panel_templates_admin_panel_customernewbackup_html",
|
||||
"admin_panel_urls_customer",
|
||||
"admin_panel_urls_customeredit",
|
||||
"admin_panel_urls_newfactor",
|
||||
"api_endpoint_panel_customer_del",
|
||||
"api_endpoint_panel_productmojodi",
|
||||
"concept_category",
|
||||
"concept_client_side_form_logic",
|
||||
"concept_customer",
|
||||
"concept_factor",
|
||||
"concept_permission",
|
||||
"concept_product",
|
||||
"concept_productcategory",
|
||||
"concept_user",
|
||||
"django_concepts_csrf_token",
|
||||
"django_contrib_staticfiles_templatetags_static",
|
||||
"django_template_filter_tojalali",
|
||||
"django_template_tag_custom_tags",
|
||||
"django_template_tags_custom_tags",
|
||||
"django_template_tags_static",
|
||||
"django_url_admin_panel_customeredit",
|
||||
"django_url_admin_panel_customerfactors",
|
||||
"django_url_admin_panel_newfactor",
|
||||
"django_url_admin_panel_productsjson",
|
||||
"js_library_pdatepicker",
|
||||
"panel_urls_productmojodi"
|
||||
],
|
||||
"5": [
|
||||
"admin_panel_views",
|
||||
"admin_panel_views_actionjson",
|
||||
"admin_panel_views_api_check_status_inquiry",
|
||||
"admin_panel_views_customerjson",
|
||||
"admin_panel_views_customers",
|
||||
"admin_panel_views_p_login",
|
||||
"admin_panel_views_p_logout",
|
||||
"admin_panel_views_parse_cheque_result_html",
|
||||
"admin_panel_views_rationale_2852",
|
||||
"admin_panel_views_run_cbi_sayad_inquiry_logic",
|
||||
"admin_panel_views_solve_base64_captcha",
|
||||
"asgiref_sync",
|
||||
"asyncio",
|
||||
"base64",
|
||||
"csrf_exempt",
|
||||
"cv2",
|
||||
"ddddocr",
|
||||
"django_contrib_auth_decorators",
|
||||
"django_core_paginator",
|
||||
"django_urls_base",
|
||||
"django_views_decorators_csrf",
|
||||
"django_views_decorators_http",
|
||||
"json",
|
||||
"numpy",
|
||||
"persiantools",
|
||||
"playwright_async_api",
|
||||
"re"
|
||||
],
|
||||
"6": [
|
||||
"admin_panel_views_addsarresid",
|
||||
"admin_panel_views_bedehi",
|
||||
"admin_panel_views_bedehikhadamat",
|
||||
"admin_panel_views_bedehinasb",
|
||||
"admin_panel_views_customerdel",
|
||||
"admin_panel_views_customerssearch",
|
||||
"admin_panel_views_entezar",
|
||||
"admin_panel_views_factordel",
|
||||
"admin_panel_views_financial_dashboard",
|
||||
"admin_panel_views_hesabdari",
|
||||
"admin_panel_views_hesabdari_checkpass",
|
||||
"admin_panel_views_hesabdari_checkpassfail",
|
||||
"admin_panel_views_hesabdari_residnashone",
|
||||
"admin_panel_views_pardakhtnesiye",
|
||||
"admin_panel_views_passcheck",
|
||||
"admin_panel_views_productdel",
|
||||
"admin_panel_views_rationale_395",
|
||||
"admin_panel_views_report",
|
||||
"admin_panel_views_report_debtors_no_vosol",
|
||||
"admin_panel_views_rezayat",
|
||||
"admin_panel_views_rezayatedit",
|
||||
"admin_panel_views_sarresidh",
|
||||
"admin_panel_views_update_check_info",
|
||||
"login_required",
|
||||
"permission_required",
|
||||
"require_post"
|
||||
],
|
||||
"7": [
|
||||
"admin_panel_templates_admin_panel_base",
|
||||
"admin_panel_templates_admin_panel_basehesabdari",
|
||||
"admin_panel_templates_admin_panel_basestore",
|
||||
"admin_panel_templates_admin_panel_customerfactorbackup",
|
||||
"concept_django_custom_tags",
|
||||
"concept_url_admin_panel_actionlistusertoday",
|
||||
"concept_url_admin_panel_bedehi",
|
||||
"concept_url_admin_panel_customers",
|
||||
"concept_url_admin_panel_entezar",
|
||||
"concept_url_admin_panel_hesabdari",
|
||||
"concept_url_admin_panel_hesabdari_residnashone",
|
||||
"concept_url_admin_panel_index",
|
||||
"concept_url_admin_panel_operations",
|
||||
"concept_url_admin_panel_p_logout",
|
||||
"concept_url_admin_panel_productadd",
|
||||
"concept_url_admin_panel_rezayat",
|
||||
"concept_url_admin_panel_store",
|
||||
"concept_url_admin_panel_store_transfers",
|
||||
"concept_url_admin_panel_stores",
|
||||
"concept_url_panel_customer_factor_del",
|
||||
"static_admin_panel_bulma_min_css",
|
||||
"static_admin_panel_datatables_datatables_min_js",
|
||||
"static_admin_panel_kamadatepicker_min_js",
|
||||
"static_admin_panel_persian-datepicker_min_js",
|
||||
"static_admin_panel_style_css"
|
||||
],
|
||||
"8": [
|
||||
"admin_panel_migrations_0001_initial",
|
||||
"admin_panel_migrations_0001_initial_migration",
|
||||
"admin_panel_migrations_0007_productinstore_factor",
|
||||
"admin_panel_migrations_0007_productinstore_factor_migration",
|
||||
"admin_panel_migrations_0008_storeroom_user",
|
||||
"admin_panel_migrations_0008_storeroom_user_migration",
|
||||
"admin_panel_migrations_0018_alter_factoriteam_product",
|
||||
"admin_panel_migrations_0018_alter_factoriteam_product_migration",
|
||||
"admin_panel_migrations_0019_article_articletype",
|
||||
"admin_panel_migrations_0019_article_articletype_migration",
|
||||
"admin_panel_migrations_0024_action",
|
||||
"admin_panel_migrations_0024_action_migration",
|
||||
"admin_panel_migrations_0036_sarresid",
|
||||
"admin_panel_migrations_0036_sarresid_migration",
|
||||
"admin_panel_migrations_0038_auto_20240213_1735",
|
||||
"admin_panel_migrations_0038_auto_20240213_1735_migration",
|
||||
"admin_panel_migrations_0042_article_user",
|
||||
"admin_panel_migrations_0042_article_user_migration",
|
||||
"admin_panel_migrations_0046_auto_20260624_1818",
|
||||
"admin_panel_migrations_0046_auto_20260624_1818_migration",
|
||||
"admin_panel_migrations_0054_auto_20260715_2250",
|
||||
"admin_panel_migrations_0054_auto_20260715_2250_migration",
|
||||
"django_db_models_deletion"
|
||||
],
|
||||
"9": [
|
||||
"admin_panel_migrations_0011_storeroom_user",
|
||||
"admin_panel_migrations_0011_storeroom_user_migration",
|
||||
"admin_panel_migrations_0012_visitqueue_user",
|
||||
"admin_panel_migrations_0012_visitqueue_user_migration",
|
||||
"admin_panel_migrations_0015_auto_20220124_0858",
|
||||
"admin_panel_migrations_0015_auto_20220124_0858_migration",
|
||||
"admin_panel_migrations_0016_factor_user",
|
||||
"admin_panel_migrations_0016_factor_user_migration",
|
||||
"admin_panel_migrations_0026_auto_20220209_1924",
|
||||
"admin_panel_migrations_0026_auto_20220209_1924_migration",
|
||||
"admin_panel_migrations_0043_sarresid_user",
|
||||
"admin_panel_migrations_0043_sarresid_user_migration",
|
||||
"admin_panel_migrations_0045_auto_20260610_1421",
|
||||
"admin_panel_migrations_0045_auto_20260610_1421_migration",
|
||||
"admin_panel_migrations_0050_storetransferrequest",
|
||||
"admin_panel_migrations_0050_storetransferrequest_migration",
|
||||
"admin_panel_migrations_0051_auto_20260705_1356",
|
||||
"admin_panel_migrations_0051_auto_20260705_1356_migration",
|
||||
"admin_panel_migrations_0052_storeroomowner",
|
||||
"admin_panel_migrations_0052_storeroomowner_migration",
|
||||
"admin_panel_migrations_0053_storeroom_owners",
|
||||
"admin_panel_migrations_0053_storeroom_owners_migration",
|
||||
"django_conf"
|
||||
],
|
||||
"10": [
|
||||
"admin_panel_templates_admin_panel_login",
|
||||
"admin_panel_templates_admin_panel_storebk1",
|
||||
"django_csrf_token",
|
||||
"django_custom_tags",
|
||||
"django_static_files",
|
||||
"django_url_admin_panel_newstore",
|
||||
"django_url_admin_panel_operations",
|
||||
"django_url_admin_panel_p_login",
|
||||
"django_url_admin_panel_store",
|
||||
"form_field_password",
|
||||
"form_field_storename",
|
||||
"form_field_username",
|
||||
"javascript_kamadatepicker",
|
||||
"product_property_mojodi",
|
||||
"product_property_product_name",
|
||||
"static_admin_panel_bulma-rtl_min_css",
|
||||
"template_variable_message",
|
||||
"template_variable_productsum",
|
||||
"template_variable_s_id"
|
||||
],
|
||||
"11": [
|
||||
"admin_panel_models_productcategory",
|
||||
"admin_panel_models_productcategory_str",
|
||||
"admin_panel_models_productinstore",
|
||||
"admin_panel_models_productinstore_delete",
|
||||
"admin_panel_models_productinstore_meta",
|
||||
"admin_panel_models_productinstore_movementtype",
|
||||
"admin_panel_models_productinstore_save",
|
||||
"admin_panel_models_productinstore_str",
|
||||
"admin_panel_views_customer",
|
||||
"admin_panel_views_customerfactor",
|
||||
"admin_panel_views_customernew",
|
||||
"admin_panel_views_customernew2",
|
||||
"admin_panel_views_operationproduct",
|
||||
"admin_panel_views_operations",
|
||||
"admin_panel_views_productadd",
|
||||
"admin_panel_views_productedit",
|
||||
"admin_panel_views_store"
|
||||
],
|
||||
"12": [
|
||||
"admin_panel_templates_admin_panel_bedehbk",
|
||||
"admin_panel_templates_admin_panel_customeraction",
|
||||
"admin_panel_templates_admin_panel_customeractioninc_html",
|
||||
"admin_panel_templates_admin_panel_customersbk_html",
|
||||
"admin_panel_url_customernew",
|
||||
"admin_panel_urls_customernew",
|
||||
"admin_panel_urls_customernewaction",
|
||||
"concept_action_model",
|
||||
"concept_datatables",
|
||||
"concept_jquery",
|
||||
"django_template_tag_static",
|
||||
"django_template_tag_url",
|
||||
"library_bulma",
|
||||
"library_datatables",
|
||||
"library_pdatepicker"
|
||||
],
|
||||
"13": [
|
||||
"admin_models_user",
|
||||
"admin_panel_models_action",
|
||||
"admin_panel_views_actionlist",
|
||||
"admin_panel_views_actionlistall",
|
||||
"admin_panel_views_actionlisttoday",
|
||||
"admin_panel_views_actionlistuser",
|
||||
"admin_panel_views_actionlistusertoday",
|
||||
"admin_panel_views_customeraction",
|
||||
"admin_panel_views_customereditaction",
|
||||
"admin_panel_views_customernazar",
|
||||
"admin_panel_views_customernewaction",
|
||||
"admin_panel_views_rezayat_dashboard"
|
||||
],
|
||||
"14": [
|
||||
"admin_panel_templates_admin_panel_bedehi_html",
|
||||
"admin_panel_templates_admin_panel_hesabdaricheckpass_html",
|
||||
"admin_panel_urls_passcheck",
|
||||
"concept_all_sarresid",
|
||||
"django_context_variable_mandehesabkp",
|
||||
"django_templatetags_tojalali",
|
||||
"django_urls_admin_panel_bedehi",
|
||||
"django_urls_admin_panel_bedehikhadamat",
|
||||
"django_urls_admin_panel_bedehinasb",
|
||||
"django_urls_admin_panel_customer",
|
||||
"javascript_jquery"
|
||||
],
|
||||
"15": [
|
||||
"admin_admin",
|
||||
"admin_panel_admin",
|
||||
"admin_panel_admin_rationale_54",
|
||||
"admin_panel_admin_rationale_75",
|
||||
"admin_panel_admin_storeroomadmin",
|
||||
"admin_panel_admin_storeroomadmin_get_owners_count",
|
||||
"admin_panel_admin_storeroomownerinline",
|
||||
"admin_panel_admin_storetransferrequestadmin",
|
||||
"django_contrib",
|
||||
"register"
|
||||
],
|
||||
"16": [
|
||||
"admin_models",
|
||||
"admin_models_customer",
|
||||
"admin_models_factor",
|
||||
"admin_models_factoriteam",
|
||||
"admin_models_phonenumber",
|
||||
"admin_models_product",
|
||||
"admin_models_productcategory",
|
||||
"admin_models_productinstore",
|
||||
"admin_models_storeroom",
|
||||
"admin_models_visitqueue"
|
||||
],
|
||||
"17": [
|
||||
"admin_panel_templates_admin_panel_customerbase",
|
||||
"admin_panel_templates_admin_panel_customerid",
|
||||
"admin_panel_views_customer_delete",
|
||||
"admin_panel_views_customeredit",
|
||||
"admin_panel_views_customerhesabdari",
|
||||
"admin_panel_views_productsjson",
|
||||
"concept_url_admin_panel_newfactor",
|
||||
"django_contrib_auth_models_permission",
|
||||
"django_templatetags_static",
|
||||
"javascript_pdatepicker"
|
||||
],
|
||||
"18": [
|
||||
"admin_panel_data_customer",
|
||||
"admin_panel_data_factor",
|
||||
"admin_panel_data_sarresid",
|
||||
"admin_panel_templates_admin_panel_hesabdaricheckpassfail_html",
|
||||
"admin_panel_url_pardakhtnesiye",
|
||||
"admin_panel_url_passcheck",
|
||||
"django_permission_viewreportmali",
|
||||
"javascript_library_jquery",
|
||||
"javascript_library_pdatepicker"
|
||||
],
|
||||
"19": [
|
||||
"admin_panel_models_storeroom",
|
||||
"admin_panel_models_storeroom_meta",
|
||||
"admin_panel_models_storeroom_str",
|
||||
"admin_panel_views_newoperation",
|
||||
"admin_panel_views_newstore",
|
||||
"admin_panel_views_productmojodi",
|
||||
"admin_panel_views_rationale_1281",
|
||||
"admin_panel_views_store_transfers",
|
||||
"admin_panel_views_stores"
|
||||
],
|
||||
"20": [
|
||||
"admin_panel_views_customerfactors",
|
||||
"admin_panel_views_inventoryexception",
|
||||
"admin_panel_views_newfactor2",
|
||||
"admin_panel_views_parse_jalali_date",
|
||||
"admin_panel_views_parse_timestamp",
|
||||
"admin_panel_views_rationale_39",
|
||||
"admin_panel_views_rationale_53",
|
||||
"admin_panel_views_rationale_65",
|
||||
"exception"
|
||||
],
|
||||
"21": [
|
||||
"copilot_chat",
|
||||
"github_copilot_instructions",
|
||||
"github_copilot_instructions_graphify",
|
||||
"graphify-out_graph_json",
|
||||
"graphify-out_graph_report_md",
|
||||
"graphify-out_wiki_index_md",
|
||||
"graphify_explain",
|
||||
"graphify_path",
|
||||
"graphify_query"
|
||||
],
|
||||
"22": [
|
||||
"admin_panel_templates_admin_panel_hesabdariresidnashode",
|
||||
"admin_panel_urls_pardakhtnesiye",
|
||||
"django_permissions_admin_panel_viewreportmali",
|
||||
"lib_jquery",
|
||||
"lib_pdatepicker",
|
||||
"templatetags_custom_tags",
|
||||
"templatetags_custom_tags_tocurrency",
|
||||
"templatetags_custom_tags_tojalali"
|
||||
],
|
||||
"23": [
|
||||
"admin_panel_views_api_check_sabt_inquiry",
|
||||
"admin_panel_views_inventory_movements_report",
|
||||
"admin_panel_views_operation",
|
||||
"admin_panel_views_rationale_2875",
|
||||
"admin_panel_views_rationale_313",
|
||||
"admin_panel_views_rationale_43",
|
||||
"admin_panel_views_run_bpi_cheque_inquiry_logic",
|
||||
"admin_panel_views_safe_int"
|
||||
],
|
||||
"24": [
|
||||
"admin_apps",
|
||||
"admin_apps_adminconfig",
|
||||
"admin_apps_py_appconfig",
|
||||
"admin_panel_apps",
|
||||
"admin_panel_apps_adminpanelconfig",
|
||||
"admin_panel_apps_py_appconfig",
|
||||
"django_apps"
|
||||
],
|
||||
"25": [
|
||||
"admin_panel_migrations_0002_auto_20220114_1616",
|
||||
"admin_panel_migrations_0002_auto_20220114_1616_migration",
|
||||
"admin_panel_migrations_0003_auto_20220115_1401",
|
||||
"admin_panel_migrations_0003_auto_20220115_1401_migration",
|
||||
"admin_panel_migrations_0031_article_sarresid",
|
||||
"admin_panel_migrations_0031_article_sarresid_migration",
|
||||
"django_utils_timezone"
|
||||
],
|
||||
"26": [
|
||||
"entrypoint",
|
||||
"entrypoint_sh__entry",
|
||||
"manage",
|
||||
"manage_main",
|
||||
"manage_rationale_2",
|
||||
"manage_rationale_8",
|
||||
"sys"
|
||||
],
|
||||
"27": [
|
||||
"admin_init",
|
||||
"admin_urls",
|
||||
"admin_views",
|
||||
"admin_views_index",
|
||||
"django_http",
|
||||
"django_shortcuts"
|
||||
],
|
||||
"28": [
|
||||
"admin_panel_init",
|
||||
"admin_panel_urls",
|
||||
"django_conf_urls_static",
|
||||
"django_urls",
|
||||
"khatibi_urls",
|
||||
"khatibi_urls_rationale_1"
|
||||
],
|
||||
"29": [
|
||||
"admin_panel_templates_admin_panel_entezar_html",
|
||||
"concept_customer_data",
|
||||
"concept_kamadatepicker",
|
||||
"django_templatetags_custom_tags",
|
||||
"django_templatetags_custom_tags_tojalali"
|
||||
],
|
||||
"30": [
|
||||
"admin_panel_migrations_0056_auto_20260731_1824",
|
||||
"admin_panel_migrations_0056_auto_20260731_1824_migration",
|
||||
"django_core_validators"
|
||||
],
|
||||
"31": [
|
||||
"admin_panel_templates_admin_panel_customersbk_html_createcs",
|
||||
"admin_panel_templates_admin_panel_customersbk_html_openrow",
|
||||
"concept_customer_modal_ui"
|
||||
],
|
||||
"32": [
|
||||
"admin_panel_tests",
|
||||
"admin_tests",
|
||||
"django_test"
|
||||
],
|
||||
"33": [
|
||||
"concept_articl_model",
|
||||
"concept_customer_model",
|
||||
"django_context_variable_articls"
|
||||
],
|
||||
"34": [
|
||||
"admin_panel_migrations_0005_auto_20220121_2054",
|
||||
"admin_panel_migrations_0005_auto_20220121_2054_migration"
|
||||
],
|
||||
"35": [
|
||||
"admin_panel_migrations_0006_auto_20220121_2100",
|
||||
"admin_panel_migrations_0006_auto_20220121_2100_migration"
|
||||
],
|
||||
"36": [
|
||||
"admin_panel_migrations_0009_remove_storeroom_user",
|
||||
"admin_panel_migrations_0009_remove_storeroom_user_migration"
|
||||
],
|
||||
"37": [
|
||||
"admin_panel_migrations_0010_auto_20220122_1546",
|
||||
"admin_panel_migrations_0010_auto_20220122_1546_migration"
|
||||
],
|
||||
"38": [
|
||||
"admin_panel_migrations_0025_action_actiontype",
|
||||
"admin_panel_migrations_0025_action_actiontype_migration"
|
||||
],
|
||||
"39": [
|
||||
"admin_panel_migrations_0028_action_grade",
|
||||
"admin_panel_migrations_0028_action_grade_migration"
|
||||
],
|
||||
"40": [
|
||||
"admin_panel_migrations_0030_auto_20220414_1047",
|
||||
"admin_panel_migrations_0030_auto_20220414_1047_migration"
|
||||
],
|
||||
"41": [
|
||||
"admin_panel_migrations_0032_article_paystatus",
|
||||
"admin_panel_migrations_0032_article_paystatus_migration"
|
||||
],
|
||||
"42": [
|
||||
"admin_panel_migrations_0033_article_nahvepardakht",
|
||||
"admin_panel_migrations_0033_article_nahvepardakht_migration"
|
||||
],
|
||||
"43": [
|
||||
"admin_panel_migrations_0039_customer_last_bazdid_dt",
|
||||
"admin_panel_migrations_0039_customer_last_bazdid_dt_migration"
|
||||
],
|
||||
"44": [
|
||||
"admin_panel_migrations_0041_auto_20240216_1607",
|
||||
"admin_panel_migrations_0041_auto_20240216_1607_migration"
|
||||
],
|
||||
"45": [
|
||||
"admin_panel_migrations_0044_sarresid_desc",
|
||||
"admin_panel_migrations_0044_sarresid_desc_migration"
|
||||
],
|
||||
"46": [
|
||||
"admin_panel_migrations_0048_alter_productinstore_options",
|
||||
"admin_panel_migrations_0048_alter_productinstore_options_migration"
|
||||
],
|
||||
"47": [
|
||||
"admin_panel_migrations_0049_alter_productinstore_options",
|
||||
"admin_panel_migrations_0049_alter_productinstore_options_migration"
|
||||
],
|
||||
"48": [
|
||||
"gemini",
|
||||
"gemini_graphify"
|
||||
],
|
||||
"49": [
|
||||
"admin_migrations_init"
|
||||
],
|
||||
"50": [
|
||||
"admin_panel_customer_action_inc"
|
||||
],
|
||||
"51": [
|
||||
"admin_panel_customer_base_new"
|
||||
],
|
||||
"52": [
|
||||
"admin_panel_customer_customernazarinc"
|
||||
],
|
||||
"53": [
|
||||
"admin_panel_customer_factor"
|
||||
],
|
||||
"54": [
|
||||
"admin_panel_customer_hesabdari"
|
||||
],
|
||||
"55": [
|
||||
"admin_panel_customer_id_factor"
|
||||
],
|
||||
"56": [
|
||||
"admin_panel_customer_nazar"
|
||||
],
|
||||
"57": [
|
||||
"admin_panel_management_commands_init"
|
||||
],
|
||||
"58": [
|
||||
"admin_panel_management_init"
|
||||
],
|
||||
"59": [
|
||||
"admin_panel_migrations_init"
|
||||
],
|
||||
"60": [
|
||||
"admin_panel_templates_admin_panel_actionlist"
|
||||
],
|
||||
"61": [
|
||||
"admin_panel_templates_admin_panel_base_html"
|
||||
],
|
||||
"62": [
|
||||
"admin_panel_templates_admin_panel_customerNew"
|
||||
],
|
||||
"63": [
|
||||
"admin_panel_templates_admin_panel_customerNew2"
|
||||
],
|
||||
"64": [
|
||||
"admin_panel_templates_admin_panel_customerRezayat"
|
||||
],
|
||||
"65": [
|
||||
"admin_panel_templates_admin_panel_customerRezayatinc"
|
||||
],
|
||||
"66": [
|
||||
"admin_panel_templates_admin_panel_customerSarresid"
|
||||
],
|
||||
"67": [
|
||||
"admin_panel_templates_admin_panel_customerbasenew_html"
|
||||
],
|
||||
"68": [
|
||||
"admin_panel_templates_admin_panel_customers"
|
||||
],
|
||||
"69": [
|
||||
"admin_panel_templates_admin_panel_entezarbk"
|
||||
],
|
||||
"70": [
|
||||
"admin_panel_templates_admin_panel_financial_dashboard"
|
||||
],
|
||||
"71": [
|
||||
"admin_panel_templates_admin_panel_hesabdari"
|
||||
],
|
||||
"72": [
|
||||
"admin_panel_templates_admin_panel_index"
|
||||
],
|
||||
"73": [
|
||||
"admin_panel_templates_admin_panel_newOperation"
|
||||
],
|
||||
"74": [
|
||||
"admin_panel_templates_admin_panel_operations"
|
||||
],
|
||||
"75": [
|
||||
"admin_panel_templates_admin_panel_operationsbk"
|
||||
],
|
||||
"76": [
|
||||
"admin_panel_templates_admin_panel_report"
|
||||
],
|
||||
"77": [
|
||||
"admin_panel_templates_admin_panel_report_debtors_no_vosol"
|
||||
],
|
||||
"78": [
|
||||
"admin_panel_templates_admin_panel_report_inventory_movements"
|
||||
],
|
||||
"79": [
|
||||
"admin_panel_templates_admin_panel_report_rezayat"
|
||||
],
|
||||
"80": [
|
||||
"admin_panel_templates_admin_panel_reportchecknesiye"
|
||||
],
|
||||
"81": [
|
||||
"admin_panel_templates_admin_panel_rezayat"
|
||||
],
|
||||
"82": [
|
||||
"admin_panel_templates_admin_panel_store"
|
||||
],
|
||||
"83": [
|
||||
"admin_panel_templates_admin_panel_store_transfers"
|
||||
],
|
||||
"84": [
|
||||
"admin_panel_templates_admin_panel_stores"
|
||||
],
|
||||
"85": [
|
||||
"admin_panel_templatetags_custom_tags_tocurrency"
|
||||
],
|
||||
"86": [
|
||||
"admin_panel_templatetags_init"
|
||||
],
|
||||
"87": [
|
||||
"admin_panel_urls_newstore"
|
||||
],
|
||||
"88": [
|
||||
"admin_panel_urls_processtransferaction"
|
||||
],
|
||||
"89": [
|
||||
"admin_panel_urls_rezayatedit"
|
||||
],
|
||||
"90": [
|
||||
"khatibi_init"
|
||||
],
|
||||
"91": [
|
||||
"requirements2_txt"
|
||||
],
|
||||
"92": [
|
||||
"requirements_txt"
|
||||
]
|
||||
},
|
||||
"cohesion": {
|
||||
"0": 0.0673758865248227,
|
||||
"1": 0.07123034227567067,
|
||||
"2": 0.06606606606606606,
|
||||
"3": 0.06060606060606061,
|
||||
"4": 0.06653225806451613,
|
||||
"5": 0.08262108262108261,
|
||||
"6": 0.12923076923076923,
|
||||
"7": 0.08333333333333333,
|
||||
"8": 0.08695652173913043,
|
||||
"9": 0.08695652173913043,
|
||||
"10": 0.1111111111111111,
|
||||
"11": 0.14705882352941177,
|
||||
"12": 0.1523809523809524,
|
||||
"13": 0.3181818181818182,
|
||||
"14": 0.2,
|
||||
"15": 0.2222222222222222,
|
||||
"16": 0.2,
|
||||
"17": 0.2,
|
||||
"18": 0.2222222222222222,
|
||||
"19": 0.2222222222222222,
|
||||
"20": 0.2222222222222222,
|
||||
"21": 0.2222222222222222,
|
||||
"22": 0.32142857142857145,
|
||||
"23": 0.25,
|
||||
"24": 0.2857142857142857,
|
||||
"25": 0.2857142857142857,
|
||||
"26": 0.2857142857142857,
|
||||
"27": 0.3333333333333333,
|
||||
"28": 0.4666666666666667,
|
||||
"29": 0.4,
|
||||
"30": 0.6666666666666666,
|
||||
"31": 0.6666666666666666,
|
||||
"32": 0.6666666666666666,
|
||||
"33": 0.6666666666666666,
|
||||
"34": 1.0,
|
||||
"35": 1.0,
|
||||
"36": 1.0,
|
||||
"37": 1.0,
|
||||
"38": 1.0,
|
||||
"39": 1.0,
|
||||
"40": 1.0,
|
||||
"41": 1.0,
|
||||
"42": 1.0,
|
||||
"43": 1.0,
|
||||
"44": 1.0,
|
||||
"45": 1.0,
|
||||
"46": 1.0,
|
||||
"47": 1.0,
|
||||
"48": 1.0,
|
||||
"49": 1.0,
|
||||
"50": 1.0,
|
||||
"51": 1.0,
|
||||
"52": 1.0,
|
||||
"53": 1.0,
|
||||
"54": 1.0,
|
||||
"55": 1.0,
|
||||
"56": 1.0,
|
||||
"57": 1.0,
|
||||
"58": 1.0,
|
||||
"59": 1.0,
|
||||
"60": 1.0,
|
||||
"61": 1.0,
|
||||
"62": 1.0,
|
||||
"63": 1.0,
|
||||
"64": 1.0,
|
||||
"65": 1.0,
|
||||
"66": 1.0,
|
||||
"67": 1.0,
|
||||
"68": 1.0,
|
||||
"69": 1.0,
|
||||
"70": 1.0,
|
||||
"71": 1.0,
|
||||
"72": 1.0,
|
||||
"73": 1.0,
|
||||
"74": 1.0,
|
||||
"75": 1.0,
|
||||
"76": 1.0,
|
||||
"77": 1.0,
|
||||
"78": 1.0,
|
||||
"79": 1.0,
|
||||
"80": 1.0,
|
||||
"81": 1.0,
|
||||
"82": 1.0,
|
||||
"83": 1.0,
|
||||
"84": 1.0,
|
||||
"85": 1.0,
|
||||
"86": 1.0,
|
||||
"87": 1.0,
|
||||
"88": 1.0,
|
||||
"89": 1.0,
|
||||
"90": 1.0,
|
||||
"91": 1.0,
|
||||
"92": 1.0
|
||||
},
|
||||
"gods": [
|
||||
{
|
||||
"id": "admin_panel_models_storeroom",
|
||||
"label": "StoreRoom",
|
||||
"degree": 25
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_productinstore",
|
||||
"label": "ProductInStore",
|
||||
"degree": 23
|
||||
},
|
||||
{
|
||||
"id": "admin_models_user",
|
||||
"label": "User",
|
||||
"degree": 21
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_action",
|
||||
"label": "Action",
|
||||
"degree": 20
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_product",
|
||||
"label": "Product",
|
||||
"degree": 18
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_storetransferrequest",
|
||||
"label": "StoreTransferRequest",
|
||||
"degree": 15
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_article",
|
||||
"label": "Article",
|
||||
"degree": 15
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_templates_admin_panel_customeridbackup_html",
|
||||
"label": "Customer ID Backup/New Factor Template",
|
||||
"degree": 15
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_productcategory",
|
||||
"label": "ProductCategory",
|
||||
"degree": 14
|
||||
},
|
||||
{
|
||||
"id": "admin_panel_models_customer",
|
||||
"label": "Customer",
|
||||
"degree": 14
|
||||
}
|
||||
],
|
||||
"surprises": [
|
||||
{
|
||||
"source": "VisitQueue",
|
||||
"target": "User",
|
||||
"source_files": [
|
||||
"admin_panel/models.py",
|
||||
"admin/models.py"
|
||||
],
|
||||
"confidence": "INFERRED",
|
||||
"relation": "uses",
|
||||
"why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `VisitQueue` unexpectedly reaches hub `User`"
|
||||
},
|
||||
{
|
||||
"source": "Factor",
|
||||
"target": "User",
|
||||
"source_files": [
|
||||
"admin_panel/models.py",
|
||||
"admin/models.py"
|
||||
],
|
||||
"confidence": "INFERRED",
|
||||
"relation": "uses",
|
||||
"why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities"
|
||||
},
|
||||
{
|
||||
"source": "StoreRoom",
|
||||
"target": "User",
|
||||
"source_files": [
|
||||
"admin_panel/models.py",
|
||||
"admin/models.py"
|
||||
],
|
||||
"confidence": "INFERRED",
|
||||
"relation": "uses",
|
||||
"why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities"
|
||||
},
|
||||
{
|
||||
"source": "StoreRoomOwner",
|
||||
"target": "User",
|
||||
"source_files": [
|
||||
"admin_panel/models.py",
|
||||
"admin/models.py"
|
||||
],
|
||||
"confidence": "INFERRED",
|
||||
"relation": "uses",
|
||||
"why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities"
|
||||
},
|
||||
{
|
||||
"source": "StoreTransferRequest",
|
||||
"target": "User",
|
||||
"source_files": [
|
||||
"admin_panel/models.py",
|
||||
"admin/models.py"
|
||||
],
|
||||
"confidence": "INFERRED",
|
||||
"relation": "uses",
|
||||
"why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities"
|
||||
}
|
||||
],
|
||||
"tokens": {
|
||||
"input": 76900,
|
||||
"output": 126792
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"0": "User Action Views", "1": "Inventory and Product Models", "2": "Daily Reporting Command", "3": "Customer Admin Templates", "4": "Database Schema Migrations", "5": "Admin Panel URLs", "6": "Database Backup Command", "7": "Initial Database Migrations", "8": "User Relation Migrations", "9": "Financial and Accounting Views", "10": "Invoice Management Logic", "11": "Django Admin Configuration", "12": "Core Application Models", "13": "Resource Cleanup Command", "14": "Django App Configurations", "15": "Timezone-related Migrations", "16": "Application Entrypoint Scripts", "17": "Core Admin App", "18": "Project URL Configuration", "19": "Graphify Tooling", "20": "Data Validation Migration", "21": "Application Tests", "22": "Database Schema Migration", "23": "Database Schema Migration", "24": "Remove StoreRoom User Relation", "25": "Database Schema Migration", "26": "Add Action Type Field", "27": "Add Action Grade Field", "28": "Database Schema Migration", "29": "Add Article Payment Status", "30": "Add Article Payment Method", "31": "Add Customer Last Visit", "32": "Database Schema Migration", "33": "Add Sarresid Description", "34": "Update ProductInStore Options", "35": "Update ProductInStore Options", "36": "AI Tooling Documentation", "37": "Admin Migrations Package", "38": "Customer Action Partial", "39": "New Customer Base Template", "40": "Customer Feedback Partial", "41": "Customer Invoice Detail", "42": "Customer Accounting Template", "43": "Customer Invoice List", "44": "Customer Feedback Page", "45": "Management Commands Package", "46": "Management Package", "47": "Admin Panel Migrations Package", "48": "Action List Template", "49": "New Customer Invoice Page", "50": "New Customer Invoice V2", "51": "Customer Satisfaction List", "52": "Customer Satisfaction Partial", "53": "Customer Debt Management", "54": "Customer List Page", "55": "Customer List Backup Template", "56": "Waiting List Backup Template", "57": "Financial Dashboard", "58": "Accounting Main View", "59": "Admin Panel Index Page", "60": "New Inventory Operation", "61": "Inventory Operations List", "62": "Operations Backup Template", "63": "Financial Report Template", "64": "Debt Collection Dashboard", "65": "Inventory Movement Report", "66": "Customer Satisfaction Dashboard", "67": "Check and Credit Report", "68": "Satisfaction List Template", "69": "Store Inventory Template", "70": "Store Transfers Template", "71": "Stores List Template", "72": "Template Tags Package", "73": "Customer Detail URL", "74": "New Store URL", "75": "Process Transfer URL", "76": "Edit Satisfaction URL", "77": "Main Project Package", "78": "Extended Requirements File", "79": "Project Requirements File"}
|
||||
@@ -0,0 +1 @@
|
||||
{"0": "dc38416453f219cd", "1": "17677da135e176af", "2": "a173e495d86da278", "3": "2ac4a8f7fd725f39", "4": "7cd0b8c5a73aaae2", "5": "0666b74f90562078", "6": "c3f18528373c1e6e", "7": "1aa60a8e7dec6306", "8": "0ecf8267dd379fc7", "9": "110a96d098e68da1", "10": "019e40911d267493", "11": "3cc770d8cc99f8ae", "12": "d8399135bcf129db", "13": "dbfbf8557361f5ea", "14": "1cdbbc0afb5b81e2", "15": "a19c211702401a5b", "16": "a9087ce814efe96b", "17": "28ebb54ffa686f35", "18": "2db67510f080898c", "19": "8c2d0656a6e54e1f", "20": "cfbcf8cef78c5757", "21": "37de28eabfcc656a", "22": "6886ad7a5751faca", "23": "9fdcab2ed5d20e49", "24": "a1a1f3c1cdff72cf", "25": "2f1621907db6f86f", "26": "9cc7a507cfecd8fb", "27": "edb619bf5ac0fc49", "28": "8cb6b3db3aadb973", "29": "d5c0f5f6714c9991", "30": "9948fb8b548535ed", "31": "52502a4c1ef75ce6", "32": "8d20e5c1bce8916d", "33": "90e57f26f669372d", "34": "bf60a8731033e467", "35": "6cef5bc37e710e62", "36": "66ed76491a412a72", "37": "e67668b62ee6c62c", "38": "68aee39cd24db354", "39": "09b7297ea62919f2", "40": "054401d27ffaa4b2", "41": "dace81c1995fb321", "42": "19e301aeace95bb2", "43": "d6fd0cec4634a0b0", "44": "0230d355a6dabb54", "45": "5cebbb5528321795", "46": "536fe28d24c361f5", "47": "b08bdc2712cb0f12", "48": "6ce8444f504022cc", "49": "d8e34a3b3eb43ee0", "50": "056b8d6b5072289b", "51": "171c34c74a95481b", "52": "73e9eca6f2ca1c9b", "53": "dcc2230ae751c29a", "54": "2f5417a69eb1d15e", "55": "864760002345205a", "56": "d55cb638532fdfeb", "57": "06cae4389208269f", "58": "e9c0a7be255e9b26", "59": "455b4ca39e55ecb0", "60": "8105c55538c34081", "61": "74304670b54c018f", "62": "a27f876eabb044b2", "63": "73f74dd7a40776d6", "64": "29d433d164b99f89", "65": "3f44aa48aa05d597", "66": "ca8a7efba0a3e579", "67": "5cc770af9d184d77", "68": "2d31fa723128b164", "69": "9d814c2520329846", "70": "f97d1a5c3a066598", "71": "14f84a6e4cd311d6", "72": "0bf6f9d0aeab4fd8", "73": "f16cb34aa8bf540c", "74": "8b491bb3ff0649dd", "75": "638812cee15d1b9b", "76": "3dd16d68928a479c", "77": "72dad91d66d471ce", "78": "353a9d09eaae47ea", "79": "2d29260874184e4a"}
|
||||
@@ -0,0 +1 @@
|
||||
D:\Projects\khatibi
|
||||
@@ -0,0 +1 @@
|
||||
{"output_tokens": 126792}
|
||||
@@ -0,0 +1,214 @@
|
||||
# Graph Report - khatibi (2026-10-09)
|
||||
|
||||
## Corpus Check
|
||||
- cluster-only mode — file stats not available
|
||||
|
||||
## Summary
|
||||
- 548 nodes · 887 edges · 80 communities (14 shown, 66 thin omitted)
|
||||
- Extraction: 85% EXTRACTED · 15% INFERRED · 0% AMBIGUOUS · INFERRED: 131 edges (avg confidence: 0.92)
|
||||
- Token cost: 2,543 input · 5,433 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `f19d8ee6`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
- User Action Views
|
||||
- Inventory and Product Models
|
||||
- Daily Reporting Command
|
||||
- Customer Admin Templates
|
||||
- Database Schema Migrations
|
||||
- Admin Panel URLs
|
||||
- Database Backup Command
|
||||
- Initial Database Migrations
|
||||
- User Relation Migrations
|
||||
- Financial and Accounting Views
|
||||
- Invoice Management Logic
|
||||
- Django Admin Configuration
|
||||
- Core Application Models
|
||||
- Resource Cleanup Command
|
||||
- Django App Configurations
|
||||
- Timezone-related Migrations
|
||||
- Application Entrypoint Scripts
|
||||
- Graphify Tooling
|
||||
- Data Validation Migration
|
||||
- Database Schema Migration
|
||||
- Database Schema Migration
|
||||
- Remove StoreRoom User Relation
|
||||
- Database Schema Migration
|
||||
- Add Action Type Field
|
||||
- Add Action Grade Field
|
||||
- Database Schema Migration
|
||||
- Add Article Payment Status
|
||||
- Add Article Payment Method
|
||||
- Add Customer Last Visit
|
||||
- Database Schema Migration
|
||||
- Add Sarresid Description
|
||||
- Update ProductInStore Options
|
||||
- Update ProductInStore Options
|
||||
- AI Tooling Documentation
|
||||
- Customer Action Partial
|
||||
- New Customer Base Template
|
||||
- Customer Feedback Partial
|
||||
- Customer Invoice Detail
|
||||
- Customer Accounting Template
|
||||
- Customer Invoice List
|
||||
- Customer Feedback Page
|
||||
- Action List Template
|
||||
- New Customer Invoice Page
|
||||
- New Customer Invoice V2
|
||||
- Customer Satisfaction List
|
||||
- Customer Satisfaction Partial
|
||||
- Customer Debt Management
|
||||
- Customer List Page
|
||||
- Financial Dashboard
|
||||
- Accounting Main View
|
||||
- New Inventory Operation
|
||||
- Inventory Operations List
|
||||
- Operations Backup Template
|
||||
- Financial Report Template
|
||||
- Debt Collection Dashboard
|
||||
- Inventory Movement Report
|
||||
- Customer Satisfaction Dashboard
|
||||
- Check and Credit Report
|
||||
- Satisfaction List Template
|
||||
- Store Inventory Template
|
||||
- Store Transfers Template
|
||||
- Stores List Template
|
||||
- Extended Requirements File
|
||||
- Project Requirements File
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `StoreRoom` - 25 edges
|
||||
2. `ProductInStore` - 23 edges
|
||||
3. `User` - 21 edges
|
||||
4. `Action` - 20 edges
|
||||
5. `Product` - 18 edges
|
||||
6. `StoreTransferRequest` - 15 edges
|
||||
7. `Article` - 15 edges
|
||||
8. `ProductCategory` - 14 edges
|
||||
9. `Customer` - 13 edges
|
||||
10. `approve_transfer_request()` - 12 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `VisitQueue` --uses--> `User` [INFERRED]
|
||||
admin_panel/models.py → admin/models.py
|
||||
- `Factor` --uses--> `User` [INFERRED]
|
||||
admin_panel/models.py → admin/models.py
|
||||
- `StoreRoom` --uses--> `User` [INFERRED]
|
||||
admin_panel/models.py → admin/models.py
|
||||
- `StoreRoomOwner` --uses--> `User` [INFERRED]
|
||||
admin_panel/models.py → admin/models.py
|
||||
- `StoreTransferRequest` --uses--> `User` [INFERRED]
|
||||
admin_panel/models.py → admin/models.py
|
||||
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Hyperedges (group relationships)
|
||||
- **Customer Satisfaction & Collection** — admin_panel_templates_admin_panel_report_rezayat, admin_panel_templates_admin_panel_report_debtors_no_vosol, admin_panel_customer_customernazarinc [EXTRACTED 0.90]
|
||||
- **Customer Management Flow** — admin_panel_customer_base_new, admin_panel_customer_action_inc, admin_panel_customer_id_factor, admin_panel_customer_hesabdari [EXTRACTED 1.00]
|
||||
- **Financial & Debt Management** — admin_panel_templates_admin_panel_financial_dashboard, admin_panel_templates_admin_panel_hesabdari [EXTRACTED 1.00]
|
||||
- **Inventory Management System** — admin_panel_templates_admin_panel_store, admin_panel_templates_admin_panel_store_transfers, admin_panel_templates_admin_panel_report_inventory_movements, admin_panel_templates_admin_panel_operationsbk [EXTRACTED 1.00]
|
||||
- **Login Form** — admin_panel_templates_admin_panel_login, django_url_admin_panel_p_login, django_csrf_token, form_field_username, form_field_password [EXTRACTED]
|
||||
- **New Store Form** — admin_panel_templates_admin_panel_storebk1, django_url_admin_panel_newstore, django_csrf_token, form_field_storename [EXTRACTED]
|
||||
- **Store Inventory Display** — admin_panel_templates_admin_panel_storebk1, template_variable_productsum, product_property_product_name, product_property_mojodi [EXTRACTED]
|
||||
- **Customer Lifecycle Management** — admin_panel_templates_admin_panel_customers [INFERRED 0.85]
|
||||
- **Customer Interaction Lifecycle** — admin_panel_templates_admin_panel_customers, admin_panel_templates_admin_panel_customerNew, admin_panel_templates_admin_panel_customerRezayat [INFERRED 0.85]
|
||||
- **Financial & Debt Management Flow** — admin_panel_templates_admin_panel_customerSarresid, admin_panel_templates_admin_panel_hesabdari, admin_panel_templates_admin_panel_financial_dashboard [INFERRED 0.90]
|
||||
- **Settle Due Payment Flow** — admin_panel_templates_admin_panel_hesabdaricheckpassfail_html, admin_panel_url_passcheck, admin_panel_url_pardakhtnesiye [INFERRED 0.90]
|
||||
- **Accounting and Billing Flow** — admin_panel_templates_admin_panel_basehesabdari, admin_panel_templates_admin_panel_bedehi, admin_panel_templates_admin_panel_hesabdariheckpass, concept_url_admin_panel_hesabdari, concept_url_admin_panel_bedehi, concept_url_admin_panel_pardakhtnesiye [INFERRED]
|
||||
- **Check Clearing Flow** — admin_panel_templates_admin_panel_hesabdariresidnashode, admin_panel_views_passcheck [INFERRED]
|
||||
- **Customer Management Flow** — admin_panel_templates_admin_panel_customerbase, admin_panel_templates_admin_panel_customerbasenew, admin_panel_templates_admin_panel_customeraction, admin_panel_templates_admin_panel_customerid, admin_panel_templates_admin_panel_customeridfactorbackup, concept_url_admin_panel_customers, concept_url_admin_panel_customeredit, concept_url_admin_panel_newfactor [INFERRED]
|
||||
- **Nesiye Payment Flow** — admin_panel_templates_admin_panel_hesabdariresidnashode, admin_panel_urls_pardakhtnesiye [INFERRED]
|
||||
- **Store and Inventory Management Flow** — admin_panel_templates_admin_panel_basestore, concept_url_admin_panel_stores, concept_url_admin_panel_productadd, concept_url_admin_panel_operations, concept_url_admin_panel_store_transfers, concept_url_admin_panel_productsjson, concept_url_panel_productmojodi [INFERRED]
|
||||
|
||||
## Communities (80 total, 66 thin omitted)
|
||||
|
||||
### Community 0 - "User Action Views"
|
||||
Cohesion: 0.05
|
||||
Nodes (57): User, Action, ProductCategory, ActionJson(), ActionList(), ActionListAll(), ActionListToday(), ActionListUser() (+49 more)
|
||||
|
||||
### Community 1 - "Inventory and Product Models"
|
||||
Cohesion: 0.06
|
||||
Nodes (30): ArticleType, CacheTable, PhoneNumber, Product, Meta, ProductInStore, Meta, MovementType (+22 more)
|
||||
|
||||
### Community 2 - "Daily Reporting Command"
|
||||
Cohesion: 0.08
|
||||
Nodes (15): Command, Article, Meta, Customer, Meta, Sarresid, toJalali(), remove_query_param() (+7 more)
|
||||
|
||||
### Community 3 - "Customer Admin Templates"
|
||||
Cohesion: 0.08
|
||||
Nodes (22): admin_panel/base.html, admin_panel/templates/admin_panel/customerActionInc.html, admin_panel/templates/admin_panel/customerBaseNew.html, Django Custom Tags: custom_tags, URL: admin_panel:bedehi, URL: admin_panel:bedehiKhadamat, URL: admin_panel:bedehiNasb, URL: admin_panel:customer (+14 more)
|
||||
|
||||
### Community 4 - "Database Schema Migrations"
|
||||
Cohesion: 0.06
|
||||
Nodes (16): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+8 more)
|
||||
|
||||
### Community 5 - "Admin Panel URLs"
|
||||
Cohesion: 0.06
|
||||
Nodes (30): URL: admin_panel:ActionListUserToday, URL: admin_panel:entezar, URL: admin_panel:hesabdari, URL: admin_panel:hesabdari_residnashone, URL: admin_panel:index, URL: admin_panel:p_logout, URL: admin_panel:rezayat, URL: admin_panel:stores (+22 more)
|
||||
|
||||
### Community 7 - "Initial Database Migrations"
|
||||
Cohesion: 0.09
|
||||
Nodes (11): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+3 more)
|
||||
|
||||
### Community 8 - "User Relation Migrations"
|
||||
Cohesion: 0.09
|
||||
Nodes (11): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+3 more)
|
||||
|
||||
### Community 9 - "Financial and Accounting Views"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): Customer Data Object, Factor Data Object, Sarresid Data Object, admin_panel.ViewReportMali, base.html, toCurrency, admin_panel:customerNew URL, admin_panel:pardakhtNesiye URL (+12 more)
|
||||
|
||||
### Community 10 - "Invoice Management Logic"
|
||||
Cohesion: 0.17
|
||||
Nodes (8): Factor, Meta, FactorIteam, InventoryException, newFactor(), newFactor2(), _parse_jalali_date(), _parse_timestamp()
|
||||
|
||||
### Community 11 - "Django Admin Configuration"
|
||||
Cohesion: 0.22
|
||||
Nodes (3): StoreRoomAdmin, StoreRoomOwnerInline, StoreTransferRequestAdmin
|
||||
|
||||
### Community 12 - "Core Application Models"
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Customer, Factor, FactorIteam, PhoneNumber, Product, ProductCategory, ProductInStore, StoreRoom (+1 more)
|
||||
|
||||
### Community 15 - "Timezone-related Migrations"
|
||||
Cohesion: 0.29
|
||||
Nodes (3): Migration, Migration, Migration
|
||||
|
||||
### Community 19 - "Graphify Tooling"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): graphify tool, graphify explain, graphify path, graphify query, graphify
|
||||
|
||||
## Ambiguous Edges - Review These
|
||||
- `admin_panel/base.html` → `admin_panel/templates/admin_panel/baseHesabdari.html` [AMBIGUOUS]
|
||||
admin_panel/templates/admin_panel/baseHesabdari.html · relation: conceptually_related_to
|
||||
|
||||
## Knowledge Gaps
|
||||
- **84 isolated node(s):** `base.html`, `toCurrency`, `Customer Data Object`, `Factor Data Object`, `admin_panel:customerNew URL` (+79 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 276 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
|
||||
- **66 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `passCheck()` connect `Financial and Accounting Views` to `User Action Views`, `Daily Reporting Command`?**
|
||||
_High betweenness centrality (0.208) - this node is a cross-community bridge._
|
||||
- **Are the 20 inferred relationships involving `StoreRoom` (e.g. with `User` and `approve_transfer_request()`) actually correct?**
|
||||
_`StoreRoom` has 20 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **What connects `base.html`, `toCurrency`, `Customer Data Object` to the rest of the system?**
|
||||
_84 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `User Action Views` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.053728949478749 - nodes in this community are weakly interconnected._
|
||||
- **Why does `admin_panel/base.html` connect `Customer Admin Templates` to `Financial and Accounting Views`, `Admin Panel URLs`?**
|
||||
_High betweenness centrality (0.194) - this node is a cross-community bridge._
|
||||
- **Are the 14 inferred relationships involving `ProductInStore` (e.g. with `Command` and `approve_transfer_request()`) actually correct?**
|
||||
_`ProductInStore` has 14 INFERRED edges - model-reasoned connections that need verification._
|
||||
|
||||
### Low-confidence Hints
|
||||
_AMBIGUOUS edges — the extractor was unsure. Verify before acting on these._
|
||||
|
||||
- **What is the exact relationship between `admin_panel/base.html` and `admin_panel/templates/admin_panel/baseHesabdari.html`?**
|
||||
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
|
||||
@@ -0,0 +1,360 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>graphify - graphify-out/graph.html</title>
|
||||
<script src="https://unpkg.com/vis-network@9.1.6/standalone/umd/vis-network.min.js"
|
||||
integrity="sha384-Ux6phic9PEHJ38YtrijhkzyJ8yQlH8i/+buBR8s3mAZOJrP1gwyvAcIYl3GWtpX1"
|
||||
crossorigin="anonymous"></script>
|
||||
<style>
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { background: #0f0f1a; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; display: flex; height: 100vh; overflow: hidden; }
|
||||
#graph { flex: 1; }
|
||||
#sidebar { width: 280px; background: #1a1a2e; border-left: 1px solid #2a2a4e; display: flex; flex-direction: column; overflow: hidden; }
|
||||
#search-wrap { padding: 12px; border-bottom: 1px solid #2a2a4e; }
|
||||
#search { width: 100%; background: #0f0f1a; border: 1px solid #3a3a5e; color: #e0e0e0; padding: 7px 10px; border-radius: 6px; font-size: 13px; outline: none; }
|
||||
#search:focus { border-color: #4E79A7; }
|
||||
#search-results { max-height: 140px; overflow-y: auto; padding: 4px 12px; border-bottom: 1px solid #2a2a4e; display: none; }
|
||||
.search-item { padding: 4px 6px; cursor: pointer; border-radius: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.search-item:hover { background: #2a2a4e; }
|
||||
#info-panel { padding: 14px; border-bottom: 1px solid #2a2a4e; min-height: 140px; }
|
||||
#info-panel h3 { font-size: 13px; color: #aaa; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
|
||||
#info-content { font-size: 13px; color: #ccc; line-height: 1.6; }
|
||||
#info-content .field { margin-bottom: 5px; }
|
||||
#info-content .field b { color: #e0e0e0; }
|
||||
#info-content .empty { color: #555; font-style: italic; }
|
||||
.neighbor-link { display: block; padding: 2px 6px; margin: 2px 0; border-radius: 3px; cursor: pointer; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid #333; }
|
||||
.neighbor-link:hover { background: #2a2a4e; }
|
||||
#neighbors-list { max-height: 160px; overflow-y: auto; margin-top: 4px; }
|
||||
#legend-wrap { flex: 1; overflow-y: auto; padding: 12px; }
|
||||
#legend-wrap h3 { font-size: 13px; color: #aaa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
|
||||
.legend-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; cursor: pointer; border-radius: 4px; font-size: 12px; }
|
||||
.legend-item:hover { background: #2a2a4e; padding-left: 4px; }
|
||||
.legend-item.dimmed { opacity: 0.35; }
|
||||
.legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
|
||||
.legend-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.legend-count { color: #666; font-size: 11px; }
|
||||
#stats { padding: 10px 14px; border-top: 1px solid #2a2a4e; font-size: 11px; color: #555; }
|
||||
#legend-controls { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 4px 0; }
|
||||
#legend-controls label { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; color: #aaa; user-select: none; }
|
||||
#legend-controls label:hover { color: #e0e0e0; }
|
||||
.legend-cb, #select-all-cb { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; border: 1.5px solid #3a3a5e; border-radius: 3px; background: #0f0f1a; cursor: pointer; position: relative; flex-shrink: 0; }
|
||||
.legend-cb:checked, #select-all-cb:checked { background: #4E79A7; border-color: #4E79A7; }
|
||||
.legend-cb:checked::after, #select-all-cb:checked::after { content: ''; position: absolute; left: 3.5px; top: 1px; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
|
||||
#select-all-cb:indeterminate { background: #4E79A7; border-color: #4E79A7; }
|
||||
#select-all-cb:indeterminate::after { content: ''; position: absolute; left: 2px; top: 5px; width: 8px; height: 2px; background: #fff; border: none; transform: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="graph"></div>
|
||||
<div id="sidebar">
|
||||
<div id="search-wrap">
|
||||
<input id="search" type="text" placeholder="Search nodes..." autocomplete="off">
|
||||
<div id="search-results"></div>
|
||||
</div>
|
||||
<div id="info-panel">
|
||||
<h3>Node Info</h3>
|
||||
<div id="info-content"><span class="empty">Click a node to inspect it</span></div>
|
||||
</div>
|
||||
<div id="legend-wrap">
|
||||
<h3>Communities</h3>
|
||||
<div id="legend-controls">
|
||||
<label><input type="checkbox" id="select-all-cb" checked onchange="toggleAllCommunities(!this.checked)">Select All</label>
|
||||
</div>
|
||||
<div id="legend"></div>
|
||||
</div>
|
||||
<div id="stats">548 nodes · 887 edges · 80 communities</div>
|
||||
</div>
|
||||
<script>
|
||||
const RAW_NODES = [{"id": "admin_models_user", "label": "User", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 15.5, "font": {"size": 12, "color": "#ffffff"}, "title": "User", "community": 0, "community_name": "User Action Views", "source_file": "admin/models.py", "file_type": "code", "degree": 21}, {"id": "admin_panel_models_action", "label": "Action", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 15.2, "font": {"size": 12, "color": "#ffffff"}, "title": "Action", "community": 0, "community_name": "User Action Views", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 20}, {"id": "admin_panel_models_productcategory", "label": "ProductCategory", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 13.7, "font": {"size": 0, "color": "#ffffff"}, "title": "ProductCategory", "community": 0, "community_name": "User Action Views", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 14}, {"id": "admin_panel_models_articletype", "label": "ArticleType", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "ArticleType", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 1}, {"id": "admin_panel_models_cachetable", "label": "CacheTable", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "CacheTable", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 2}, {"id": "admin_panel_models_phonenumber", "label": "PhoneNumber", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "PhoneNumber", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 2}, {"id": "admin_panel_models_productstockhistory", "label": "ProductStockHistory", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.8, "font": {"size": 0, "color": "#ffffff"}, "title": "ProductStockHistory", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 3}, {"id": "admin_panel_models_productstockhistory_meta", "label": "Meta", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Meta", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 1}, {"id": "admin_panel_models_storeroomowner", "label": "StoreRoomOwner", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.8, "font": {"size": 0, "color": "#ffffff"}, "title": "StoreRoomOwner", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 3}, {"id": "admin_panel_models_userprofile", "label": "UserProfile", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.8, "font": {"size": 0, "color": "#ffffff"}, "title": "UserProfile", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 3}, {"id": "admin_panel_models_visitqueue", "label": "VisitQueue", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "VisitQueue", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 2}, {"id": "admin_panel_models_product", "label": "Product", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 14.7, "font": {"size": 12, "color": "#ffffff"}, "title": "Product", "community": 1, "community_name": "Inventory and Product Models", "source_file": "admin_panel/models.py", "file_type": "code", "degree": 18}, {"id": "admin_panel_models_product_meta", "label": "Meta", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.3, "Line truncated
|
||||
const RAW_EDGES = [{"from": "admin_models", "to": "admin_models_user", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "admin_panel_models_action", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_factor", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_storeroom", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_storeroomowner", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_storetransferrequest", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_userprofile", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models_visitqueue", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_actionlist", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_actionlistall", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_actionlisttoday", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_actionlistuser", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_actionlistusertoday", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_customeraction", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_customereditaction", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_customernazar", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_customernewaction", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_inventory_movements_report", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_newfactor", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_report", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_views_rezayat_dashboard", "to": "admin_models_user", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_management_commands_send_daily_report", "to": "admin_panel_models_action", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "admin_panel_management_commands_send_daily_report_command", "to": "admin_panel_models_action", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "admin_panel_models", "to": "admin_panel_models_action", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "admin_panel_views", "to": "admin_panel_models_action", "label": "imports", "title": "imports [EXTRACTED]", "dashes":Line truncated
|
||||
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "User Action Views", "count": 87}, {"cid": 1, "color": "#F28E2B", "label": "Inventory and Product Models", "count": 60}, {"cid": 2, "color": "#E15759", "label": "Daily Reporting Command", "count": 45}, {"cid": 3, "color": "#76B7B2", "label": "Customer Admin Templates", "count": 34}, {"cid": 4, "color": "#59A14F", "label": "Database Schema Migrations", "count": 33}, {"cid": 5, "color": "#EDC948", "label": "Admin Panel URLs", "count": 33}, {"cid": 6, "color": "#B07AA1", "label": "Database Backup Command", "count": 27}, {"cid": 7, "color": "#FF9DA7", "label": "Initial Database Migrations", "count": 23}, {"cid": 8, "color": "#9C755F", "label": "User Relation Migrations", "count": 23}, {"cid": 9, "color": "#BAB0AC", "label": "Financial and Accounting Views", "count": 22}, {"cid": 10, "color": "#4E79A7", "label": "Invoice Management Logic", "count": 13}, {"cid": 11, "color": "#F28E2B", "label": "Django Admin Configuration", "count": 10}, {"cid": 12, "color": "#E15759", "label": "Core Application Models", "count": 10}, {"cid": 13, "color": "#76B7B2", "label": "Resource Cleanup Command", "count": 10}, {"cid": 14, "color": "#59A14F", "label": "Django App Configurations", "count": 7}, {"cid": 15, "color": "#EDC948", "label": "Timezone-related Migrations", "count": 7}, {"cid": 16, "color": "#B07AA1", "label": "Application Entrypoint Scripts", "count": 7}, {"cid": 17, "color": "#FF9DA7", "label": "Core Admin App", "count": 6}, {"cid": 18, "color": "#9C755F", "label": "Project URL Configuration", "count": 6}, {"cid": 19, "color": "#BAB0AC", "label": "Graphify Tooling", "count": 6}, {"cid": 20, "color": "#4E79A7", "label": "Data Validation Migration", "count": 3}, {"cid": 21, "color": "#F28E2B", "label": "Application Tests", "count": 3}, {"cid": 22, "color": "#E15759", "label": "Database Schema Migration", "count": 2}, {"cid": 23, "color": "#76B7B2", "label": "Database Schema Migration", "count": 2}, {"cid": 24, "color": "#59A14F", "label": "Remove StoreRoom User Relation", "count": 2}, {"cid": 25, "color": "#EDC948", "label": "Database Schema Migration", "count": 2}, {"cid": 26, "color": "#B07AA1", "label": "Add Action Type Field", "count": 2}, {"cid": 27, "color": "#FF9DA7", "label": "Add Action Grade Field", "count": 2}, {"cid": 28, "color": "#9C755F", "label": "Database Schema Migration", "count": 2}, {"cid": 29, "color": "#BAB0AC", "label": "Add Article Payment Status", "count": 2}, {"cid": 30, "color": "#4E79A7", "label": "Add Article Payment Method", "count": 2}, {"cid": 31, "color": "#F28E2B", "label": "Add Customer Last Visit", "count": 2}, {"cid": 32, "color": "#E15759", "label": "Database Schema Migration", "count": 2}, {"cid": 33, "color": "#76B7B2", "label": "Add Sarresid Description", "count": 2}, {"cid": 34, "color": "#59A14F", "label": "Update ProductInStore Options", "count": 2}, {"cid": 35, "color": "#EDC948", "label": "Update ProductInStore Options", "count": 2}, {"cid": 36, "color": "#B07AA1", "label": "AI Tooling Documentation", "count": 2}, {"cid": 37, "color": "#FF9DA7", "label": "Admin Migrations Package", "count": 1}, {"cid": 38, "color": "#9C755F", "label": "Customer Action Partial", "count": 1}, {"cid": 39, "color": "#BAB0AC", "label": "New Customer Base Template", "count": 1}, {"cid": 40, "color": "#4E79A7", "label": "Customer Feedback Partial", "count": 1}, {"cid": 41, "color": "#F28E2B", "label": "Customer Invoice Detail", "count": 1}, {"cid": 42, "color": "#E15759", "label": "Customer Accounting Template", "count": 1}, {"cid": 43, "color": "#76B7B2", "label": "Customer Invoice List", "count": 1}, {"cid": 44, "color": "#59A14F", "label": "Customer Feedback Page", "count": 1}, {"cid": 45, "color": "#EDC948", "label": "Management Commands Package", "count": 1}, {"cid": 46, "color": "#B07AA1", "label": "Management Package", "count": 1}, {"cid": 47, "color": "#FF9DA7", "label": "Admin Panel Migrations Package", "count": 1}, {"cid": 48, "color": "#9C755F", "label": "Action List Template", "count": 1}, {"cid": 49, "color": "#BAB0AC", "label": "New Customer Invoice Page", "count": 1}, {"cid": 50, "color": "#4E79A7", "label": "New Customer Invoice V2", "count": 1}, {"cid": 51, "color": "#F28E2B", "label": "Customer Satisfaction List", "count": 1}, {"cid": 52, "color": "#E15759", "label": "Customer Satisfaction Partial", "count": 1}, {"cid": 53, "color": "#76B7B2", "label": "Customer Debt Management", "count": 1}, {"cid": 54, "color": "#59A14F", "label": "Customer List Page", "count": 1}, {"cid": 55, "color": "#EDC948", "label": "Customer List Backup Template", "count": 1}, {"cid": 56, "color": "#B07AA1", "label": "Waiting List Backup Template", "count": 1}, {"cid": 57, "color": "#FF9DA7", "label": "Financial Dashboard", "count": 1}, {"cid": 58, "color": "#9C755F", "label": "Accounting Main View", "count": 1}, {"cid": 59, "color": "#BAB0AC", "label": "Admin Panel Index Page", "count": 1}, {"cid": 60, "color": "#4E79A7", "label": "New Inventory Line truncated
|
||||
|
||||
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
|
||||
function esc(s) {
|
||||
return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');
|
||||
}
|
||||
|
||||
// Build vis datasets
|
||||
const nodesDS = new vis.DataSet(RAW_NODES.map((n, i) => ({
|
||||
id: n.id, label: n.label, color: n.color, size: n.size,
|
||||
font: n.font, title: n.title,
|
||||
// Fermat/golden-angle spiral seed positions (#3699): spreading nodes out
|
||||
// before physics runs keeps avoidOverlap from computing near-zero-distance
|
||||
// repulsion that blows the BarnesHut recursion into a stack overflow on large
|
||||
// graphs. `i` is the map index — physics still settles small graphs identically.
|
||||
x: 30 * Math.sqrt(i) * Math.cos(i * 2.4),
|
||||
y: 30 * Math.sqrt(i) * Math.sin(i * 2.4),
|
||||
community: n.community, community_name: n.community_name,
|
||||
source_file: n.source_file, file_type: n.file_type, degree: n.degree,
|
||||
member_count: n.member_count,
|
||||
})));
|
||||
|
||||
const edgesDS = new vis.DataSet(RAW_EDGES.map((e, i) => ({
|
||||
id: i, from: e.from, to: e.to,
|
||||
label: '',
|
||||
title: e.title,
|
||||
dashes: e.dashes,
|
||||
width: e.width,
|
||||
color: e.color,
|
||||
arrows: { to: { enabled: true, scaleFactor: 0.5 } },
|
||||
})));
|
||||
|
||||
const container = document.getElementById('graph');
|
||||
const network = new vis.Network(container, { nodes: nodesDS, edges: edgesDS }, {
|
||||
physics: {
|
||||
enabled: true,
|
||||
solver: 'forceAtlas2Based',
|
||||
forceAtlas2Based: {
|
||||
gravitationalConstant: -60,
|
||||
centralGravity: 0.005,
|
||||
springLength: 120,
|
||||
springConstant: 0.08,
|
||||
damping: 0.4,
|
||||
avoidOverlap: 0.8,
|
||||
},
|
||||
stabilization: { iterations: 200, fit: true },
|
||||
},
|
||||
interaction: {
|
||||
hover: true,
|
||||
tooltipDelay: 100,
|
||||
hideEdgesOnDrag: true,
|
||||
navigationButtons: false,
|
||||
keyboard: false,
|
||||
},
|
||||
nodes: { shape: 'dot', borderWidth: 1.5 },
|
||||
edges: { smooth: { type: 'continuous', roundness: 0.2 }, selectionWidth: 3 },
|
||||
});
|
||||
|
||||
network.once('stabilizationIterationsDone', () => {
|
||||
network.setOptions({ physics: { enabled: false } });
|
||||
});
|
||||
|
||||
function showInfo(nodeId) {
|
||||
const n = nodesDS.get(nodeId);
|
||||
if (!n) return;
|
||||
const neighborIds = network.getConnectedNodes(nodeId);
|
||||
const neighborItems = neighborIds.map(nid => {
|
||||
const nb = nodesDS.get(nid);
|
||||
const color = nb ? nb.color.background : '#555';
|
||||
return `<span class="neighbor-link" style="border-left-color:${esc(color)}" data-nid="${esc(nid)}">${esc(nb ? nb.label : nid)}</span>`;
|
||||
}).join('');
|
||||
const isMetaNode = !n.file_type && !n.source_file;
|
||||
let html = `<div class="field"><b>${esc(n.label)}</b></div>`;
|
||||
if (!isMetaNode) {
|
||||
html += `<div class="field">Type: ${esc(n.file_type || 'unknown')}</div>`;
|
||||
}
|
||||
html += `<div class="field">Community: ${esc(n.community_name || '')}</div>`;
|
||||
if (!isMetaNode) {
|
||||
html += `<div class="field">Source: ${esc(n.source_file || '-')}</div>`;
|
||||
} else if (n.member_count !== undefined && n.member_count !== null) {
|
||||
html += `<div class="field">Members: ${esc(n.member_count)}</div>`;
|
||||
}
|
||||
html += `<div class="field">Degree: ${n.degree}</div>`;
|
||||
if (neighborIds.length) {
|
||||
html += `<div class="field" style="margin-top:8px;color:#aaa;font-size:11px">Neighbors (${neighborIds.length})</div><div id="neighbors-list">${neighborItems}</div>`;
|
||||
}
|
||||
document.getElementById('info-content').innerHTML = html;
|
||||
}
|
||||
|
||||
function focusNode(nodeId) {
|
||||
network.focus(nodeId, { scale: 1.4, animation: true });
|
||||
network.selectNodes([nodeId]);
|
||||
showInfo(nodeId);
|
||||
}
|
||||
|
||||
// Neighbor links use a data attribute + one delegated listener rather than an
|
||||
// inline onclick. A node id/label sourced from a document or a scraped URL
|
||||
// (graphify add) can contain a double-quote; dropping the stringified id
|
||||
// unescaped into a quoted onclick both broke every link and allowed a hostile
|
||||
// source to inject an event handler into the local report (stored XSS, #1838).
|
||||
// esc() on data-nid keeps the value inside the attribute; the listener reads it
|
||||
// back verbatim. Bound to document so it survives the innerHTML rebuild that
|
||||
// recreates #neighbors-list on each showInfo().
|
||||
document.addEventListener('click', e => {
|
||||
const el = e.target.closest('.neighbor-link');
|
||||
if (el && el.dataset.nid !== undefined) focusNode(el.dataset.nid);
|
||||
});
|
||||
|
||||
// Track hovered node — hover detection is more reliable than click params
|
||||
let hoveredNodeId = null;
|
||||
network.on('hoverNode', params => {
|
||||
hoveredNodeId = params.node;
|
||||
container.style.cursor = 'pointer';
|
||||
});
|
||||
network.on('blurNode', () => {
|
||||
hoveredNodeId = null;
|
||||
container.style.cursor = 'default';
|
||||
});
|
||||
container.addEventListener('click', () => {
|
||||
if (hoveredNodeId !== null) {
|
||||
showInfo(hoveredNodeId);
|
||||
network.selectNodes([hoveredNodeId]);
|
||||
}
|
||||
});
|
||||
network.on('click', params => {
|
||||
if (params.nodes.length > 0) {
|
||||
showInfo(params.nodes[0]);
|
||||
} else if (hoveredNodeId === null) {
|
||||
document.getElementById('info-content').innerHTML = '<span class="empty">Click a node to inspect it</span>';
|
||||
}
|
||||
});
|
||||
|
||||
const searchInput = document.getElementById('search');
|
||||
const searchResults = document.getElementById('search-results');
|
||||
searchInput.addEventListener('input', () => {
|
||||
const q = searchInput.value.toLowerCase().trim();
|
||||
searchResults.innerHTML = '';
|
||||
if (!q) { searchResults.style.display = 'none'; return; }
|
||||
const matches = RAW_NODES.filter(n => n.label.toLowerCase().includes(q)).slice(0, 20);
|
||||
if (!matches.length) { searchResults.style.display = 'none'; return; }
|
||||
searchResults.style.display = 'block';
|
||||
matches.forEach(n => {
|
||||
const el = document.createElement('div');
|
||||
el.className = 'search-item';
|
||||
el.textContent = n.label;
|
||||
el.style.borderLeft = `3px solid ${n.color.background}`;
|
||||
el.style.paddingLeft = '8px';
|
||||
el.onclick = () => {
|
||||
network.focus(n.id, { scale: 1.5, animation: true });
|
||||
network.selectNodes([n.id]);
|
||||
showInfo(n.id);
|
||||
searchResults.style.display = 'none';
|
||||
searchInput.value = '';
|
||||
};
|
||||
searchResults.appendChild(el);
|
||||
});
|
||||
});
|
||||
document.addEventListener('click', e => {
|
||||
if (!searchResults.contains(e.target) && e.target !== searchInput)
|
||||
searchResults.style.display = 'none';
|
||||
});
|
||||
|
||||
const hiddenCommunities = new Set();
|
||||
|
||||
const selectAllCb = document.getElementById('select-all-cb');
|
||||
|
||||
function updateSelectAllState() {
|
||||
const total = LEGEND.length;
|
||||
const hidden = hiddenCommunities.size;
|
||||
selectAllCb.checked = hidden === 0;
|
||||
selectAllCb.indeterminate = hidden > 0 && hidden < total;
|
||||
}
|
||||
|
||||
function toggleAllCommunities(hide) {
|
||||
document.querySelectorAll('.legend-item').forEach(item => {
|
||||
hide ? item.classList.add('dimmed') : item.classList.remove('dimmed');
|
||||
});
|
||||
document.querySelectorAll('.legend-cb').forEach(cb => {
|
||||
cb.checked = !hide;
|
||||
});
|
||||
LEGEND.forEach(c => {
|
||||
if (hide) hiddenCommunities.add(c.cid); else hiddenCommunities.delete(c.cid);
|
||||
});
|
||||
const updates = RAW_NODES.map(n => ({ id: n.id, hidden: hide }));
|
||||
nodesDS.update(updates);
|
||||
updateSelectAllState();
|
||||
}
|
||||
|
||||
const legendEl = document.getElementById('legend');
|
||||
LEGEND.forEach(c => {
|
||||
const item = document.createElement('div');
|
||||
item.className = 'legend-item';
|
||||
const cb = document.createElement('input');
|
||||
cb.type = 'checkbox';
|
||||
cb.className = 'legend-cb';
|
||||
cb.checked = true;
|
||||
cb.addEventListener('change', (e) => {
|
||||
e.stopPropagation();
|
||||
if (cb.checked) {
|
||||
hiddenCommunities.delete(c.cid);
|
||||
item.classList.remove('dimmed');
|
||||
} else {
|
||||
hiddenCommunities.add(c.cid);
|
||||
item.classList.add('dimmed');
|
||||
}
|
||||
const updates = RAW_NODES
|
||||
.filter(n => n.community === c.cid)
|
||||
.map(n => ({ id: n.id, hidden: !cb.checked }));
|
||||
nodesDS.update(updates);
|
||||
updateSelectAllState();
|
||||
});
|
||||
item.innerHTML = `<div class="legend-dot" style="background:${c.color}"></div>
|
||||
<span class="legend-label">${c.label}</span>
|
||||
<span class="legend-count">${c.count}</span>`;
|
||||
item.prepend(cb);
|
||||
item.onclick = (e) => {
|
||||
if (e.target === cb) return;
|
||||
cb.checked = !cb.checked;
|
||||
cb.dispatchEvent(new Event('change'));
|
||||
};
|
||||
legendEl.appendChild(item);
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
// Render hyperedges as shaded regions
|
||||
const hyperedges = [{"id": "customer_retention_flow", "label": "Customer Satisfaction & Collection", "nodes": ["admin_panel_templates_admin_panel_report_rezayat", "admin_panel_templates_admin_panel_report_debtors_no_vosol", "admin_panel_customer_customernazarinc"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 0.9}, {"id": "customer_management_flow", "label": "Customer Management Flow", "nodes": ["admin_panel_customer_base_new", "admin_panel_customer_action_inc", "admin_panel_customer_id_factor", "admin_panel_customer_hesabdari"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0}, {"id": "financial_management_flow", "label": "Financial & Debt Management", "nodes": ["admin_panel_templates_admin_panel_financial_dashboard", "admin_panel_templates_admin_panel_hesabdari"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0}, {"id": "inventory_management_flow", "label": "Inventory Management System", "nodes": ["admin_panel_templates_admin_panel_store", "admin_panel_templates_admin_panel_store_transfers", "admin_panel_templates_admin_panel_report_inventory_movements", "admin_panel_templates_admin_panel_operationsbk"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0}, {"id": "login_form", "label": "Login Form", "nodes": ["admin_panel_templates_admin_panel_login", "django_url_admin_panel_p_login", "django_csrf_token", "form_field_username", "form_field_password"], "relation": "form", "confidence": "EXTRACTED", "source_file": "admin_panel/templates/admin_panel/login.html"}, {"id": "new_store_form", "label": "New Store Form", "nodes": ["admin_panel_templates_admin_panel_storebk1", "django_url_admin_panel_newstore", "django_csrf_token", "form_field_storename"], "relation": "form", "confidence": "EXTRACTED", "source_file": "admin_panel/templates/admin_panel/storeBK1.html"}, {"id": "store_inventory_display", "label": "Store Inventory Display", "nodes": ["admin_panel_templates_admin_panel_storebk1", "template_variable_productsum", "product_property_product_name", "product_property_mojodi"], "relation": "participate_in", "confidence": "EXTRACTED", "source_file": "admin_panel/templates/admin_panel/storeBK1.html"}, {"id": "customer_interaction_flow", "label": "Customer Lifecycle Management", "nodes": ["admin_panel_templates_admin_panel_customers"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.85}, {"id": "customer_lifecycle_management", "label": "Customer Interaction Lifecycle", "nodes": ["admin_panel_templates_admin_panel_customers", "admin_panel_templates_admin_panel_customerNew", "admin_panel_templates_admin_panel_customerRezayat"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "admin_panel/templates/admin_panel/customers.html"}, {"id": "financial_management_flow", "label": "Financial & Debt Management Flow", "nodes": ["admin_panel_templates_admin_panel_customerSarresid", "admin_panel_templates_admin_panel_hesabdari", "admin_panel_templates_admin_panel_financial_dashboard"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": "admin_panel/templates/admin_panel/financial_dashboard.html"}, {"id": "settle_due_payment_flow", "label": "Settle Due Payment Flow", "nodes": ["admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", "admin_panel_url_passcheck", "admin_panel_url_pardakhtnesiye"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html"}, {"id": "accounting_flow", "label": "Accounting and Billing Flow", "nodes": ["admin_panel_templates_admin_panel_basehesabdari", "admin_panel_templates_admin_panel_bedehi", "admin_panel_templates_admin_panel_hesabdariheckpass", "concept_url_admin_panel_hesabdari", "concept_url_admin_panel_bedehi", "concept_url_admin_panel_pardakhtnesiye"], "relation": "participate_in", "confidence": "INFERRED", "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html"}, {"id": "check_clearing_flow", "label": "Check Clearing Flow", "nodes": ["admin_panel_templates_admin_panel_hesabdariresidnashode", "admin_panel_views_passcheck"], "relation": "participate_in", "confidence": "INFERRED", "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html"}, {"id": "customer_management_flow", "label": "Customer Management Flow", "nodes": ["admin_panel_templates_admin_panel_customerbase", "admin_panel_templates_admin_panel_customerbasenew", "admin_panel_templates_admin_panel_customeraction", "admin_panel_templates_admin_panel_customerid", "admin_panel_templates_admin_panel_customeridfactorbackup", "concept_url_admin_panel_customers", "concept_url_admin_panel_customeredit", "concept_url_admin_panel_newfactor"], "relation": "participate_in", "confidence": "INFERRED", "source_file": "admin_panel/templates/admin_panel/customerBase.html"}, {"Line truncated
|
||||
// afterDrawing passes ctx already transformed to network coordinate space.
|
||||
// Draw node positions raw — no manual pan/zoom/DPR math needed.
|
||||
|
||||
// Andrew's monotone chain. Returns the hull in counter-clockwise order, which
|
||||
// is what the perimeter must be traced in. Collinear and duplicate points
|
||||
// collapse to the extremes, so degenerate member sets render as a segment
|
||||
// rather than a zero-area crossed path.
|
||||
function convexHull(pts) {
|
||||
const p = pts.slice().sort((a, b) => (a.x - b.x) || (a.y - b.y));
|
||||
if (p.length < 3) return p;
|
||||
const cross = (o, a, b) => (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);
|
||||
const build = seq => {
|
||||
const out = [];
|
||||
for (const q of seq) {
|
||||
while (out.length >= 2 && cross(out[out.length - 2], out[out.length - 1], q) <= 0) out.pop();
|
||||
out.push(q);
|
||||
}
|
||||
out.pop();
|
||||
return out;
|
||||
};
|
||||
const hull = build(p).concat(build(p.slice().reverse()));
|
||||
return hull.length >= 3 ? hull : p;
|
||||
}
|
||||
network.on('afterDrawing', function(ctx) {
|
||||
hyperedges.forEach(h => {
|
||||
const positions = h.nodes
|
||||
.map(nid => network.getPositions([nid])[nid])
|
||||
.filter(p => p !== undefined);
|
||||
if (positions.length < 2) return;
|
||||
ctx.save();
|
||||
ctx.globalAlpha = 0.12;
|
||||
ctx.fillStyle = '#6366f1';
|
||||
ctx.strokeStyle = '#6366f1';
|
||||
ctx.lineWidth = 2;
|
||||
ctx.beginPath();
|
||||
// Centroid and expanded hull in network coordinates.
|
||||
// The perimeter must follow hull order, not h.nodes order: tracing the
|
||||
// raw member order self-intersects whenever the layout does not happen
|
||||
// to place members in angular order, filling as crossed wedges.
|
||||
const cx = positions.reduce((s, p) => s + p.x, 0) / positions.length;
|
||||
const cy = positions.reduce((s, p) => s + p.y, 0) / positions.length;
|
||||
const hull = convexHull(positions);
|
||||
const expanded = hull.map(p => ({
|
||||
x: cx + (p.x - cx) * 1.15,
|
||||
y: cy + (p.y - cy) * 1.15
|
||||
}));
|
||||
ctx.moveTo(expanded[0].x, expanded[0].y);
|
||||
expanded.slice(1).forEach(p => ctx.lineTo(p.x, p.y));
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
ctx.globalAlpha = 0.4;
|
||||
ctx.stroke();
|
||||
// Label
|
||||
ctx.globalAlpha = 0.8;
|
||||
ctx.fillStyle = '#4f46e5';
|
||||
ctx.font = 'bold 11px sans-serif';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(h.label, cx, cy - 5);
|
||||
ctx.restore();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
+18277
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,890 @@
|
||||
{
|
||||
".gemini/settings.json": {
|
||||
"mtime": 1791551505.4245954,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5381fe51a877fa6d2641ad3a87ae7ee1",
|
||||
"semantic_hash": "5381fe51a877fa6d2641ad3a87ae7ee1"
|
||||
},
|
||||
".opencode/opencode.json": {
|
||||
"mtime": 1791551506.0350895,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f2ae21510d07365eb2bce8159272c7a0",
|
||||
"semantic_hash": "f2ae21510d07365eb2bce8159272c7a0"
|
||||
},
|
||||
"admin/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin/admin.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "ef4c241c5311eee11a93e9366f492a72",
|
||||
"semantic_hash": "ef4c241c5311eee11a93e9366f492a72"
|
||||
},
|
||||
"admin/apps.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "8b3d9eda5e9ce46986255783cb994a6c",
|
||||
"semantic_hash": "8b3d9eda5e9ce46986255783cb994a6c"
|
||||
},
|
||||
"admin/migrations/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin/models.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "335dbbbd9bec5b785bb826dbf6ccc8c9",
|
||||
"semantic_hash": "335dbbbd9bec5b785bb826dbf6ccc8c9"
|
||||
},
|
||||
"admin/tests.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "e08f0582500f6562bf0a931ef9503b39",
|
||||
"semantic_hash": "e08f0582500f6562bf0a931ef9503b39"
|
||||
},
|
||||
"admin/urls.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "9fab312930c17e4fb8e2293ef4cf1f1b",
|
||||
"semantic_hash": "9fab312930c17e4fb8e2293ef4cf1f1b"
|
||||
},
|
||||
"admin/views.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "65e892f735b878955bb7face4f3a15f7",
|
||||
"semantic_hash": "65e892f735b878955bb7face4f3a15f7"
|
||||
},
|
||||
"admin_panel/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin_panel/admin.py": {
|
||||
"mtime": 1783247518.769521,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "9bf27d273cdeaf40f7f82d818318fa28",
|
||||
"semantic_hash": "9bf27d273cdeaf40f7f82d818318fa28"
|
||||
},
|
||||
"admin_panel/apps.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "7b45752661a9c60826cd3b3cb648f7b9",
|
||||
"semantic_hash": "7b45752661a9c60826cd3b3cb648f7b9"
|
||||
},
|
||||
"admin_panel/context_processor.py": {
|
||||
"mtime": 1785506207.060478,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a9bc61278ecd5950347b24fd8438583b",
|
||||
"semantic_hash": "a9bc61278ecd5950347b24fd8438583b"
|
||||
},
|
||||
"admin_panel/management/__init__.py": {
|
||||
"mtime": 1782242229.7079034,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin_panel/management/commands/__init__.py": {
|
||||
"mtime": 1782242229.7079034,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin_panel/management/commands/gt_esh.py": {
|
||||
"mtime": 1782311882.9799201,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a93adc1bf01ae69281bc8736f254f7cc",
|
||||
"semantic_hash": "a93adc1bf01ae69281bc8736f254f7cc"
|
||||
},
|
||||
"admin_panel/management/commands/send_daily_report.py": {
|
||||
"mtime": 1787309060.0288901,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "acb098dbb2d4f61659f7d291b8ababbb",
|
||||
"semantic_hash": "acb098dbb2d4f61659f7d291b8ababbb"
|
||||
},
|
||||
"admin_panel/management/commands/sqlite_db_backup.py": {
|
||||
"mtime": 1782242044.4963484,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "03685ea937f847e6665a40f6cf482121",
|
||||
"semantic_hash": "03685ea937f847e6665a40f6cf482121"
|
||||
},
|
||||
"admin_panel/migrations/0001_initial.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5ee5874f5ba128bb012c8b3eb7a00915",
|
||||
"semantic_hash": "5ee5874f5ba128bb012c8b3eb7a00915"
|
||||
},
|
||||
"admin_panel/migrations/0002_auto_20220114_1616.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5086374174d36b7a4a14b6d75f51bb33",
|
||||
"semantic_hash": "5086374174d36b7a4a14b6d75f51bb33"
|
||||
},
|
||||
"admin_panel/migrations/0003_auto_20220115_1401.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "0574a9ab80ed8668f0254c3bf7d84d02",
|
||||
"semantic_hash": "0574a9ab80ed8668f0254c3bf7d84d02"
|
||||
},
|
||||
"admin_panel/migrations/0004_factor_paytype.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "34e4ef38eb7384fef97781003c6bdb0b",
|
||||
"semantic_hash": "34e4ef38eb7384fef97781003c6bdb0b"
|
||||
},
|
||||
"admin_panel/migrations/0005_auto_20220121_2054.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "bb1cbeecc3832ba9940dd171c794739f",
|
||||
"semantic_hash": "bb1cbeecc3832ba9940dd171c794739f"
|
||||
},
|
||||
"admin_panel/migrations/0006_auto_20220121_2100.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "486a3056059cd8cb5fe3dae35d3f2369",
|
||||
"semantic_hash": "486a3056059cd8cb5fe3dae35d3f2369"
|
||||
},
|
||||
"admin_panel/migrations/0007_productinstore_factor.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f3fec01eca2e30f20bb5048788e0dfe9",
|
||||
"semantic_hash": "f3fec01eca2e30f20bb5048788e0dfe9"
|
||||
},
|
||||
"admin_panel/migrations/0008_storeroom_user.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d0f91fb7d0fda45e7b55c2c518e94d5a",
|
||||
"semantic_hash": "d0f91fb7d0fda45e7b55c2c518e94d5a"
|
||||
},
|
||||
"admin_panel/migrations/0009_remove_storeroom_user.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "4c22c87bea29138e1b1c1a9718743af3",
|
||||
"semantic_hash": "4c22c87bea29138e1b1c1a9718743af3"
|
||||
},
|
||||
"admin_panel/migrations/0010_auto_20220122_1546.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5b0929503f30d4bbc07681a98b218883",
|
||||
"semantic_hash": "5b0929503f30d4bbc07681a98b218883"
|
||||
},
|
||||
"admin_panel/migrations/0011_storeroom_user.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "80fa2b4783e9eb67d94fad0cc7f7a3e0",
|
||||
"semantic_hash": "80fa2b4783e9eb67d94fad0cc7f7a3e0"
|
||||
},
|
||||
"admin_panel/migrations/0012_visitqueue_user.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "063c36f0c675ca74d6c4ab47fc3a2460",
|
||||
"semantic_hash": "063c36f0c675ca74d6c4ab47fc3a2460"
|
||||
},
|
||||
"admin_panel/migrations/0013_alter_factor_options.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a1a9cbb07d67c2a85e2f3bb3321ffcb6",
|
||||
"semantic_hash": "a1a9cbb07d67c2a85e2f3bb3321ffcb6"
|
||||
},
|
||||
"admin_panel/migrations/0014_auto_20220123_1348.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5f562d5f34b9a225af1bc212060598b4",
|
||||
"semantic_hash": "5f562d5f34b9a225af1bc212060598b4"
|
||||
},
|
||||
"admin_panel/migrations/0015_auto_20220124_0858.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "7969fac0b9f3bcfe374252f63162a044",
|
||||
"semantic_hash": "7969fac0b9f3bcfe374252f63162a044"
|
||||
},
|
||||
"admin_panel/migrations/0016_factor_user.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "ea959dd744b9d8b2386b8ea254365213",
|
||||
"semantic_hash": "ea959dd744b9d8b2386b8ea254365213"
|
||||
},
|
||||
"admin_panel/migrations/0017_factoriteam_garantyesh.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "03245dcb79b9acb25c6942241342e167",
|
||||
"semantic_hash": "03245dcb79b9acb25c6942241342e167"
|
||||
},
|
||||
"admin_panel/migrations/0018_alter_factoriteam_product.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "af05fba320620794d19ce1435b0cb94f",
|
||||
"semantic_hash": "af05fba320620794d19ce1435b0cb94f"
|
||||
},
|
||||
"admin_panel/migrations/0019_article_articletype.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "bffe3cbec0759137d8b9659ef0ac7917",
|
||||
"semantic_hash": "bffe3cbec0759137d8b9659ef0ac7917"
|
||||
},
|
||||
"admin_panel/migrations/0020_auto_20220126_1532.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "de0476b4f325083fb85f72e0b2b07f6e",
|
||||
"semantic_hash": "de0476b4f325083fb85f72e0b2b07f6e"
|
||||
},
|
||||
"admin_panel/migrations/0021_alter_article_type.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "7def7b4625409c8afadb454d59f711b1",
|
||||
"semantic_hash": "7def7b4625409c8afadb454d59f711b1"
|
||||
},
|
||||
"admin_panel/migrations/0022_article_typepy.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "534616af969f58abb7a691a42bb5d89c",
|
||||
"semantic_hash": "534616af969f58abb7a691a42bb5d89c"
|
||||
},
|
||||
"admin_panel/migrations/0023_alter_article_typepy.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "bf5f29a0c95c00db2f327bcfd59ef3e2",
|
||||
"semantic_hash": "bf5f29a0c95c00db2f327bcfd59ef3e2"
|
||||
},
|
||||
"admin_panel/migrations/0024_action.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "bdf1314341fe7f3fdc5f30a2a814a85b",
|
||||
"semantic_hash": "bdf1314341fe7f3fdc5f30a2a814a85b"
|
||||
},
|
||||
"admin_panel/migrations/0025_action_actiontype.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "4c0e586b80b058330e63e484d0030806",
|
||||
"semantic_hash": "4c0e586b80b058330e63e484d0030806"
|
||||
},
|
||||
"admin_panel/migrations/0026_auto_20220209_1924.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "cdebac520a0ca63caa1f96a50f23eb8b",
|
||||
"semantic_hash": "cdebac520a0ca63caa1f96a50f23eb8b"
|
||||
},
|
||||
"admin_panel/migrations/0027_alter_action_nazar.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a2b02bc693f8f79bbcc8550de42821a4",
|
||||
"semantic_hash": "a2b02bc693f8f79bbcc8550de42821a4"
|
||||
},
|
||||
"admin_panel/migrations/0028_action_grade.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "e415b68bd27ef19db2c95d7cde690023",
|
||||
"semantic_hash": "e415b68bd27ef19db2c95d7cde690023"
|
||||
},
|
||||
"admin_panel/migrations/0029_alter_article_options.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "85e0849c5e61b965e1828fd77996690f",
|
||||
"semantic_hash": "85e0849c5e61b965e1828fd77996690f"
|
||||
},
|
||||
"admin_panel/migrations/0030_auto_20220414_1047.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "e4a28feae47beb437db5275ca1003c51",
|
||||
"semantic_hash": "e4a28feae47beb437db5275ca1003c51"
|
||||
},
|
||||
"admin_panel/migrations/0031_article_sarresid.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a036c6a51657a842e0e309db26cf5c30",
|
||||
"semantic_hash": "a036c6a51657a842e0e309db26cf5c30"
|
||||
},
|
||||
"admin_panel/migrations/0032_article_paystatus.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "1e9cc1508976669c79784d9ecdacaa5c",
|
||||
"semantic_hash": "1e9cc1508976669c79784d9ecdacaa5c"
|
||||
},
|
||||
"admin_panel/migrations/0033_article_nahvepardakht.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a171b5d3d41e024eec96060a7553023c",
|
||||
"semantic_hash": "a171b5d3d41e024eec96060a7553023c"
|
||||
},
|
||||
"admin_panel/migrations/0034_alter_article_sarresid.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f8b4c19246ffd432671dc645b5f7a27e",
|
||||
"semantic_hash": "f8b4c19246ffd432671dc645b5f7a27e"
|
||||
},
|
||||
"admin_panel/migrations/0035_alter_article_sarresid.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5fc7aaa82f013ed17435c8f712433aeb",
|
||||
"semantic_hash": "5fc7aaa82f013ed17435c8f712433aeb"
|
||||
},
|
||||
"admin_panel/migrations/0036_sarresid.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "41190a4c3a8a42368b9e68be15e59da9",
|
||||
"semantic_hash": "41190a4c3a8a42368b9e68be15e59da9"
|
||||
},
|
||||
"admin_panel/migrations/0037_sarresid_sarresiddt.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "74ce86a53b5317423def533f08e40041",
|
||||
"semantic_hash": "74ce86a53b5317423def533f08e40041"
|
||||
},
|
||||
"admin_panel/migrations/0038_auto_20240213_1735.py": {
|
||||
"mtime": 1707833116.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "1f436c242cd8233cf36b46a344712893",
|
||||
"semantic_hash": "1f436c242cd8233cf36b46a344712893"
|
||||
},
|
||||
"admin_panel/migrations/0039_customer_last_bazdid_dt.py": {
|
||||
"mtime": 1708021379.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "cdbf72bdc29027c67ec6f579dbfd87a5",
|
||||
"semantic_hash": "cdbf72bdc29027c67ec6f579dbfd87a5"
|
||||
},
|
||||
"admin_panel/migrations/0040_customer_laghv_bazdid.py": {
|
||||
"mtime": 1708086290.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f240e539790c8266e8e6436de3f7ba8e",
|
||||
"semantic_hash": "f240e539790c8266e8e6436de3f7ba8e"
|
||||
},
|
||||
"admin_panel/migrations/0041_auto_20240216_1607.py": {
|
||||
"mtime": 1708087066.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "0e18ee1383cce3042f8d951170a4206c",
|
||||
"semantic_hash": "0e18ee1383cce3042f8d951170a4206c"
|
||||
},
|
||||
"admin_panel/migrations/0042_article_user.py": {
|
||||
"mtime": 1708097636.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "9c1401cdcc3e57cd7fd94bc02b4f5712",
|
||||
"semantic_hash": "9c1401cdcc3e57cd7fd94bc02b4f5712"
|
||||
},
|
||||
"admin_panel/migrations/0043_sarresid_user.py": {
|
||||
"mtime": 1712324765.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "854ae72ac9682f257391fddaafd8df18",
|
||||
"semantic_hash": "854ae72ac9682f257391fddaafd8df18"
|
||||
},
|
||||
"admin_panel/migrations/0044_sarresid_desc.py": {
|
||||
"mtime": 1731443780.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "a016eaa6fc679bf509d831b1a970b625",
|
||||
"semantic_hash": "a016eaa6fc679bf509d831b1a970b625"
|
||||
},
|
||||
"admin_panel/migrations/0045_auto_20260610_1421.py": {
|
||||
"mtime": 1781088666.153017,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "4ef65d5c188e0cdfe6ada14be13a5289",
|
||||
"semantic_hash": "4ef65d5c188e0cdfe6ada14be13a5289"
|
||||
},
|
||||
"admin_panel/migrations/0046_auto_20260624_1818.py": {
|
||||
"mtime": 1782312515.2476697,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "5ca2702b20a1a595e8f70d0febce437b",
|
||||
"semantic_hash": "5ca2702b20a1a595e8f70d0febce437b"
|
||||
},
|
||||
"admin_panel/migrations/0047_alter_productinstore_movement_type.py": {
|
||||
"mtime": 1782400614.7357888,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "dc43c8e6b4e1e070f12746a3ce7b48eb",
|
||||
"semantic_hash": "dc43c8e6b4e1e070f12746a3ce7b48eb"
|
||||
},
|
||||
"admin_panel/migrations/0048_alter_productinstore_options.py": {
|
||||
"mtime": 1783073642.7854881,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "1ef983920121630add36d9d681b13aee",
|
||||
"semantic_hash": "1ef983920121630add36d9d681b13aee"
|
||||
},
|
||||
"admin_panel/migrations/0049_alter_productinstore_options.py": {
|
||||
"mtime": 1783075090.874336,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "6535f13daa18a07d6bbf04101b371d9c",
|
||||
"semantic_hash": "6535f13daa18a07d6bbf04101b371d9c"
|
||||
},
|
||||
"admin_panel/migrations/0050_storetransferrequest.py": {
|
||||
"mtime": 1783081448.2086937,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "479c29e8beb5388215e2dc24751686d1",
|
||||
"semantic_hash": "479c29e8beb5388215e2dc24751686d1"
|
||||
},
|
||||
"admin_panel/migrations/0051_auto_20260705_1356.py": {
|
||||
"mtime": 1783247162.7750995,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "ce9e0ca56be568fae0613e79298666f2",
|
||||
"semantic_hash": "ce9e0ca56be568fae0613e79298666f2"
|
||||
},
|
||||
"admin_panel/migrations/0052_storeroomowner.py": {
|
||||
"mtime": 1783247323.7533815,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "cd1a8e4784e4f21b50c5200da2677199",
|
||||
"semantic_hash": "cd1a8e4784e4f21b50c5200da2677199"
|
||||
},
|
||||
"admin_panel/migrations/0053_storeroom_owners.py": {
|
||||
"mtime": 1783247371.5792572,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "4015f9c7449f85884f89b31d3af39894",
|
||||
"semantic_hash": "4015f9c7449f85884f89b31d3af39894"
|
||||
},
|
||||
"admin_panel/migrations/0054_auto_20260715_2250.py": {
|
||||
"mtime": 1784143234.375771,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "9ee31b1cc86ea3ac5db8e3bb7ad38aad",
|
||||
"semantic_hash": "9ee31b1cc86ea3ac5db8e3bb7ad38aad"
|
||||
},
|
||||
"admin_panel/migrations/0055_action_nextnazardt.py": {
|
||||
"mtime": 1784916401.6852713,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "6dfed65de7902632cb291defd05914ee",
|
||||
"semantic_hash": "6dfed65de7902632cb291defd05914ee"
|
||||
},
|
||||
"admin_panel/migrations/0056_auto_20260731_1824.py": {
|
||||
"mtime": 1785509644.1099384,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "c08ef1beaff253c2e43eccb981073c1f",
|
||||
"semantic_hash": "c08ef1beaff253c2e43eccb981073c1f"
|
||||
},
|
||||
"admin_panel/migrations/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin_panel/models.py": {
|
||||
"mtime": 1785509631.4338894,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "1b4254486bf126b24e73d7a1fc930007",
|
||||
"semantic_hash": "1b4254486bf126b24e73d7a1fc930007"
|
||||
},
|
||||
"admin_panel/services.py": {
|
||||
"mtime": 1786864057.7585652,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "164f88ca79dff2643a1c38f5974126be",
|
||||
"semantic_hash": "164f88ca79dff2643a1c38f5974126be"
|
||||
},
|
||||
"admin_panel/templatetags/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"admin_panel/templatetags/custom_tags.py": {
|
||||
"mtime": 1783251836.4148617,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "8d8c826e168cec5bb68a21c8457380ba",
|
||||
"semantic_hash": "8d8c826e168cec5bb68a21c8457380ba"
|
||||
},
|
||||
"admin_panel/templatetags/remove_q_p.py": {
|
||||
"mtime": 1683307703.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "6ac789d61f86b1a27bc215d2a77761c6",
|
||||
"semantic_hash": "6ac789d61f86b1a27bc215d2a77761c6"
|
||||
},
|
||||
"admin_panel/tests.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "e08f0582500f6562bf0a931ef9503b39",
|
||||
"semantic_hash": "e08f0582500f6562bf0a931ef9503b39"
|
||||
},
|
||||
"admin_panel/urls.py": {
|
||||
"mtime": 1787302652.4618616,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d550a6f4bbfd8ec74f8ef482ee7f1cff",
|
||||
"semantic_hash": "d550a6f4bbfd8ec74f8ef482ee7f1cff"
|
||||
},
|
||||
"admin_panel/views.py": {
|
||||
"mtime": 1787304201.392812,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "40c436a0d14e9ca9dd798fd6ffc2ba7b",
|
||||
"semantic_hash": "40c436a0d14e9ca9dd798fd6ffc2ba7b"
|
||||
},
|
||||
"check_finance.py": {
|
||||
"mtime": 1786878923.269553,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "75f1e60011aa238abef8ba028761d97f",
|
||||
"semantic_hash": "75f1e60011aa238abef8ba028761d97f"
|
||||
},
|
||||
"entrypoint.sh": {
|
||||
"mtime": 1782246266.1269526,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f06f9179baa5071b374895438cc05176",
|
||||
"semantic_hash": "f06f9179baa5071b374895438cc05176"
|
||||
},
|
||||
"ghost_hunter.py": {
|
||||
"mtime": 1786881510.522436,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "51f0a2e2323df5d9e444aad5a2883ee5",
|
||||
"semantic_hash": "51f0a2e2323df5d9e444aad5a2883ee5"
|
||||
},
|
||||
"khatibi/__init__.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
|
||||
},
|
||||
"khatibi/asgi.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "b4e49af22c6a30c16299cb82ab55df6d",
|
||||
"semantic_hash": "b4e49af22c6a30c16299cb82ab55df6d"
|
||||
},
|
||||
"khatibi/production_settings.py": {
|
||||
"mtime": 1782245208.734714,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "73a68e0d30f37dc4fbdad316c02b5fc4",
|
||||
"semantic_hash": "73a68e0d30f37dc4fbdad316c02b5fc4"
|
||||
},
|
||||
"khatibi/settings.py": {
|
||||
"mtime": 1782309009.7845018,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "bf91e375449195bc3d958a6c51266d7f",
|
||||
"semantic_hash": "bf91e375449195bc3d958a6c51266d7f"
|
||||
},
|
||||
"khatibi/urls.py": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "c84a36287ab919a7c7af7665f7f74fe7",
|
||||
"semantic_hash": "c84a36287ab919a7c7af7665f7f74fe7"
|
||||
},
|
||||
"khatibi/wsgi.py": {
|
||||
"mtime": 1708013917.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "3201b17eab76f3e248ee368647070e4c",
|
||||
"semantic_hash": "3201b17eab76f3e248ee368647070e4c"
|
||||
},
|
||||
"manage.py": {
|
||||
"mtime": 1708013913.0,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "f2880415f68590c74305913ff0f025f3",
|
||||
"semantic_hash": "f2880415f68590c74305913ff0f025f3"
|
||||
},
|
||||
"reconciliation_tool.py": {
|
||||
"mtime": 1786880527.1578598,
|
||||
"seen": 1791552045.91651,
|
||||
"ast_hash": "29c3e16d73d00a9f3f09692194be3b18",
|
||||
"semantic_hash": "29c3e16d73d00a9f3f09692194be3b18"
|
||||
},
|
||||
".github/copilot-instructions.md": {
|
||||
"mtime": 1791551555.5196745,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "2b23503628bf2ec71d067a85ca8948ab",
|
||||
"semantic_hash": "2b23503628bf2ec71d067a85ca8948ab"
|
||||
},
|
||||
"GEMINI.md": {
|
||||
"mtime": 1791551505.4181063,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "82efb97a359f5c7290bf2513d14686be",
|
||||
"semantic_hash": "82efb97a359f5c7290bf2513d14686be"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/ActionList.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "4ba55e04b37e585d96f0d628c695d228",
|
||||
"semantic_hash": "4ba55e04b37e585d96f0d628c695d228"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/base.html": {
|
||||
"mtime": 1787305605.0913658,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "3062a4756b2649b3b24a52e5972163d2",
|
||||
"semantic_hash": "3062a4756b2649b3b24a52e5972163d2"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/baseHesabdari.html": {
|
||||
"mtime": 1703841590.0,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "47b9ea8bc69fc1731d0dbe267f1ed433",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/baseStore.html": {
|
||||
"mtime": 1783083554.0144844,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "d2fe6f58a7303c1874ebe08af1e50564",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/bedehi.html": {
|
||||
"mtime": 1703843184.0,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "642f82c9f9c217c83acb79185b9439da",
|
||||
"semantic_hash": "642f82c9f9c217c83acb79185b9439da"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/bedehiBK.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "9f714287989d56c19bc1fc28a08cd89d",
|
||||
"semantic_hash": "9f714287989d56c19bc1fc28a08cd89d"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerAction.html": {
|
||||
"mtime": 1784913239.8701046,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "bb1af41ef956a5e2f30b1266c70a30ee",
|
||||
"semantic_hash": "bb1af41ef956a5e2f30b1266c70a30ee"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerActionInc.html": {
|
||||
"mtime": 1784913846.5075295,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "3232cbf82efe94504f69735791ca5cf4",
|
||||
"semantic_hash": "3232cbf82efe94504f69735791ca5cf4"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerBase.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9024515,
|
||||
"ast_hash": "2724fa49985d8c8fa76ddf5c31b64054",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerBaseNew.html": {
|
||||
"mtime": 1786558511.2232144,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "1684b269805012f620bcd90f90572203",
|
||||
"semantic_hash": "1684b269805012f620bcd90f90572203"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerFactor.html": {
|
||||
"mtime": 1782399903.8791773,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "23cc139c4d246a9640220cc1f42a1bd1",
|
||||
"semantic_hash": "23cc139c4d246a9640220cc1f42a1bd1"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerFactorBackup.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9034579,
|
||||
"ast_hash": "ff7615faae4df99564cf85d3212a93da",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerHesabDari.html": {
|
||||
"mtime": 1708533891.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "2d7c82b08780f0915a1dc145db522cd5",
|
||||
"semantic_hash": "2d7c82b08780f0915a1dc145db522cd5"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerID.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9034579,
|
||||
"ast_hash": "52739e2559c60cad69fb7efaf65e2dd3",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerIDBackup.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9034579,
|
||||
"ast_hash": "c6646ddb883c9f85033d9e9d3fb54af2",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerIDFactor.html": {
|
||||
"mtime": 1784392254.4440935,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "2c0c3fb300c440860d3f1dd8a6181af1",
|
||||
"semantic_hash": "2c0c3fb300c440860d3f1dd8a6181af1"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerIDFactorBackup.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9034579,
|
||||
"ast_hash": "d04aff45b81af659d92173536cbc224f",
|
||||
"semantic_hash": "d04aff45b81af659d92173536cbc224f"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerNew.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "6eec9291fd4f6bce96e553f9e7352e44",
|
||||
"semantic_hash": "6eec9291fd4f6bce96e553f9e7352e44"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerNew2.html": {
|
||||
"mtime": 1712320283.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "47fa6edfc3228d414f22e1a8f3ae4a7a",
|
||||
"semantic_hash": "47fa6edfc3228d414f22e1a8f3ae4a7a"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerNewBackup.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.9034579,
|
||||
"ast_hash": "6f281fc25edb4c2822b6a058e4049655",
|
||||
"semantic_hash": "6f281fc25edb4c2822b6a058e4049655"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerRezayat.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "4e954f6dd0f4ed95656c457fd4399cdd",
|
||||
"semantic_hash": "4e954f6dd0f4ed95656c457fd4399cdd"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerRezayatinc.html": {
|
||||
"mtime": 1784916750.5503716,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "033adb9aa1873c64ac7bf495cdef7cf5",
|
||||
"semantic_hash": "033adb9aa1873c64ac7bf495cdef7cf5"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customerSarresid.html": {
|
||||
"mtime": 1786557950.072763,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "dd92347d0f721008570850177989b927",
|
||||
"semantic_hash": "dd92347d0f721008570850177989b927"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customer/customerNazarInc.html": {
|
||||
"mtime": 1707672379.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "7687f61651a191ba38a3a7fbc0fa4eea",
|
||||
"semantic_hash": "7687f61651a191ba38a3a7fbc0fa4eea"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customer/nazar.html": {
|
||||
"mtime": 1707669675.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "1cb1e5086a0f291b86437f03af835407",
|
||||
"semantic_hash": "1cb1e5086a0f291b86437f03af835407"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customers.html": {
|
||||
"mtime": 1784142973.2160225,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "77809af7284de3bdacce2e6bb27dccf5",
|
||||
"semantic_hash": "77809af7284de3bdacce2e6bb27dccf5"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/customersBK.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.904458,
|
||||
"ast_hash": "c3912ead765eb7b5ada5634b70ebc644",
|
||||
"semantic_hash": "c3912ead765eb7b5ada5634b70ebc644"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/entezar.html": {
|
||||
"mtime": 1708088349.0,
|
||||
"seen": 1791553187.904458,
|
||||
"ast_hash": "808fd766dd0d0abec11bfcccd57dcee2",
|
||||
"semantic_hash": "808fd766dd0d0abec11bfcccd57dcee2"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/entezarBK.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.904458,
|
||||
"ast_hash": "09796b3916f635c6bc2a5aa3d2df108f",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/financial_dashboard.html": {
|
||||
"mtime": 1786882219.7287638,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "d0782d6533e6b105ff1cd837d3b73108",
|
||||
"semantic_hash": "d0782d6533e6b105ff1cd837d3b73108"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/hesabdari.html": {
|
||||
"mtime": 1786553421.551038,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "9a44f015176e20e333a42321701b3575",
|
||||
"semantic_hash": "9a44f015176e20e333a42321701b3575"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/hesabdariCheckPass.html": {
|
||||
"mtime": 1707470201.0,
|
||||
"seen": 1791553187.905458,
|
||||
"ast_hash": "4f41af8d09e60f2eb1b4db77c5a2ec11",
|
||||
"semantic_hash": "4f41af8d09e60f2eb1b4db77c5a2ec11"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/hesabdariCheckPassFail.html": {
|
||||
"mtime": 1707470341.0,
|
||||
"seen": 1791553187.905458,
|
||||
"ast_hash": "c83c6a1ab4af819947dda04360ba42b4",
|
||||
"semantic_hash": "c83c6a1ab4af819947dda04360ba42b4"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/hesabdariResidNashode.html": {
|
||||
"mtime": 1703840323.0,
|
||||
"seen": 1791553187.905458,
|
||||
"ast_hash": "fec700cfae2a2f99fc20d8e1d4f20aab",
|
||||
"semantic_hash": "fec700cfae2a2f99fc20d8e1d4f20aab"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/index.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.905458,
|
||||
"ast_hash": "ead4632d75560f5fc6ab13c6fe0bd33c",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"admin_panel/templates/admin_panel/login.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.905458,
|
||||
"ast_hash": "297f4c4a04f98fa223796ca4482dfbbe",
|
||||
"semantic_hash": "297f4c4a04f98fa223796ca4482dfbbe"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/newOperation.html": {
|
||||
"mtime": 1783251875.7455926,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "9fd1d5148c0121c47d07e4e1346a32ff",
|
||||
"semantic_hash": "9fd1d5148c0121c47d07e4e1346a32ff"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/operations.html": {
|
||||
"mtime": 1782127647.8900125,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "3199582c3342413eeb8b8a5cf5fb879a",
|
||||
"semantic_hash": "3199582c3342413eeb8b8a5cf5fb879a"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/operationsBK.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "fa2ab834231c3ff3f7500431b74978f4",
|
||||
"semantic_hash": "fa2ab834231c3ff3f7500431b74978f4"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/report.html": {
|
||||
"mtime": 1712328717.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "cc8bbc00a3ec2bf85b67b42d8d48a6aa",
|
||||
"semantic_hash": "cc8bbc00a3ec2bf85b67b42d8d48a6aa"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/reportCheckNesiye.html": {
|
||||
"mtime": 1712328596.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "213c083816f68261bbc926124e6c67ad",
|
||||
"semantic_hash": "213c083816f68261bbc926124e6c67ad"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/report_debtors_no_vosol.html": {
|
||||
"mtime": 1787304395.4691105,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "fef97825343ad1b8acda81df48a9540e",
|
||||
"semantic_hash": "fef97825343ad1b8acda81df48a9540e"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/report_inventory_movements.html": {
|
||||
"mtime": 1782459887.7241113,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "6b1591c8e2d96ca73e38c55be001cbd4",
|
||||
"semantic_hash": "6b1591c8e2d96ca73e38c55be001cbd4"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/report_rezayat.html": {
|
||||
"mtime": 1784918413.9920633,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "96e967c44debbabf2ee8c630cd371a23",
|
||||
"semantic_hash": "96e967c44debbabf2ee8c630cd371a23"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/rezayat.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552476.826179,
|
||||
"ast_hash": "df2df73cb519f7915d7f656e46ced406",
|
||||
"semantic_hash": "df2df73cb519f7915d7f656e46ced406"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/store.html": {
|
||||
"mtime": 1783252370.4796727,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "95e5186068796e24b2635441089dacb5",
|
||||
"semantic_hash": "95e5186068796e24b2635441089dacb5"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/storeBK1.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791553187.906458,
|
||||
"ast_hash": "79e507d05c12c39715fc90cf0d8b891d",
|
||||
"semantic_hash": "79e507d05c12c39715fc90cf0d8b891d"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/store_transfers.html": {
|
||||
"mtime": 1783083492.176341,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "9a02fb0648ea6d8cc7ff73647c173a46",
|
||||
"semantic_hash": "9a02fb0648ea6d8cc7ff73647c173a46"
|
||||
},
|
||||
"admin_panel/templates/admin_panel/stores.html": {
|
||||
"mtime": 1650778147.0,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "40dcac5b8cdbaf25efa63e4a9680d4ad",
|
||||
"semantic_hash": "40dcac5b8cdbaf25efa63e4a9680d4ad"
|
||||
},
|
||||
"requirements.txt": {
|
||||
"mtime": 1787308505.3543158,
|
||||
"seen": 1791552251.327148,
|
||||
"ast_hash": "4988f4d0e1372076211a9b5ae632ab2d",
|
||||
"semantic_hash": "4988f4d0e1372076211a9b5ae632ab2d"
|
||||
},
|
||||
"requirements2.txt": {
|
||||
"mtime": 1654964543.0,
|
||||
"seen": 1791552476.826179,
|
||||
"ast_hash": "b68cf8783499ded7f16a7da13f974f7b",
|
||||
"semantic_hash": "b68cf8783499ded7f16a7da13f974f7b"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user